Commit Graph
94 Commits
Author SHA1 Message Date
ZacharyZhang-NYandClaude Opus 5.5 c9117fe46d Q160: a goal's pace is measured against its target date, and claimed only when it has one
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 02:44:20 -04:00
ZacharyZhang-NYandClaude Opus 5.5 809c67a54a Q150: work can be sent back, reopened, moved to backlog, or blocked with a reason
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 01:12:17 -04:00
ZacharyZhang-NYandClaude Opus 5.5 2a89d1e883 Q144: each message says where the reply it asked for stands
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:08:32 -04:00
ZacharyZhang-NYandClaude Opus 5.5 6e210301db Q136: remove rollback records that marked restores nothing performed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:53:26 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f8f852c326 Q135: remove the thread replay that only digested events and reconstructed nothing
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:47:48 -04:00
ZacharyZhang-NYandClaude Opus 5.5 403c57785c Q134: a signal's category comes from its runtime source, so self-checks cannot pass as real traffic
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:43:21 -04:00
ZacharyZhang-NYandClaude Opus 5.5 3849b96192 Q133: remove chaos drills that never injected a fault, and the signals they wrote
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:39:36 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e562444487 Q132: remove PR bot gates that no task completion or goal close consulted
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:36:07 -04:00
ZacharyZhang-NYandClaude Opus 5.5 fe45cd4d46 Q131: remove review agents and eval suites whose pass only counted configuration rows
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:33:03 -04:00
ZacharyZhang-NYandClaude Opus 5.5 074a1fc8e3 Q130: every open task says why it is not moving, when it resumes, and who must act
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:27:29 -04:00
ZacharyZhang-NYandClaude Opus 5.5 271a83a7bc Q129: a run with failed actions it never redid does not count as completed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 21:15:47 -04:00
ZacharyZhang-NYandClaude Opus 5.5 6afd7bef2a Q128: every model call of a run is recorded with its purpose and listed in the run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 20:55:18 -04:00
ZacharyZhang-NYandClaude Opus 5.5 1f484df894 Q127: erasure removes the subject's content and keeps only a receipt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 20:42:23 -04:00
ZacharyZhang-NYandClaude Opus 5.5 8f192eabe7 Q121: a file id keeps the bytes it was recorded with; rewrites get new ids
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:34:44 -04:00
ZacharyZhang-NYandClaude Opus 5.5 cb1a4be167 Q117: commands run in an allowlisted environment, and records and approvals say host isolation is advisory
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:07:28 -04:00
ZacharyZhang-NYandClaude Opus 5.5 abfcbf4824 Q114: goal audits use the org's own auditor model and see pointers, not the executor's account
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 18:35:39 -04:00
ZacharyZhang-NYandClaude Opus 5.5 34c5557a32 Q108: deliverables under review are held until approved instead of written first
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 17:45:39 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4765683b86 Q107: a task approval covers the content it was given; edits need a fresh one
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 17:34:40 -04:00
ZacharyZhang-NYandClaude Opus 5.5 558d678ba2 Q104: connector grants can narrow a toolkit to named actions and fixed argument values
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 17:05:23 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4a6641fd49 Q101: a connector can hold several labelled company accounts, each granted and used by name
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:46:46 -04:00
ZacharyZhang-NYandClaude Opus 5.5 736c45c0ee Q100: reconnecting keeps the working connector account until the new one is authorized
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:32:46 -04:00
ZacharyZhang-NYandClaude Opus 5.5 6f8731cbac Q99: connector actions keep an execution record so a lost reply is not resent
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:23:23 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f6447319a3 Q95: a run names the capabilities it could not load
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 15:55:33 -04:00
ZacharyZhang-NYandClaude Opus 5.5 7cd386a38c Q93: disconnect erases the secret here and revokes at the provider where it can
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 15:33:58 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4668396f25 Q87: provider errors keep status and provider code; text never decides recovery
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 14:52:31 -04:00
ZacharyZhang-NYandClaude Opus 5.5 665bf3cae1 Q83: a model passes an agent check before it does agent work
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 14:19:48 -04:00
ZacharyZhang-NYandClaude Opus 5.5 d557e42676 Q77: a session keeps the model and account it started with
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 13:03:11 -04:00
ZacharyZhang-NYandClaude Opus 5.5 bb279ff85a Q70: provider cooldowns survive restarts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 12:07:17 -04:00
ZacharyZhang-NYandClaude Opus 5.5 c6a0460035 Q69: provider failures classify by status and code; cooldowns follow Retry-After or back off
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 12:03:37 -04:00
ZacharyZhang-NYandClaude Opus 5.5 c2f8e656f6 Q65: every call path records real tokens, cache, reasoning and cost
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 11:24:54 -04:00
ZacharyZhang-NYandClaude Opus 5.5 168572dd76 Q63: model calls are priced and agent and department budgets limit real spend
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 11:08:38 -04:00
ZacharyZhang-NYandClaude Opus 5.5 46cd167c2c Q61: a failed status check no longer ends recovery of a background response
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 10:42:57 -04:00
ZacharyZhang-NYandClaude Opus 5.5 e809cfefea Q54: later sessions see what earlier ones already did and where they failed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:35:27 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ec2698575d Q53: stalled goal reviews leave a visible state and a resume path
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:25:46 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ddc8b485e9 Q50: work moved to review gets a reviewer; review closes with the verdict
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 08:50:02 -04:00
ZacharyZhang-NYandClaude Opus 5.5 7659adbbdd Q49: a task that spends its run budget shows as stalled; edits start a fresh budget
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 08:38:02 -04:00
ZacharyZhang-NYandClaude Opus 5.5 7be072f8c5 Q40: tasks choose a writing mode; house style applies to conversational work only
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 07:28:47 -04:00
ZacharyZhang-NYandClaude Opus 5.5 4c475e5ceb Q30: documents keep every version
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 06:10:25 -04:00
ZacharyZhang-NYandClaude Opus 5.5 ec9d74d128 Q27: knowledge corrections keep a revision history
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 05:51:32 -04:00
ZacharyZhang-NYandClaude Opus 5.5 18128b5ad4 Q26: knowledge has scope, expiry, and supersession
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 05:47:03 -04:00
ZacharyZhang-NYandClaude Opus 5.5 f4d16eb46a Q17: budget every model request against the provider's context window
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 04:40:02 -04:00
ZacharyZhang-NYandClaude Opus 5.5 469f2f2c35 Q15: show which messages each agent actually read
Runs record a context manifest once a model turn succeeds; the chat
marks each human message with the agents that read its current version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 04:21:57 -04:00
ZacharyZhang-NYandClaude Opus 5.5 22632a4695 Q11: deleted messages and withdrawn commands never reach the model
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 03:47:57 -04:00
ZacharyZhang-NYandClaude Opus 5.5 6570492daa Q3: record a structured handoff on every delegated task
create_task now pins upstream files by content hash and carries the
source task, source thread, verified facts, open questions and
acceptance criteria into the assignee's prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 02:35:12 -04:00
ZacharyZhang-NYandClaude Opus 5.5 56b0594f91 Move Composio, logo.dev and Antigravity keys into Settings
The three third-party keys were hardcoded or read from the environment.
Operators now enter them in Settings > Integrations; they are stored
encrypted in the app-wide integration_keys table (migration 058).
An agent holding connector grants fails loudly when no Composio key is
saved. The goal-review test no longer depends on absolute dates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 01:34:14 -04:00
ZacharyZhang-NY 327de38e78 Kimi Code joins as an OAuth plan provider: RFC 8628 device flow, verified against the live endpoints
- New oauth/kimi-code-flow.ts mirrors the official kimi-cli: form-encoded device_authorization + token polling at auth.kimi.com with the required X-Msh-* device headers, pure poll interpreter, 15-minute tokens refreshed via refresh_token grant
- Agent loop runs chat completions at https://api.kimi.com/coding/v1 with the Bearer access token; default model kimi-for-coding (kimi-for-coding-highspeed for Allegretto+ plans)
- Live model listing via /coding/v1/models; credential refresh wired into the turn credential resolver
- Migration 057 seeds the provider (disabled) into existing organizations
- Wire protocol probed live: device code issued, authorization_pending poll observed, 401 envelope on the coding API confirmed
2026-07-10 17:18:31 -04:00
ZacharyZhang-NY 813276de71 Kimi and Kimi CN join the provider catalog: OpenAI-compatible endpoints, verified live
- kimi -> https://api.moonshot.ai/v1 (platform.kimi.ai keys), kimi-cn -> https://api.moonshot.cn/v1 (platform.kimi.com keys)
- Adapters via openAiCompatibleAdapter; agent loop via makeChatCompletionsTurn; live model listing
- Curated fallback models per current docs: kimi-k2.7-code, kimi-k2.7-code-highspeed, kimi-k2.6
- Migration 056 seeds both providers (disabled) into existing organizations
- Both endpoints probed live: OpenAI-style 401 error envelope confirmed
2026-07-10 17:12:16 -04:00
ZacharyZhang-NY 26de3129b1 Goals end at achieved, not at an empty board: the goal-review loop
The board draining to 280/280 done left the company idle under a
still-active goal, with 24 markdown files and zero code as its life's work.
Two structural gaps caused it: goals had no lifecycle (status was written
once as 'active' and never read again — nothing re-engages anyone when the
last task closes), and nothing anywhere distinguished plans from product,
so every "engineering" objective closed on documents.

The loop, closed:
- tasks.origin (migration 055) records provenance: chat_wake for mention
  vehicles (backfilled from their runs), goal_review for checkpoints, null
  for real work. Chatter and checkpoints can therefore never count as
  progress.
- spawnGoalReviews (each worker tick): an active goal with zero open tasks
  and real progress since the last review gets ONE review task for the goal
  owner. The review demands evidence — list the workspace, read the code,
  run the tests; documents are how work starts, not proof it happened — and
  must end in exactly one of: complete_goal, or the next wave of tasks with
  requires_filesystem engineering. A review closed with neither spawns
  nothing: termination is structural, not a counter.
- complete_goal (CEO or goal owner) finally lets someone say a goal is
  achieved, audited.
- CEO and department-head voices now state the doctrine: a goal that
  promises software closes on code that builds and passes tests in the
  workspace, and implementation is delegated with requires_filesystem: true.

On the live profile this arms one review: the active platform goal has 0
open tasks and 21 real completed ones, so the CEO gets the checkpoint on
next launch and the company starts building instead of stopping.
2026-07-09 20:29:42 -04:00
ZacharyZhang-NY 2526633bfb Chat-wake tasks live and die with their reply run
Of the 202 tasks stranded in the backlog on July 9, 200 were "Reply to ..."
wake vehicles: every agent @mention creates a task plus a queued run, the
reply goes out, and nothing ever closed the task — a task with a completed
run is never enqueued again, so each one became a permanent zombie row. On
top of that, every message in an active thread minted a fresh wake even when
the target already had one queued, multiplying runs that would each read the
same conversation.

The lifecycle contract, made explicit:
- The reply run IS the wake task's deliverable. Completing a chat_mention
  run now closes its task (backlog/in_progress -> done, via the audited
  status path). Tasks an agent moved to review are left alone.
- One pending wake per (agent, thread): wakeFromMention returns the queued
  run instead of minting a duplicate — that run reads the thread's newest
  messages when it executes anyway.
- Migration 054 heals existing rows: wake tasks whose runs are all spent
  close as done; in-flight wakes keep working. This also stops Fix 1's
  retry-budget healing from resurrecting 31 stale replies on next launch.

The chat-governance loop test now completes each pending wake run between
posts, matching how the exchange actually interleaves in production.
2026-07-09 19:11:02 -04:00
ZacharyZhang-NY cb71afa6b7 Avatar photo uploads and a global handbrake for the agent engine
Two operator asks, one review gate:

Avatar portraits (migration 052): the avatar editor gains "Upload
photo" - the renderer downscales the chosen picture to a ~96px cover
crop and stores it as a small data URL (PNG keeps transparency, the
rest compresses to JPEG), so the snapshot stays light and the CSP needs
nothing new. The portrait wins over emoji and initials everywhere the
shared Avatar renders (chat, org chart, office card, sidebar), and
"Remove photo" falls back cleanly. The main process validates scheme
and size (base64 image data URL, <=300k chars) so a rogue caller cannot
re-bloat the snapshot. e2e uploads a real PNG through the profile
dialog and sees the portrait land in the sidebar.

Global pause (migration 053): when agents start talking in circles,
one topbar toggle - visible on every page - pulls the handbrake.
app_state.autorun_paused survives restarts; the queue worker checks it
each tick and neither enqueues nor claims while set (the run already in
flight finishes). Queued work simply waits and the paused state renders
as an amber "resume" pill. A unit test drives the real worker: paused
leaves a queued run untouched through many ticks, resuming claims it
within moments; e2e flips the toggle in the live shell.
2026-07-09 00:09:02 -04:00