Skip to content

Fan-out plan: parallel work across the open backlog #39

Closed

Description

@derekhearst

Scheduling map for running several agents at once without them fighting over the same files. Supersedes #28 as the tracking issue.

Rule for whoever picks one up: branch per issue, and stay inside your files. The overlap column names the hot files — if two issues in the same wave both touch one, the second to land rebases rather than the first blocking.

Wave 1 — correctness. These are wrong, not missing. Land first.

Issue Owns Overlaps
#36 attachments never reach the model routes/chat/[id]/stream/+server.ts, lib/engine/options.server.ts stream route (with #15, #19)
#30 cron is UTC-only, rejects ranges and lists lib/automations/cron.ts, tests/automations.* none
#15 two tool surfaces at once lib/engine/options.server.ts, lib/tools/tool-schemas.ts engine options (with #36)
#34 subagent output inlined unescaped lib/agents/inline-subagent.ts, lib/chat/stream-slots.server.ts subagents (with #5)
#11 seven pre-existing type errors routes/review/+page.svelte, routes/chat/[id]/+page.svelte chat page (with wave 3)
#10 drizzle-kit generate is broken drizzle/meta/ every migration author — worth doing early

Fully parallel except: #36 and #15 both touch the engine boundary, #34 and #5 both touch subagents.

Wave 2 — the categories to win. Biggest payoff, mostly independent.

Issue Owns Depends on
#31 automation history, run-now, retry, failures lib/automations/*, routes/automations/, new migration #30 lands first (same domain, avoid conflicts)
#33 long-horizon monitors new lib/monitors/, jobs registration, new migration —
#5 SDK subagents lib/engine/, lib/agents/inline-subagent.ts, deletes lib/runtime/ #34
#32 fan-out with a concurrency cap lib/engine/tools.server.ts, lib/chat/SubagentBlockCard.svelte, lib/costs/ #5
#20 CI watch lib/source-control/, routes/api/webhooks/github/ better after #33 — build it as a monitor, not a second poller
#9 gateway for non-Claude models lib/engine/options.server.ts after #15

Three migration authors here (#31, #33, and possibly #20). Whoever goes second re-numbers — see #10.

Wave 3 — session surface. All UI, all collide on the chat page. Serialize or accept rebases.

#29 preview pane · #19 permission modes · #24 filesystem checkpoints · #21 todo list · #16 diff view · #26 terminal output · #35 background work in a turn · #14 what the right rail is for

Hot files: routes/chat/[id]/+page.svelte, lib/chat/MessageBlocks.svelte, lib/chat-console/ChatConsoleRail.svelte. Suggested order: #29 first since it defines the rail, then #16 and #26 as preview consumers, then #21 and #35 as rail content, with #19 and #24 running alongside since they are mostly server-side.

Wave 4 — long tail. Independent, pick up any time.

#17 external MCP · #18 conversation search, pin, archive, export · #37 memory management · #38 usage digest · #22 slash commands and @-mentions · #23 project instructions · #27 the dead TTS endpoint · #8 delete dead engine code · #1 fresh-install setup gate · #2 setup flow · #3 consolidate stale databases · #4 native AskUserQuestion

Standing constraints for every branch

  • bun run check must come back at the current baseline (6 pre-existing errors, all in Fix 7 pre-existing type errors #11) or better. Do not add to it.
  • bun run build must pass. It broke silently for a week under a bad chunk export; a green check is not a green build.
  • Migrations are hand-written and hand-journalled until drizzle-kit generate is broken (snapshot collision in drizzle/meta) #10 is fixed. Claim the next number in your PR description so two branches do not both take 0064.
  • The NAS deploys from main on every push via GitHub Actions and watchtower, and the app runs pending migrations at boot. Merging is deploying.

Target state: every row in docs/structure/claude-desktop-parity.md at even or better, and the four categories that define this thing as a server — scheduling, monitoring, orchestration, accounting — at win.

Activity

  1. derekhearst commented on Sep 24, 2026

    @derekhearst
    OwnerAuthor

    Status: the backlog in this plan has shipped

    Run of 2026-09-22 → 24: a subsystem audit (148 raw findings; each re-checked against the code before any change) plus every open feature issue, landed as 24 PRs in three waves. Stacked where they conflicted, CI-green before each merge.

    Wave 1 — security & correctness

    Wave 2 — fixes + small features

    Wave 3 — parity features

    Still open

    🤖 Generated with Claude Code

  2. derekhearst commented on Oct 12, 2026

    @derekhearst
    OwnerAuthor

    Every planned item shipped across 24 PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions