Skip to content

docs: split copilot-planner in fourteen steps - #182

Merged
Bakhomious merged 2 commits into
mainfrom
step/planner-plan
Oct 30, 2026
Merged

Bakhomious merged 2 commits into
mainfrom
step/planner-plan

Conversation

@Bakhomious

Copy link
Copy Markdown
Contributor

Brief (lead)

Goal: record how copilot-planner splits into steps, and start it now.

Why now: vault-edit-sync's remaining steps (the store, its own writes, unique names, history, the laptop) all wait on the user's answer on how edits get back to the Mac (§12). nudge is down, so the question is parked. The orchestrator said to go on with whatever doesn't need the answer. Only the planner's "Save to Obsidian" needs the vault's store, so the planner starts now and that step comes last.

Scope: docs/plan.md only:

  • decision 403;
  • §0's copilot-planner anchor row and the planner-plan row, under the vault rows;
  • §8.2's split of copilot-planner;
  • §3's data table, where the planner has no table at first.

Out of scope: code. Each later step gets its own decision, as note-editor and note-save did.

Acceptance criteria

  • Decision 403 lists the fourteen steps and their order. It explains why the planner starts early, which step waits for the store, and that the laptop comes before the gateway.
  • The SDK and CLI versions are re-checked against their sources.
  • §0 and §8.2 list the same steps.
  • mise run check is green.

Decision 403, in short

  • Fourteen steps:
    • copilot-client, planner-service, planner-stream, planner-questions, planner-resume;
    • planner-image, homelab-planner, planner-gateway;
    • planner-page, planner-chat, planner-ask, planner-preview;
    • planner-save, last, once the vault's store is in.
  • SDK and CLI, re-checked 2026-10-30: the Go SDK's newest is v1.0.28 (2026-10-28), from the Go module proxy. It names CLI 1.0.105 (copilotCliVersion in the SDK's nodejs/package.json), which is also the CLI's newest release. copilot-client pins both (decision 74).
  • No database at first: the CLI keeps each session, with its messages and plan, in the service's BaseDirectory (ListSessions, GetEvents, ResumeSession). This amends §3's copilot_sessions. On the laptop the folder is a volume.
  • Streaming with SSE:
    • Both tailscale serve (ipn/ipnlocal/serve.go) and the gateway use httputil.ReverseProxy. Go's proxy flushes text/event-stream answers at once (flushInterval in Go 1.27.3's reverseproxy.go).
    • internal/server sets only ReadHeaderTimeout, so there's no write timeout to cut a stream.
  • Order: homelab-planner (the user's OK and the PAT) merges before planner-gateway. Until then the page's steps go first.
  • Credits: none in check. Live checks wait for the PAT, are few, and each PR reports what it spent.
  • Rejected:
    • the planner after vault-edit-sync, which would leave this session idle;
    • a plans table;
    • polling;
    • Home's "Needs you" for a plan waiting on an answer, which isn't in §8.2 and can come later.

Gates

BAKHYARD_E2E_PORT=8480 mise run check: green, all 20 tasks. Results:

  • golangci-lint: 0 issues.
  • govulncheck: no vulnerabilities.
  • Go coverage: 96.5%.
  • svelte-check: 0 errors.
  • Vitest: 1223 passed.
  • Playwright: 386 passed, 8 skipped.
  • knip and pnpm audit: clean.

QA and review

  • Docs only. Every stated fact was checked against its source; see above.
  • An earlier draft said the SDK's Connection and Mode were new since the spike's v1.0.25. The v1.0.25 source already has both, so the claim was dropped.
  • §0's Ideas paragraph is one line that every session appends to. The "Needs you" idea stays inside decision 403 instead, to avoid conflicts.
  • No blocking findings.

Merged under the user's standing OK once CI's check is green on a head with origin/main merged in.

vault-edit-sync's remaining steps wait on the user's answer on how edits
get back to the Mac, so the planner starts now. Only Save to Obsidian
needs the vault's store, so it comes last. The CLI keeps the plans in
the service's own folder, so no table yet; the conversation streams as
server-sent events. Decision 403.
@Bakhomious
Bakhomious merged commit ca9d8a5 into main Oct 30, 2026
2 checks passed
@Bakhomious
Bakhomious deleted the step/planner-plan branch October 30, 2026 02:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant