Skip to content

Latest commit

 

History

History
201 lines (177 loc) · 80.3 KB

README.md

File metadata and controls

201 lines (177 loc) · 80.3 KB

Plans

This directory is the source of truth for Aiden's implementation plans. The engineer changing a plan owns its status row and should update it in the same change when a meaningful milestone lands.

Last refreshed 2026-10-27 against main at fae9b814 (0.62.0 release). "On main" means merged after 0.62.0 and not yet in a release. 0.62.0 ships PRs #583, #585, #586, #588–#591, #593, #595–#602, #615, #616, #620 and the release PR: the tool approval card redesign, the Bot hand-off follow-ups (Remote revision 40), web page reading and extract mode, Pi 1.4.0, the Mac-only iMCP connector, coding follow-through, agent loop resilience, New Folder in the workspace folder picker, instant Bot sends, per-chat models, codemode on by default in the CLI and for Bots, and the removal of the model catalog bot. Bot databases migrate one way when 0.62.0 first opens them (Pi 1.4.0), so an older Aiden can no longer open them.

Research addition 2026-10-03 against main at 3f86d41af (0.52.0): all-PR inventory and improvement audit, implemented Aiden knowledge/actions MVP (PR #312), and json-render research and interactive chat controls specification. The implemented MVP includes desktop, iOS, Android and CLI TUI controls. This adds research and the bounded implementation; older release-status rows have not been globally reconciled. The Pi 1.0 stack (#299–#307) merged through PR #357 (Pi 1.0.3, 0.54.0), main pinned Pi 1.2.0 in 0.57.0 (PR #471) pinned Pi 1.3.0 in 0.58.0 (PR #505) and pins Pi 1.4.0 since 0.62.0 (PR #589); only the frozen legacy journal harness stays on 0.87.1. Pi 1.4.0 contains Pi #11142 (Responses prompt cache kept across tool changes), so the pi-ai 1.3.0 backport that the builds applied from 2026-10-20 is gone.

Active and partial

  • Security remediation from the October 27 audit — In progress (2026-10-27). Focused stacked PRs (#604 to #614) cover verified fixes, source-backed hardening and explicit validation of conditional findings. The plan records all 23 dispositions, the T3 comparison, review gates and separate release/device acceptance. 2026-10-29 owner decisions: Telegram pairing (#605) closed because Telegram is being removed; Remote admission (#607) kept as written; private config folders accept a symlink to a folder the user owns (#609); the AppImage updater keeps today's checksum check without requiring the GitHub CLI, while the production CSP change ships (#614).

  • Bot wake sources — Merged in PR #633, #635, #636 and #634 (2026-10-28 to 2026-10-29); unreleased, no Remote revision needed. Three steps on top of PR #633. (1) The Bot sees and proposes every wake source: event routines in routines, trigger proposals, revising a pending card, and the timezone on the card. (2) Bounded self wake-ups without a card, approved by the owner on 2026-10-28: 1 minute to 24 hours ahead, at most 3 pending, only from person turns; implemented with a chat chip, profile Cancel and a per-Bot switch, with no Remote revision. (3) Watch routines: a URL or script check that wakes the Bot only when its output changes. Hermes-inspired; follow-ups are job-finish wakes, email and calendar watches, and keeping the Mac awake.

  • Bots that heal, act and learn — In progress on feature/bot-autonomy (2026-10-27): Plan A (self-healing) implemented — failure kinds, delivery funnel, Bot issues on desktop and phones (Remote revision 42), retries and auto-pause, pre-fire health checks, Profile → Health, stuck-run watchdog, routine claim check. Plan B (proactive) implemented on the desktop — quiet hours and a daily limit, decline reasons with back-off, follow-ups on dated promises, file-change and link event routines; Remote/phone support for Plan B settings and email/calendar watches are follow-ups. Plan C (self-improving) implemented on the desktop — approval for skills in a Bot's folder, skill proposals, routine reflection lessons, corrections, memory tidying, a learning history with Undo, a daily learning budget and Profile → What I've learned; phone surfaces, the onboarding tile and the attended claim chip are follow-ups; the owner answered D2, D4 and D5 as recommended. Three plans, shipped in order: A self-healing covers failure kinds, Bot issues, one delivery funnel, retries and auto-pause after 3 failures, a pre-fire check, health status, a stuck-run watchdog and the claim check for Bots. B proactive covers quiet hours and a daily cap, learning from declined proposals, follow-ups on dated promises, and file, webhook, email and calendar triggers (email and calendar approved under D2, still gated on a spike). C self-improving covers approval for skills in a Bot's own folder, a learning history with Undo and behavior fingerprints, a daily learning budget, routine reflection lessons, corrections, memory tidying, skill proposals and a "What I've learned" page. Each plan claims one Remote revision at merge.

  • Agent loop resilience — Merged in PR #595, #596, #597, #598 and #599 (2026-10-27); shipped in 0.62.0. Five steps, one PR each: retry failed model requests up to 5 times with growing waits (2 s doubling to a minute, timeouts 3 tries, Stop cancels, a countdown in the working row; Bots use the same policy), then a failure card with a fitting button (Try again, Open Providers, Continue, or Compact and try again, plus Switch model), continuing cut-off replies (keep the text, continue up to twice, cut-off tool calls never run), running reads side by side (approvals still one at a time, at most 4 at once), and a Resume button after a quit or crash (desktop, never automatic). Usage limits stay with the usage-limit waiting work.

  • Web page reading and extract mode — Merged in PR #588 (2026-10-26); shipped in 0.62.0. Native web_fetch for attended chats wherever Web Search is on (owner chose a new page reader tool over extending Web Search). Opt-in extract mode returns only named values, each with its status (extracted, uncertain, null), confidence and page line, through Cloudflare Workers AI Clairic on the person's own account and the Web Search key pool. Typed codemode results, Settings → Web Search → Web pages, a recap card on desktop, iOS and Android (Remote revision 38), and web and browser tool definitions trimmed from 2,754 to 1,566 tokens. Design follows pi-web-access 0.45.0 (MIT); no plugin installed. Guide: web-fetch-extract.md.

  • Coding follow-through — Merged in PR #591 (2026-10-26); shipped in 0.62.0. Background jobs (background_job: start, read, list, stop; the chat hears when a job ends), following a pull request until it merges (/follow and follow_pull_request: failed checks with the end of their Actions logs, merge conflicts, and comments only from people with write access, fenced as data), and /until <check> to keep going until a check passes, five checks at most. News arrives as follow-up notice cards and can start an unattended follow-up answer (six an hour per chat). macOS and Linux desktop workspace chats with Full access or Ask first; phones show notices as one line through the Remote projection (no revision change). Guide: coding follow-through. Open: native phone cards, CLI support, hand check on a real Mac.

  • Aiden harness quality and reliability upgrade — Active; foundation merged in PR #553 via #577 (2026-10-21), shipped in 0.60.0: H0/H1, private verification/protected offline evaluation, portable durable CLI Bots, local packaged transcript budgets and workflow-evidence drafts. Live pilot (H2c) awaits provider/model/spend configuration; adoption UI (H5b) depends on that gate. Signed/physical acceptance remains separate. Follows the verified Aiden/Harness² sitrep: memory-index retention, Assistant recovery, tool discovery, verification receipts and protected task evaluation, CLI durable Bot parity, packaged transcript performance, then explicit workflow experiments. Active desktop/CLI Pi packages moved to 1.4.0 through the separate upgrade gate (PR #589, shipped in 0.62.0) and the legacy alias stays at 0.87.1. This is the current pin observation for this plan; older version/status statements retain their historical context and need reconciliation before implementation. Research baseline and acceptance gates are recorded in the plan.

  • MCP audit and move to Pi's MCP client — Merged in PR #568 (2026-10-21); shipped in 0.60.0; live sign-in acceptance per connector remains (owner accounts). Root cause of failed Figma sign-in: Aiden dropped the client secret the server issues, and Figma, Vercel and Supabase accept only confidential clients; Figma also registered as "Codex", and the catalog was a copy of Codex's plugin directory (45 of 66 entries could not be set up). Shipped: client secrets kept, desktop and CLI MCP client and OAuth on @earendil-works/pi-mcp 1.3.0 (legacy SSE removed, SDK client imports blocked), sign-in hardening (background never registers, transient refresh failures keep the sign-in, provider errors and a failure page, durable needs-sign-in and Sign out, pre-registered clients, CIMD behind an unset URL), Pi's built-in CLI MCP extension off, an Aiden-owned connector catalog with Figma Desktop and an unavailable hosted Figma, the feature renamed Connectors (/connectors, /mcp alias), fingerprinted provider API-key sharing opt-in in Settings → Providers, and privacy-safe MCP failure diagnostics. All 18 hosted OAuth connectors pass pi-mcp discovery. Open: host the CIMD document, Figma approval for "Aiden Agent".

  • Built-in Aiden knowledge and app actions — Merged in PR #312 (2026-10-15); shipped in 0.57.0. Physical release acceptance remains open. 2026-10-27 tool audit: agent, chat-panel and phone appearance changes now repaint the open window at once (they used to wait for Settings → Appearance). Bundled offline help and owned skill, real json-render desktop cards, native iOS/Android paired-host controls and Pi CLI selectors/admin commands. Remote revision 19, explicit owner consent, domain gates, replay receipts and registered behavioral tests. Built on Pi 0.87.1 public APIs and merged onto main's Pi 1.2.0 pins; wider actions remain separate follow-ups. Contract research.

  • Interactive visuals on phones — Merged in PR #514 (2026-10-19); desktop host side shipped in 0.59.0, phones need a new TestFlight/Android build. Owner chose tap to open: phones keep the inline snapshot and open a visual full screen in a locked-down web view served by the Mac (GET /chats/{chatId}/visuals/{visualId}/document, Remote revision 35, chat-visual-viewer-v1). Covers render_ui and render_artifact; follow-ups confirm on the phone and only fill the composer.

  • Quick View cards — Merged in PR #487 (2026-10-15); shipped in 0.57.0. Quick View becomes Claude-Code-style stacked cards (Environment, Changes, Context, Subagents) at SidebarListItem density.

    • Behaviour: cards start collapsed and reorder by a right-edge grip. Each has three tiers: a summary, inline detail, and an open-in-sidebar or open-external button.
    • Visibility: cards and rows appear only once relevant. Changes needs work or a PR, the PR row needs a created PR, Context needs the first message, and Subagents needs a run started.
    • Context: shows a per-category breakdown (messages, system prompt, built-in and MCP tools, skills, memory, project and MCP instructions, deferred MCP tools). This needs a desktop-only breakdown field on the context projection; no CLI, Remote or phone changes.
    • Subagents: lists every run, grouped by state.
    • Toolbar: Quick View moves first and the Environment toggle last.
  • Hybrid new chat: workspace choice and composer context — Merged in PR #491 (2026-10-15); shipped in 0.57.0. Phases 1–4 done (top bar, workspace menu, worktrees created on first send with the branch menu's Work in group, entry points including ⌥↵); Phase 5 (paired Macs and phones) still open. Prototype: assets/hybrid-new-chat-prototype.html.

    • New chat: ⌘N stays an instant draft in the current workspace. The headline names the workspace and doubles as a picker.
    • Workspace menu: recents, path entry, Open folder (⌘⇧O) and Clone. ⌘⇧N opens a "New chat in…" palette.
    • Composer top bar: git chips appear only for git repos, the machine chip only with paired Macs, and the PR chip only for a GitHub repo with something to open. After the first send the bar shrinks to branch + PR instead of disappearing.
    • Worktrees: "New worktree" is a draft setting with an auto-generated branch name. It is created on first send instead of when picked.
    • Rollout: five phases. Phase 5 (paired Macs and phones) needs a Remote protocol revision.
  • Live cross-device streaming — Merged (2026-10-13) through the desktop D1–D5 (#453–#456, #448), Android A1–A3 (#450–#452) and iOS I1–I3 (#457–#459) stacks; shipped in 0.56.0 with no Remote protocol change. Single composer readiness line, live phone↔Mac turn mirroring over the existing HostRunRegistry journal, smooth streaming reveal and reliable stick-to-bottom on desktop, iOS and Android. Stacked PRs; see the plan. 2026-10-21 iOS follow-up (settle in place, paced reveal, open-Markdown tail) is in review; see the plan's update section.

  • Image Generation settings — Merged in PR #443 (2026-10-13); shipped in 0.56.0. Dedicated Settings → Image Generation page with its own encrypted keys (separate Pi Models registry, aiden-internal:image-gen:* credential namespace), OpenRouter + Replicate + fal image providers, curated catalogs with user-initiated Fetch latest, maker logos, and generate_image in folderless conversations; Create Images moves to the same registry.

  • Computer Use on request — Merged in PR #442; shipped in 0.56.0. The composer's Computer toggle is gone: with the beta on, the model's first computer_use (or fill_form) call in a chat raises one access card (Deny / Allow for this chat / Always allow); a phone's Allow once covers only that response. Missing macOS permissions show a checklist and a Continue marker that survives an app quit (Stop clears it). Settings adds Always allow and Reset chat permissions; turning the beta off also turns off Always allow. Packaged acceptance with the new operator steps remains.

  • Bot memory, soul and proactivity — Merged in PR #433 after PR #428; shipped in 0.56.0. Spec: design. Hermes-style bounded per-Bot memory (MEMORY.md/USER.md under <profile>/bots/<id>/memory/, main-owned bot_memory tool, frozen prompt snapshot, compaction flush and steered summary, add-only background review every 10 person turns) with Profile → Memory on desktop, iOS and Android; routine results to phones and Telegram, catch-up after pause, approve/Not now routine proposals, per-routine notes and a daily check-in suggestion; openingGreeting removed. Persona stays in the Bot record (no SOUL.md file). Three parallel tracks (A memory core, B proactivity + Remote, C clients); Remote contract revision 27 (bot-memory-v1, bot-proactive-v1, device capability bot:cards).

  • Bot chat activity, Bots sidebar and side panel — Merged (2026-10-14 to 2026-10-15) through #475–#479; shipped in 0.57.0. Five stacked slices: A quick fixes (plan: model choice in New Bot on desktop/iOS/Android, Advanced and Memory in every ••• menu, Advanced model control fix; PR #475), B quiet status line + per-Bot Chat activity setting (plan; PR #477, stacked on #475), C1 workbench shell extraction (plan; PR #476, stacked on B), C2 Bots-only sidebar + Bot side panel (plan; PR #478), D phones (plan: Remote revision 30, bot-activity-v1 + negotiable bot:activity; PR #479; follow-ups listed in spec §17 and .memory/bot-chat-activity.md). Plans are written before each slice starts.

  • Bots rework (Grok-style Bots + Pi Durable sessions) — Merged in PR #377 (2026-10-08) and shipped in 0.55.0; physical-device acceptance pending. Plan: implementation plan. Bots are single-thread chats on desktop, iOS and Android, each with one Pi Durable session on @earendil-works/pi-durable (1.0.3 at launch, 1.2.0 since the MCP remediation slice 12) (<profile>/bots/<botId>/session.sqlite) and explicit Resume/Dismiss after an interruption. Also shipped: per-Bot routines, starter presets, consent-first connection cards and a permanent Delete that replaces Archive. Aiden Remote is at contract revision 25 (bot-delete-v1, bot-durable-session-v1, bot-routines-v1, bot-connection-requests-v1, bot-presets-v1). Known follow-ups are listed in .memory/bots-rework-ui.md.

  • Design Studio + Create Images rebuild — Active (2026-10-08). Track F (Studio Foundation) merged in #375 and #376. Create Images CI-1 merged in #382 (headless core) and #383 (UI and Playwright); CI-1.10 live OpenRouter acceptance passed (owner, 2026-10-08). Design Studio DS-1a (headless core: projects, design runs, partial publish + Resume, preview resolver, IPC) merged in #385 (2026-10-08, shipped in 0.55.0); DS-1b (UI) is next. Both features stay behind AIDEN_EXPERIMENTAL_DESIGN_STUDIO / AIDEN_EXPERIMENTAL_CREATE_IMAGES (default off). Haiku-built tasks were independently audited on Opus 5.5 and fixed before merge.

  • On-device speech engine foundation (STT sub-project 1) — Merged in PR #436, with hardening in #439; shipped in 0.56.0. Plan: implementation plan; the smoke run, packaging check and native client tests are recorded in its Progress section and .memory/stt-engine-foundation.md. The onboarding voice step is deferred to sub-project 4. First of four Handy-informed speech-to-text sub-projects (engine foundation, live and accuracy, dictation UX, consistency and onboarding). It stays on sherpa-onnx (pinned 1.13.8) and covers:

    • a curated six-model offline catalog (Parakeet v3/v2, Canary 180M Flash, Whisper turbo, SenseVoice, Moonshine base EN) with pinned SHA-256 and resumable downloads;
    • language selection and translate;
    • Silero VAD trimming and segmentation;
    • worker supervision;
    • local-first provider resolution;
    • Telegram on-device routing.

    A transcribe.cpp Metal spike is tracked separately.

  • Voice dictation: speed and live text (STT sub-project 2) — Active (2026-10-22). Phase 1 (speed fixes on the current engine) merged in PR #579 on 2026-10-22 and shipped in 0.61.0: the model loads in advance (new Load in advance setting, idle unload default 30 minutes instead of 10), the pill loads hidden after launch, the Secure Input probe overlaps transcription, on-device audio is captured as raw 16 kHz PCM with an 80 ms tail, the provider rides on the press, composer dictation goes in at the caret with ⌘Z undo, and each dictation logs its stage timings. Desktop only; no Remote, phone or CLI change. Phase 2 (owner decisions 1a/2a): the engine benchmark in scripts/voice-engine-spike/ ran on the owner's M1 Max on 2026-10-22. It picked transcribe.cpp on Metal with Parakeet TDT v3 for Apple Silicon (2.5 to 3 times faster, more accurate; Linux and Intel keep sherpa-onnx). The Metal engine (transcribe-cpp 0.4.0, Parakeet v3 Q8_0 GGUF listed only on Apple silicon, with a Faster on this Mac upgrade row in Settings → Voice) and live words in the pill and the composer draft, re-decoding the current phrase with one paste at the end, merged in PR #581 and shipped in 0.61.0. Packaged-app and timing checks on the owner's Mac remain.

  • Peer and mobile reliability; subagent result delivery — Active (2026-10-05). Approved seven-slice series; mobile ancestry navigation is implemented on iOS and Android, including scoped saved paths, parent/child actions and native Back; 235 iOS chat tests, 25 Android progress tests, 10 emulator UI tests, Android lint/test compilation and 55 CI-policy tests pass. Physical-device acceptance remains open. The connection-reliability follow-up (PR #370, shipped in 0.57.0) implements saved exact-request retries, authenticated cross-route CA bootstrap, healthy wake probes, native offline recovery, and connection-state UI. Physical network transitions and idle measurements remain open; background wake authority/delivery is still pending and background launches remain disabled.

  • Pi 1.0.3 upgrade and stack reconciliation — Merged in PR #357 (2026-10-05) and shipped in 0.54.0; pins since superseded by Pi 1.2.0 (PR #471, 0.57.0), Pi 1.3.0 (PR #505) and Pi 1.4.0 (PR #589, 0.62.0). Integrated replacement preserves #299–#307 ancestry on feature/pi-1.0.3-upgrade. Main 5c094875c integrated with focused native/desktop acceptance. Exact 1.0.3 pins, Azure state migration and sampling support implemented; full local acceptance complete (6,991 unit cases plus preserved modes and 79 CLI tests). Frozen 0.87.1 journal adapter remains.

  • Pi 1.0.3 parity upgrade — Superseded; the stack merged through PR #357 (0.54.0). Historical 1.0.0 stack implementation evidence retained. Current target, reconciliation and remaining acceptance are tracked in the 1.0.3 execution plan.

  • Linux macOS parity reconciliation — Active; the Linux branch merged to main in PR #71 (2026-09-26) and shipped in 0.50.0. Linux runtime smoke, Linux CI burn-in, Gemini Live orb and managed-worktree checks on real Linux remain. Enforcing Fedora GNOME VM validated the SELinux file-descriptor probes, Electron role transitions, protected-socket transfer, payload inventory, root-managed generation staging, and fail-closed security-label preservation. Release provenance and cross-platform installer delivery are implemented. Real portal testing exposed modifier-release loss; GNOME safely retains toggle dictation. Computer Use remains disabled on Linux.

  • Durable Bot and chat runs — Foundation (P0) merged in PR #243 and shipped in 0.50.0: SQLite admission/leases/controls and conservative runtime recovery port. The Bot slice is superseded by the Pi Durable Bot sessions in the Bots rework: the ledger is unused for Bots, and this ledger stays only as a possible backend for workspace chats, which remain undecided. No Comfy/Design integration.

Plan Status Current state
Usage limits and spending limits Implemented Built 2026-10-26, in review. Chats, Bots, routines and helpers wait out a provider's rate limit or plan window (reset time from headers or error text, else backoff; one test request, then the rest oldest first; same model; owner-set longest wait, 6 hours by default; Retry now; waits survive a restart). Limits that last days and billing fail at once. Dollar limits per chat, per Bot per month (own day the month starts) and per routine run, counted from API-key requests only, with an 80% note and Allow more on the Mac and on iOS/Android through Remote revision 47 (spending-limits-v1, provisional). Desktop only; guide in docs/usage-limits-and-spending.md. Not done: a subscription usage meter, CLI support.
Workspace Artifacts Implemented Plan written and built 2026-10-19 in PR #554 (all five phases, each reviewed), merged 2026-10-19 and shipped in 0.59.0; Playwright e2e coverage is a follow-up; user guide in docs/workspace-artifacts.md. Persistent, interactive Aiden UI pages owned by a workspace, shown in an Artifacts tab of the Environment panel (offered in the tools launcher) that appears only once an artifact exists. Built on the render_ui catalog, with host-run data sources (shell commands and workspace files) under the chat's own workspace permission, a workspace_artifact agent tool, and a built-in skill. Desktop (macOS and Linux) only for v1; no CLI, phone or Remote protocol change.
Cache-first loading states Active Plan approved (2026-10-17) with desktop read snapshots, recent-chat prefetch and queued sends. iOS Home (I1) and cache-first chat open (part of I2) shipped in PR #516 (merged 2026-10-17). Audits every blank or text-only loading state on iOS, Android and the desktop renderer, and proposes one rule: saved data first, shaped skeletons only for a true first read, empty only when confirmed, quiet connection status. Starts with the iOS home screen, which hides cached Recents behind "Connecting to Aiden Agent…". No Remote protocol change. The write and navigation side (optimistic edits, instant opens) moved to Instant UI and optimistic updates on 2026-10-21.
Instant UI and optimistic updates Implemented Merged in PR #576 (2026-10-21); desktop part shipped in 0.60.0, phones need a new TestFlight/Android build. Built 2026-10-21 as the write and navigation side of cache-first loading: every tap changes the screen before the round trip. Desktop Bots show a pending send echo keyed by one idempotent request id, reopen from a remembered live view, and apply rename, create, delete, routine and access edits to the cache before main answers (rollback on error). iOS keeps the Mac's /server features per pairing for Bot routes while connecting, opens new chats and Bots from the create receipt, flips routine and scheduled toggles at once, and renames or removes chats in Recents before the Mac answers. Android follows the pairing's refreshed client in an open chat (Retry used to strand it), reads the durable-session gate from saved features, flips routine toggles at once, and opens saved chat deep links before the connection is up. No Remote protocol change. Deferred: send while connecting, phone Steer/Queue bubbles, cold-cache transcript skeleton. Follow-up (2026-10-27): a Bot message is drawn as sent at once on all three apps, with "Sending…" only after 2 s, and the desktop shows "Getting ready" from the send. Follow-up (2026-10-28): desktop Bot messages never say "Sending…"; "Getting ready" carries a slow start.
Aiden CLI Active Merged to main in PR #121 (2026-09-26) and shipped in 0.50.0 on pinned Pi 0.87.1; now pinned to Pi 1.4.0 (PR #589). Phases 0–6 implementation complete; macOS/Linux CLI (57 tests each), Linux native helpers, complete shared subagent suites, root TypeScript/lint, and Android client checks pass. Physical iPhone acceptance is pending an unlocked device. Phase 6 delivered QR remote pairing, scheduled-run notifications (mobile push + desktop), shared desktop memory, daemon autostart, and prebuilt binaries; see the checklist.
Simulator Devices Partial Phases 0–7 merged in PR #252 (2026-09-26) and shipped in 0.50.0 behind AIDEN_EXPERIMENTAL_DEVICES; on by default on macOS from 0.55.0 (2026-10-07), with AIDEN_EXPERIMENTAL_DEVICES=0 as the kill switch. Environment Simulator tab plus device_* agent tools, ported from T3 Code (MIT, 1c127066). Consent-gated pinned expo-device-hub@0.12.0 + agent-device@0.21.12; token-authenticated loopback proxy. Phases 0–3 done (spike, flagged tab shell, main-process toolchain/host/proxy/service/IPC, live stream viewer with controls and screenshot-to-chat; test:devices 96 pass; fake-hub Electron E2E; real-Mac acceptance passed). Phase 4 (agent device_* tools), Phase 5 (simulators on paired Macs over Aiden Remote; plan) and Phase 6 (procedural 3D device frames; plan) done. Phase 7 done: Settings → Simulator (consent switches, pinned/installed helper versions, prune, remove installed tools) and docs/devices.md; onboarding coverage is a follow-up now that the flag defaults on. Agent guidance prefers device_*/agent-device for the watched device but allows shell xcrun simctl/xcodebuild/adb for builds, installs, logs, port forwarding, and diagnostics (T3 #13908; PR #263, 0.51.0). Remaining: real-Mac acceptance for Phases 4–6 (the flag was defaulted on before it). Android emulators and SSH hosts shipped with the T3 parity upgrade (PR #391, 0.55.0).
Simulator Devices: T3 parity upgrade Implemented Merged in PR #391 (2026-10-08) and shipped in 0.55.0. Six workstreams port T3 Code's newer Devices work: Android emulators and foldables, full 3D feel with original procedural hardware models and iPhone Duo 3D, SSH hosts and tool-version UI, per-device tabs and a floating player, accessibility overlay/event log/erase/clipboard/recording/multi-touch/screenshot save, and a native mobile viewer. Apple GLBs stay unbundled.
Managed Worktree Lifecycle Partial P0 merged in #185 and admission hardening in #221 (0.43.0); the old-stack disposition records superseded work. The process-before-files deletion phase merged in #500. Owner kinds, opt-in retention/eligibility, GC, setup script, and UI remain open.
Mobile Task Progress and Subagents Active Read-only task/agent projections, durable Mac-owned progress, explicit Workspace/Bot eligibility, and native controls/sheets implemented. Merged in PR #123; physical UI acceptance remains. The first mutation control, a confirmed single-agent Stop on iOS and Android (POST /chats/{chatId}/agents/{agentId}/interrupt, chat-agent-interrupt-v1, contract revision 16), merged in PR #275 and is on main. See the linked evidence report.
Scheduled-Task Provider and Pi Rollout Recovery Implemented Attended chat starts seed the scheduler's provider fallback, tasks pin providers explicitly (editor picker + prefilled drafts + honest schedule_task gating), Pi-rollout-ineligible chats generate journalless over in-memory sessions with the fail-closed contract preserved, and remote request journal events carry method/route evidence — merged in PR #105; release-owner stage advance (B1) and machine remediation remain.
Form Fill Specialist Blocked — pinned driver lacks document-bound mutation Local scoring and artifact groundwork merged in PR #195. Specialist admission and execution disabled; cleanup-only Settings. Requires upstream document-lifetime identity and atomic conditional writes, new supported-driver regressions, and signed live-window acceptance before enablement.
Nontechnical User Journey UX Active Approved ten-journey UX pass merged in PR #96: guided phone setup, four AI choices, two-step Create a bot, setup acknowledgements, recovery, and native pairing copy. Broader audit backlog and physical-device acceptance remain open.
Gemini 3.8 Read Aloud Partial Merged in PR #245 and shipped in 0.50.0. Desktop unary-WAV slice hardened: source/owner fencing, managed Google credentials, whole-soundbite session replay without regeneration, bounded ordered playback and audible settings previews. Desktop-owned iOS/Android playback and read-only settings implemented; Android 101 tests/debug APK and iOS test build pass. Physical iOS XCTest now passes: 224 passed, 5 skipped, 0 failures on Smbt16ProMax. Live Google acceptance, native audible verification, streaming, Voice Studio, desktop audio focus and final independent sign-off remain. Review fixes add production usage accounting, strict WAV, progress-based native waiting, reclaimable sessions and failed-outcome eligibility; Preflight retry follow-up preserves concurrency-safe billing fences; TTS 131, Android chat/client 70 and simulator 227 passed (5 skipped).
Aiden Assistant Partial Markdown parity and confirmed provider-connection/model-pinned project-or-MCP automation creation/editing ship. The user-facing dock/panel/composer was superseded and removed by Aiden Live Assistant Phase 4.5; settings tools and proactivity remain planned and need an Aiden Live/main-chat UX before implementation.
Aiden On The Go Active Version 0.1.0 build 22 is VALID and IN_BETA_TESTING for Internal Testers. Native lazy workspace file pages and bounded source previews merged in PR #222; physical-device review remains. Native cold/warm replay and optimistic-send recovery are hardened; physical-device recovery acceptance remains pending. Android matches iOS's app-icon switcher, Workspace hierarchy, warm scoped Bots/Usage/SSE lifecycle, Usage dashboard, image showcase/gallery, and keyboard-safe elevated composer. Both clients provide separate native photo and file intake; iOS adds an anchored Files/Camera/Photos surface with an embedded recoverable camera and ordered PhotoKit selection. Both clients remember the last explicitly chosen Workspace-chat provider, model and thinking level per paired Mac (PR #268, 0.51.0), restore it on relaunch after validating it against the host's current inventory (falling back to the chat's pair, then host defaults), and purge it on unpair; Android's composer model/thinking picker is now wired. Preference snapshots stay within the loaders' 256 KiB limit, iOS writes are fenced by the captured pairing generation, and Android seeds resolution from the current chat before host defaults. Both clients support native in-process dictation or bounded no-retention transcription by the paired Mac's local Parakeet model. iOS also ships progressive onboarding, bidirectional media, reliable mobile approvals, typed activity timelines, semantic haptics, and one-chat-per-Bot conversations with companion vision for text-only models. Android Material 3 overhaul (PR #374): real M3 color roles and contrast-safe accent text, bundled provider logos, full-screen Settings/Installations with per-installation cached settings, one shared model picker, cache-first skeleton loading with no read spinners, shared-axis navigation with revealing predictive back, and readable-width adaptive layouts. Physical iPad/manual permission-system-UI acceptance, privacy publication, final store assets, and external/public-release decisions remain open.
Unified Workspace Sidebar Active Phases 1 and 2 ship the unified workspace/chat outline plus a feature-negotiated, transcript-free paginated summary read on Electron, iOS/iPadOS, and Android; physical-device performance acceptance remains open. Summary rows gained additive rowState/unread hints in contract revision 18 (PR #280, on main).
Bot-First Aiden On The Go Active Phases 0–9 are implemented. Native approval/Stop hardening merged in PR #218, and mid-flight Steer/Queue, question prompts and quiet chat merged in PR #251. Bot chat deep links (aiden-otg://bot/{id}/chat) merged in PR #276 and are on main. Every Bot has one persistent chat and one contact row; Favorites are a pinned placement, Bot chat reuses the shared runtime with Messages-inspired identity/bubbles and Aiden's existing composer, and New/Edit Bot exclusively own its durable model. Remote open-or-create, immediate exact-cache chat entry, optimistic favorites, shaped skeleton loading, stable photos, atomic desktop creation, fresh-inventory save retries, conflict-safe Mac/iOS draft rebasing, final-only Bot replies with expandable progress, native-or-companion image handling, and internal TestFlight build 22 are green. Eligible Apple Intelligence hardware, physical iPad, multi-device/Mac, packaged rollback, live Telegram, wider staged TestFlight, Xcode 27, accessibility, and App Store owner gates remain open. Superseded for Bots by the Bots rework (PR #377): Favorites, Archive, per-chat access, the Full Access notice wall and multi-conversation are removed; each Bot has one durable session with Resume/Dismiss, and Delete erases a Bot permanently. The iOS Bot composer is now a floating Liquid Glass pill with the shared + attachment picker; photos and text files reach Bot messages through Remote revision 33 (bot-attachments-v1; PR #512, on main).
Aiden Manual Pairing Implemented The reviewed 100-bit setup-code path, shared one-use QR window, staged iOS activation, and adversarial coverage ship; hands-on LAN/Tailscale UI and physical-iPad acceptance remain open.
Compaction Partial Pi-native checkpoints, lifecycle/crash recovery, and exact audited-upstream compatibility ship; durable memory and provider-native paths remain open.
Designer Mode Superseded Folded into the Design Studio + Create Images rebuild as phase DS-4 "Connected app" (2026-10-07); its Phase 0 GO gate, Vite-first scope and provenance ledger remain DS-4 entry criteria.
Dynamic Model Catalog Implemented Validated pi.dev overlays, offline 0600 cache hydration, scoped setup refresh, four-hour launch refresh, force refresh, Pi metadata fallback, and Mac/iOS projection ship; Pi is now pinned to 1.2.0 (PR #471).
Generative UI Artifacts Active Succeeded by Inline Generative UI (below). Phases 0–6 shipped: chat-scoped render_artifact, strict sandboxed preview/export hosts, verified vendored Chart.js/Plotly/KaTeX, permission-aware /visualize, crash-recoverable authoritative storage/copies, descriptor-relative workspace reads, one-iframe handoff/expansion, visible failure states, and route-stable Responding/Visualizing activity. Three-agent PR review findings are remediated with focused regression coverage.
Inline Generative UI (Aiden Visuals) Active Phase 1 merged in PR #429 and Phases 2–3 in PR #437 (2026-10-12); shipped in 0.56.0. Fresh Opus reviewers checked each phase and the whole branch, and every Critical and Important finding was fixed. Nearly all fixes were test-first; the ledger records the few that were wired without a dedicated test. Desktop visuals now render at their tool call, size to their content, re-theme live, stream as nonce-locked drafts, and work in every chat under Settings → Appearance → Inline visuals. A visual's follow-up prompt never sends by itself: it waits in an Aiden-drawn confirmation chip under the visual (decided by the owner on 2026-10-09 after three review rounds broke gesture heuristics). One iframe reload at turn end is an accepted trade-off. Manual visual acceptance is pending. Original design note (2026-10-08): Two tiers: an Aiden component catalog (render_ui, declarative state, native SwiftUI/Compose renderers) and the upgraded sandboxed HTML tier (render_artifact). Phase 1 plan: tool-call placement, auto-height borderless frames, full token kit + aiden-ui.css, live re-theme, confirm-chip sendPrompt, nonce'd streaming drafts, availability without a workspace and an Inline visuals setting. Phase 2 (2026-10-09, plan) merged in PR #437. It adds render_ui with Aiden's native component catalog: a tolerant AUM compiler, a pure evaluator, AidenUiBlock built from the shared primitives (new Segmented, Tabs, Checkbox, Slider, Progress, Tooltip, Disclosure, Stat and DataTable, adopted by scheduled tasks and the update bars), streaming drafts, uiVisuals persistence with local state, a CLI text fallback, and the onboarding tile. Phase 3 (plan) merged in the same PR: offscreen snapshots of every visual stored as reserved image attachments, Remote contract revision 28 (chat-visuals-v1, no markup on the wire), iOS and Android showing each snapshot at its tool row with fallback text, and phone-sent turns following the Appearance setting. Phases 4–6 (native mobile renderers, Bots/Telegram, advanced) get their own plans.
Generation Progress Notes Planned No implementation yet.
Aiden Live Assistant Partial Voice-only Aiden Live ships enabled by default in 0.41.5 with Extended Thinking, the blue duplex orb, device selection, connection sounds, session threads, and session-authorized direct actions. Screen capture defaults on from 0.55.0 (2026-10-07) with its own kill switch, AIDEN_EXPERIMENTAL_GEMINI_LIVE_SCREEN=0; the native-picker acceptance receipt is still pending.
Libghostty workspace terminal Implemented The workspace drawer uses Ghostty's official libghostty-vt WASM (T3-style runtime, PTY trampoline, canvas surface); node-pty sessions are unchanged. Packaged Mac acceptance remains.
Logging and Diagnostics Upgrade Implemented Phases 0–7 are implemented: bounded typed desktop journals, main-owned renderer evidence, local support export/delete, native categorical parity, and CI/release gates. Signed/notarized v0.35.0 passed packaged diagnostics acceptance; physical-device termination receipts remain.
Long-thread payload upgrades Partial Investigation complete: T3’s O(N²) stdout store does not exist here. No-op toolRunning timeline republish is skipped; Remote gzip, stream-journal debounce, chat JSON/attachments, and desktop transcript windowing remain planned. iOS and Android open chats on the latest 50-message window over chat-messages-window-v1 and page back with Load earlier.
Model Insights Partial A dedicated benchmark-only OpenRouter key, manual fetch, exact source-aware offline cache, metric-selectable collision-free capability suggestions, progressive canvas-first Pad UX, axis provenance, attribution, direct-AA retirement, and device-local measured pace ship; further benchmark sources remain under consideration.
Onboarding Authentication and Provider Validation Active Codex uses its dedicated auth surface, every interactive Pi provider can be configured during onboarding, OpenAI/Anthropic keys receive stronger catalog validation, completion is main-owned, and provider deferral stays explicit.
Performance, Stability, Battery, and Efficiency Planned Whole-app source audit is complete; phased implementation has not started. Targeted bounded-work fixes (#282–#287 in 0.51.0, #288 on main; evidence in docs/performance/) landed independently and do not complete a phase.
Google Antigravity provider over ACP Implemented Shared ACP harness primitives (main/services/acp) plus Google Antigravity (runtime 1.4.3 since 2026-10-27; shipped at 1.3.0): consent-gated pinned install, isolated Google sign-in, attended desktop chats with Aiden approvals, questions, and timeline activity. test:acp covers it end to end against a fake ACP agent. Merged in PR #371 (2026-10-07) and shipped in 0.55.0. Live signed-in acceptance (fs routing, resume, MCP, terms) and packaged macOS acceptance remain. Spike notes.
Pi Provider Integration Partial Pi built-ins, stores, auth, native routing, custom provider composition, canonical assistant provenance, voice credential lookup, and attended structured questions ship; scalable UX and rollout cleanup remain.
Pi Compaction and Durable Memory Upgrade Active Phases 0–7 are implemented and accepted after two reviews each. Executable replays, staged per-chat rollout, crash-safe receipts, and provider-native defer policy ship; the bounded small-context semantic-budget fix merged in PR #228, and Pi moved to 0.87.1 in PR #246, 1.0.3 in PR #357 and 1.2.0 in PR #471. Persisted budget overrides and installed/signed/credentialed operator evidence remain pending.
Quick View and Non-Modal Environment Tools Implemented Quick View and Environment now have independent persisted state; both render side by side when measured space permits and the background surface auto-hides on smaller allocations. Focus, compact-sidebar priority, compatibility routes, dock placement, focused suites, and production build pass; unlocked visual acceptance is pending.
rpiv-todo Integration Partial Attended desktop chats have a journal-replayed native todo tool, strict fail-closed snapshots, owner-fenced IPC, and a self-hiding floating progress chip with portal details; packaged visual/accessibility acceptance remains open.
rpiv-btw Integration Partial Attended desktop chats have bounded read-only side questions, ephemeral fingerprinted follow-ups, foreground-safe admission, exact provider dispatch, content-free usage accounting, and a native slash/card surface; packaged visual/accessibility acceptance remains open.
Subagent Orchestration Expansion Active Foreground implementer role and Full/Ask run grants merged in PR #247 (0.50.0). Per-task child model and effort selection (host-resolved, Full/Ask unchanged, desktop display) merged in PR #379 (0.55.0); Settings UI and mobile display are P1. Phases 0–6, Phase 7A durable lifecycle, Phase 7B1 storage, migration and foreground recovery are complete. needs_attention children surface their pending question on desktop (PR #266, 0.51.0; Remote stays closed-vocabulary). Desktop running-subagent visibility (2026-10-27): a composer pill and tray (⌘⇧S), a collapsible transcript group and a top-bar count badge keep working children visible with every panel closed; a sidebar running dot waits for background subagents. App-lifetime coordinator activation remains next.
Taracodlab Learnings Partial Phases A–B and D, plus core Phase E, are implemented; the remaining roadmap is open.
Hermes-inspired Bot run control Active Telegram bounded queue, cancellation and canonical-chat shipped; shared foreground input admission (chat-run-input-v1) merged in PR #251; busy-composer Steer/Queue and pending ask_user_question prompts (chat-question-prompts-v1) shipped on iOS + Android (Redirect was removed from every client on October 5, 2026; see docs/chat-composer-busy-controls.md). PRs #220 and #223 were closed as superseded by #251; their desktop and Telegram Steer parts shipped in #298 (desktop composer and queued-row Steer plus Telegram /steer through the shared admission; on main, no Remote contract change). Phones observe and Stop/answer approvals and questions on runs started on the Mac, in Telegram or by the scheduler (phone-run-control-v1, revision 24, runs:observe/runs:control); Steer/Queue on those runs and background discovery remain. Bots rework (PR #377) changed the Bot side: one durable session per Bot on Pi Durable replaces the per-Bot conversation list and the Bot run path, Resume/Dismiss replaces automatic recovery, and Telegram ingress and reply delivery use the durable request-ID and outbox rules.
Bot hand-offs, sign-in, rules, pause and Bot computers Active Owner picked five ideas from Cua's cua-bots-macos sample (2026-10-20): hand-off cards, sign-in through a per-Bot browser profile, enforced plain-language rules that only tighten, a whole-Bot Pause, and opt-in per-Bot macOS VMs on Lume (Apple silicon, cloned from one pinned base, started on demand). Remote revision 37 via the negotiable bot:handoffs capability rather than a /server feature token (phones already get 30 of the 32 that shipped clients accept). All nine owner decisions took the recommended option (2026-10-20). Implemented in PR #559 and shipped in 0.61.0; the owner's follow-up answers (2b–6a: kept damaged rules files, CLI pause as a user stop, Paused and Interrupted on a paired Mac, no-note password and code cards behind bot:handoff-notes at Remote revision 40) merged in PR #583 and shipped in 0.62.0, and 1b (computer sign-in hardening) is not built. The tool audit's 9a (open PR) lets a Bot hand over a step in its own browser or on its own computer, opened there on the Mac and finished from a phone with Finish on your Mac, behind bot:handoff-on-mac (Remote revision 43, provisional). Owner-Mac acceptance pending. Hand-offs, Pause, rules, the Remote contract and phone clients, the Bot browser and sign_in (desktop and the phone "Finish on your Mac" path) are done. Bot computers are implemented: the host (E1), the viewer with Take over (E2), the computer tool with computer_shell (E3), and the guest driver lane with computer sign-in (E4). They are covered by an end-to-end integration test (main/services/bot-computers/integration.test.ts). Not built yet: a Bot computer's state on phone Bot detail (§8.9); phones show "Using its computer" while it is in use. Real-VM behaviour waits on the packaged acceptance on the owner's Mac (npm run test:bot-computers:packaged). The plan moves to completed/ once that passes.
Telegram First-Class Agent Parity Active Controls, compaction, skills, rich inbound, drafts/activity, buttons, documents, Settings, and onboarding are green; Threaded Mode/profiles/extensions/TTS/live smoke remain.
Update, Microphone, and Computer Use Hardening Partial Installed acceptance found a silent stalled download; observable full-download recovery is implemented, while repaired-build → next-release and clean-TCC acceptance remain.
Web Access Rehaul Partial Implementation is complete through Phase 5: fresh profiles stay default-on with anonymous Exa, onboarding no longer shows a Web Search toggle, Settings exposes 17 reviewed shipped providers with fenced Fixed/Automatic routing, autonomous authority remains explicit, and a startup-bound Exa-only rollback preserves hidden state. Tavily now accepts a pooled set of keys with failover (key pool, PR #278, 0.51.0). Focused suites, Settings E2E, build, development packaging, and hardened package verification pass; the credential-backed live installed matrix remains a release-owner acceptance gate.
Cua driver 0.34.1 upgrade Implemented; superseded by the 0.36 plan Re-pins macOS Computer Use from cua-driver 0.8.3 to 0.34.1 (launch --direct, token-only element actions, new action-result shape, regenerated launch requirement), adds verify/menu/set_window_frame, and rewrites model guidance from upstream skills. Merged in PR #431 and shipped in 0.56.0. Packaged TCC acceptance pending.
Cua driver 0.36 upgrade and upstream delta Implemented (packaged acceptance pending) Re-pins macOS Computer Use to cua-driver 0.36.0 (2026-10-19): elements-tree captures, type refuses line breaks and tabs, the 0.36 refusal codes, background drag, app-filtered discovery and changes_only snapshot diffs, run_script disabled and run_* denied, and refreshed model guidance. The optional hover action was skipped, the mid-chat readiness re-check is deferred, owner-only packaged acceptance is pending, and recovery hints, locked-screen and pointer-free screenshots wait for 0.37; form fill stays blocked.
Linux Cua driver gap audit Audit Source audit of the Cua 0.8.3 Linux artifacts against Fedora GNOME (2026-09-12), with 0.34.1 (2026-10-09) and 0.36.0 (2026-10-19) source deltas: GNOME 50 declared, WinRects caller authentication still missing; grants no Linux Computer Use admission or parity acceptance.
Logging and Diagnostics Phase 0 inventory Complete Frozen logger, console-bypass and diagnostic-store inventory for the logging upgrade, enforced by its contract and policy tests.
Pi Compaction and Durable Memory implementation notes Reference Per-phase acceptance evidence for the upgrade plan; contains no transcript, credential or device data.
Simulator Devices Phase 0 spike Complete Spike decisions (Electron-as-Node runtime, user npm install, machine-local tool location, WebCodecs H.264 decoder) feeding simulator-devices-plan.md.
Simulator Devices Phase 3 Complete Task plan for the live iOS simulator stream, consent/install flow and user controls in the Environment panel; parent plan Phase 3.

Completed

  • Pi harness paper deep dive — Complete locally (2026-10-11). Three-hour Astra-medium research and validation completed; paper, findings, reproducible experiments and tested context/tool/CLI fixes are preserved in one append-only report. PR #440 merged on 2026-10-15 and shipped in 0.57.0; merged-main local validation passed with one recorded Electron teardown flake. Original full local checks and both sustained soaks pass; live-model quality/cost trials and release acceptance are separate future work.
Plan Status Completion note
MCP and Plugins remediation (Pi 1.2.0 parity) Complete Twelve stacked PRs #460–#471 merged 2026-10-15 (#470 landed through #469): transport/OAuth hardening, CLI MCP, Plugins settings, non-blocking discovery, Bot/schedule MCP authority, model-facing tool surface, OAuth controls and live status, per-server exposure, cleanup and catalog refresh, keychain-stored custom-server secrets with stdio launch approval, and the lockstep Pi 1.2.0 upgrade. Open: the packaged-candidate Pi upgrade receipt (test:compaction:evaluate on a signed build), CIMD, and a pi-mcp migration spike.
Link opening: ask once, then remember Done (PR #486) One renderer router (resolveLinkOpen in renderer/lib/browser-link-routing.ts) for every link click: an "Open links in" preference (Ask each time by default, Aiden browser, System browser) in Settings → Links; a first-click dialog with Remember my choice; loopback links always open in the Aiden browser; Cmd/Ctrl-click flips the destination; a right-click link menu; system-browser fallback when the panel can't show or an in-app open fails; tab reuse; and target=_blank inside the Aiden browser opens a new tab. PR chips, git push, the top bar, aiden-ui and the terminal route through the shared opener. Desktop only; no Remote protocol change. Follow-up: links to local files in chat replies (file://, absolute and relative paths, any file type) open HTML/PDF in the Aiden browser and other files or folders in Files. Plan: implementation plan; notes in .memory/link-opening.md.
Model Pad UX and data overhaul Complete 25-task overhaul plus a redesigned Settings → Model Pad (Pad + "On your Pad" list, Add / Arrange / ⋯, Data rows, ⓘ hints). Layout, pins, recents and metric live in main-process settings; autosave with Undo; benchmark suggestions for review; pace measured from the user's own chats; list price, measured speed and benchmark age in model details; Model Pad suites now run in CI. Merged in PR #449 (2026-10-13) and shipped in 0.56.0.
Ask User Question recap and composer spacing Merged Answered questionnaires leave a right-aligned question→answer recap in the transcript on desktop, iOS and Android, carried on the completed timeline step at Aiden Remote contract revision 29. The open card gets composer padding and a key-hint footnote. PR #441 merged on 2026-10-13 after exact-head CI and reviews passed. Follow-up: Android's live fallback shows the recap only after the turn settles.
Workspace panel redesign Merged Launcher, user-opened tabs, integrated browser pages and live Terminal placement; PR #381 merged on 2026-10-08 after exact-head CI and reviews passed, and shipped in 0.55.0. Intermittent test failures are documented in the PR.
Chat Context Inspector Merged Detailed Context tab, recorded session usage and persisted composer-meter visibility preference; shipped through PRs #380 and #381, merged on 2026-10-08, and shipped in 0.55.0.
Fork a chat from any message Complete Fork from here, Edit in fork and Fork with summary on every surface. Desktop fork with lineage and (fork N) titles (#343), the Pi journal carried through the cut (#344), Fork with summary via Pi branch summarization (#345), Remote POST /chats/{id}/fork and summary actions for paired devices and aiden serve at contract revision 21 (chat-fork-v1, chat-fork-summary-v1; #349), forks on a paired Mac from desktop (#350), and iOS/Android menus, prefill, lineage row and summary card (#360). Follow-ups: iOS messages-window lineage, phone-side send hold on iOS, and skill prefill for Edit in fork.
Desktop multi-host control Complete — packaged acceptance pending All nine PRs implemented. All nine are on main (#310, #311, #313, #314, #315, #318, #316, #317, #319, #336, #337) and shipped in 0.53.0. Symmetric peers with contract revision 19 grants, revision 20 connection requests, Tailscale/Bonjour pairing with match codes and setup codes, remote sidebar rows with three views and cross-machine grouping, remote chat view and control, new remote chats and Bots. PR 9 added a real-TLS acceptance pass, deterministic 1/5/10-host budgets, per-frame feed and token coalescing, and a resumed-feed header flush fix. The packaged Mac↔Mac LAN and Tailscale run and idle CPU/wakeup/memory measurements remain.
Multi-host PR 1: run observer bus Complete Host-wide HostRunRegistry journal for every generation origin and coalesced stream-journal writes; merged in PR #310.
Multi-host PR 2: host contract Complete Contract revision 19: /host/events, /runs/* streams and controls, messages window, /health descriptor, repository identity, first-responder approvals, Bot host-owner audience; PR #313.
Multi-host PR 3: peer manager Complete PeerHostManager supervisor, keep-alive transport, shared feed cache and reference-counted run streams over IPC; PR #314.
Multi-host PR 4a: pairing requests Complete Host side of connection requests with six-digit match codes, approval sheet and "Accept connection requests"; PR #315.
Multi-host PR 4b: pairing client Complete Tailscale and Bonjour discovery, connection requests, setup-code bootstrap, Tailscale re-pin, Settings → Connections; PR #318.
Multi-host PR 5a: local sidebar organization Complete Workspaces / Recent / Needs attention views, chat and workspace sorts, manual order; PR #311.
Multi-host PR 5b: remote sidebar rows Complete Paired hosts' feed rows in the sidebar with machine filter, globe marker, cross-machine grouping and stale rows; PR #316.
Multi-host PR 6: remote chat view Complete Remote transcript with "Load older" and live observation of runs started anywhere; PR #317.
Multi-host PR 7: remote control Complete Send, stop, approvals, questions, steer/queue, rename and delete through HostChatAdapter, with fencing and same-key retry; PR #319.
Multi-host PR 8: new chat on a remote machine Complete Composer machine picker, remote projects and folder browser, models, attachments, per-host drafts and paired Macs' Bots; PR #336.
Dictation: Parakeet lifecycle, modes, dictionary Complete Configurable Parakeet idle unload with warm-up, toggle/hold/tap-or-hold shortcut modes, and a custom dictionary; merged in PR #279, on main. VAD, history and mute are later work; real-hardware acceptance pending.
Dictation Secure Input warning Complete Dictation probes macOS Secure Event Input before pasting and keeps the transcript on the clipboard with a ⌘V hint when blocked; merged in PR #267, on main.
Tool approval scopes Complete Allow once / Allow for this chat / Always allow for exact parent workspace commands and file writes, revocable in Settings → Tool approvals, with iOS and Android menus; merged in PR #273 as Aiden Remote contract revision 17, on main.
Live Activity freshness chips and Bot deep links Complete iOS Live Activity tool-call and freshness chips plus aiden-otg://bot/{id}/chat on iOS and Android; merged in PR #276, on main. Android notification chips and physical-device acceptance remain follow-ups.
Queue while compacting Complete Manual /compact keeps the desktop composer editable; messages queue behind a per-chat hold and pause on failure; merged in PR #272, on main.
MCP numeric schema formats Complete Desktop and CLI MCP tool schemas drop schemars numeric formats and keep exact width ranges as bounds; merged in PR #264, on main.
Web Search API key pool Complete Tavily holds up to 8 encrypted keys with ordered or round-robin use, cooldowns and failover; merged in PR #278 and shipped in 0.51.0. Other providers and CLI parity remain follow-ups.
Timed ask-user waits Complete Optional timeoutSeconds, bounded unattended waits, late-answer follow-up offers on desktop and expiry notices on iOS/Android; merged in PR #270 and shipped in 0.51.0.
Live subagent context window Complete Desktop roster and detail show each running child's provider-reported context use; merged in PR #271 and shipped in 0.51.0. Remote/iOS/Android live context is a follow-up.
Mobile transcript polish Complete Worked-for timers, timestamps, copy and Ask about this on iOS and Android with no protocol revision; merged in PR #277 and shipped in 0.51.0. Physical-device visual acceptance remains.
Transcript polish: sticky headers, preparing stage, turn footers Complete Sticky Thinking/activity headers, Preparing <tool> on desktop, iOS and Android, and settled-turn footers; merged in PR #269 and shipped in 0.51.0. Mobile and live-streaming footers are follow-ups.
Composer Context Meter Complete Composer gauge and popover driven by projectNextContextUsage with live chat:context-pressure pushes; merged in PR #187 and shipped in 0.50.0. Hands-on visual acceptance is a release follow-up.
Rich link previews for Chats and Bots Complete URL-derived provider icons and bounded hover/focus cards in Chat and Bot transcripts, with no network requests; merged in PR #253 and shipped in 0.50.0. The optional authenticated metadata phase needs its own plan.
Chronological Chat Motion Complete Readable Thinking, tool rows and prose project in order across desktop and native chats; merged in PR #224 and shipped in 0.43.0.
Durable chat pull requests Complete Durable multi-link PR identities, exact create intent, selected push repository and atomic recovery; merged in PR #184 and shipped in 0.43.0.
Trusted AGENTS refresh Complete Bounded global/workspace instruction refresh at model-turn boundaries with a per-dispatch scope fence; merged in PR #232 and shipped in 0.43.0.
Scoped MCP resources Complete Per-server resource inventory, templates and handle-bound reads; merged in PR #230 and shipped in 0.43.0.
Scoped MCP server instructions Complete Bounded generation-owned service guidance filtered by final tool admission; merged in PR #229 and shipped in 0.43.0.
Skill and MCP session context Complete Skill model/user invocation policy merged in PR #214; its audit deliverables shipped in #226, #229, #230 and #232 (0.43.0). Physical iOS execution remains a device follow-up.
Durable tool output and produced files Complete Bounded command/MCP output recovery and shared produced-file provenance; merged in PR #219 and shipped in 0.43.0. Physical iOS execution remains a device follow-up.
Draft Agent Chats Complete Transient desktop drafts, atomic first-message creation and the one-time legacy empty-chat migration; merged in PR #103.
rpiv-advisor integration Complete A bounded, tool-free, provider/auth-aware second opinion uses an ephemeral per-consultation Ask User Question choice when the prompt does not name a reviewer, with no persistent Advisor settings or IPC.
CLI Appearance Playground Complete Separate React/DialKit studio with ten directions, live controls, comparison, saved looks and proposal exports; build and browser tests pass. Applying a chosen CLI design remains user-directed.
Unified settings and workspace presentation Complete Workspace path preferences, responsive Model Pad, global Skills enforcement, unified Settings, native Bot catalog routing/cache isolation, tests, and adversarial reviews delivered in PR #97; final CI tracked by the PR.
LLM and pi-vcc Compaction Complete Prepared for 0.38.1: LLM default, experimental local compiler/recall, per-run inheritance, desktop controls, native activity, and signed packaged Settings/compaction/restart checks pass.
Provider Model Visibility and Catalog Refresh Complete Provider-wide visibility, explicit dual-source updates, bounded device-local models.dev metadata, native all-hidden behavior, and credential-isolated main refresh automation ship with two-review remediation.
Aiden Remote Multi-Instance Hardening Complete Authenticated pairing completion, multi-device/Mac isolation, transactional listeners, explicit packaged Tailscale CLI mode, exact route ownership, durable revocation, and physical-iPhone acceptance all pass.
Bots Mode Complete Reusable Pi-backed bots now have first-class conversations, authoritative personas, soft archive, and exact one-to-one Telegram DM/topic control.
Bot Avatar Studio Complete Mouthless pastel faces now have live customization, crash-reconciled rollback storage, cancellable bounded Pi suggestions, and cohesive onboarding art.
Companion Vision Models Complete Vision primaries keep the native fast path; text-only Bots use one explicit exact-bound companion through a current-chat-only tool across Mac and iOS.
Keyboard Command System Complete One command catalog now powers transactional global hotkeys, scoped app shortcuts, native menus, canonical settings, and the Command-K palette.
Slash Commands and Skill Invocation Complete Separate / command and $ skill palettes dispatch canonical app actions and fresh workspace-bound one-turn skills with safe provenance.
Aiden-Native Subagents Complete All five phases passed focused/package gates, two final fresh reviews, and the default 100-cycle packaged lifecycle soak.
Development and Production Coexistence Complete Development now has a visibly distinct app identity, isolated state roots, opt-in global shortcuts, and production-only updates.
Gemini Native Upgrade Complete Its funded delivery phases shipped; deliberately deferred Gemini tracks remain future work.
Gemini 3.5 Voice Transcription Complete Dedicated Gemini 3.5 Live and batch transcription replace legacy Flash voice models, with ordered PCM streaming and WAV fallback.
Gemini Voice Setup and Delivery Hardening Complete Purpose-scoped Gemini setup, enforced transcription-only policy, cancelable bounded dictation, explicit Accessibility recovery, and real offline Parakeet v3 inference are complete.
Scheduled Tasks Complete Implemented through the plan's original Phase 4 scope.
Scheduled Tasks Experience and Chat Creation Complete Natural-language creation from eligible chats, human schedule controls, exact capability approvals, revision-safe lifecycle management, native parity, and migration hardening ship.
Pi-native Compaction Complete Pi 0.80.10 session checkpoints, retained-tail reconstruction, overflow recovery, private journals, child parity, and activity milestones ship.
Telegram Remote Control Complete Long-polling remote control ships with owner pairing, queueing, Markdown delivery, explicit optional folder-workspace authority via Settings or /workspace, isolated backing chats, Settings UI, focused tests, and onboarding coverage.
Dictation Capture and Delivery Complete Trailing-audio flush, provider-wide shortcut/Accessibility, safer paste restore, hold-to-talk, isolated on-device STT, optional silence-stop, cleanup, and sounds.
Pi Runtime Harness Complete One durable Pi-shaped runtime now owns foreground/child lifecycle, contributions, effect evidence, killable child inference, and safe startup retry.
Sidebar Chat Activity Complete Complete, revisioned per-chat activity appears as an accessible static ring with no polling or perpetual animation.
Pi Compaction Compatibility Complete Aiden's adapter now matches the audited Pi baseline 1:1 and persists only closed, privacy-safe provider-failure metadata for durable UI.
Pi Thinking Disclosure Complete Provider-neutral readable Pi thinking and a durable local presentation toggle match the audited Pi contract. The one-second preview was later replaced by a steady one-line row.
Linux Desktop Support Complete Linux x64/arm64 AppImage, DEB, and RPM packages, explicit platform capability tradeoffs, native helpers, and hosted Ubuntu/Fedora package and E2E acceptance all pass.

Shipped without a plan doc

Change Status Note
Chat row states and honest unread (see .memory/chat-row-states.md) Complete Needs approval / Needs input / Working / Idle rows plus a durable unread marker on the desktop sidebar, Remote /chat-summaries and iOS/Android, with POST /chats/{chatId}/read under chat-read-state-v1 (contract revision 18); merged in PR #280, on main. Bot rows and physical-device acceptance are follow-ups.
Remote subagent interrupt (API) Complete POST /chats/{chatId}/agents/{agentId}/interrupt (chat-agent-interrupt-v1, contract revision 16) reuses the desktop subagent stop path; iOS and Android agent sheets offer a confirmed Stop. Merged in PR #275, on main; physical-device acceptance remains.
Chat width setting (T3 #11594) Complete Appearance → Chat width (Narrow 44rem / Default 52rem / Wide 64rem / Full) persists as AppearanceConfig.chatWidth and drives --chat-content-max-width, so the transcript, approvals and composer resize together. Desktop only; merged in PR #265, on main.

Move a plan to completed/ only when its original delivery scope is complete. Keep the original plan as historical documentation; follow-on work belongs in a new active plan.