Skip to content

docs: observe --json reconciliation + session launch model#35

Merged
zywkloo merged 3 commits into
mainfrom
docs/session-launch-and-observe
Jun 14, 2026
Merged

docs: observe --json reconciliation + session launch model#35
zywkloo merged 3 commits into
mainfrom
docs/session-launch-and-observe

Conversation

@zywkloo

@zywkloo zywkloo commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Records the session-launch protocol decisions reached during the wtflow MVP review. Docs-only, no code.

  • observe --json — specifies who computes alarms: status --json reports raw task+git facts; reconciled alarms (joining task + session + git) are a core-owned observe --json, so clients render alarms instead of re-implementing the reconcile tables and drifting. Marked proposed, not yet shipped.
  • session launch refinements — Planner-lite init (deferred), launch-mode toggle (interactive | headless), launcher-surface-vs-terminal boundary, single-writer clarification for .worktree-session.json.
  • observe transport boundary — why one-shot (level/pull) lives in Bash and streaming (edge/push) is deferred to the Rust core (ADR-006): the output schema is the permanent contract, only delivery is added later behind capabilities --json.

🤖 Generated with Claude Code

zywkloo and others added 3 commits June 13, 2026 22:17
status --json reports raw task + git facts only. Reconciled alarms require
joining task, session, and git facts. Record observe --json so every client
renders alarms instead of re-implementing the Session Model v1 and Task State
Machine v1 reconcile tables and drifting apart.

Marked proposed, not yet shipped. Bash ships it as a one-shot; push/SSE
delivery is deferred to the Rust core (ADR-006).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
- session-runtime-protocol: task init is a Planner-lite headless step,
  deferred to v2 (v1 launches the interactive TUI directly); launch mode
  (interactive | headless/full-auto) is a user-facing start-time toggle
  mapping to the sidecar field
- session-state: the GUI launcher surface (e.g. a VS Code-style bottom pane)
  is a launcher+monitor, not an embedded terminal — the TUI opens externally;
  clarify that `wtcraft new` copies only .worktree-task.md and the launcher is
  the sole writer of .worktree-session.json (never a copied template)

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Record why observe's one-shot/streaming split sits at the Bash/Rust boundary:
one-shot is level-triggered (pull); streaming adds edge-triggered push, which
needs a service runtime Bash deliberately lacks. The observe --json output
schema is the permanent contract; only delivery is added later, behind
capabilities --json, without touching clients.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@zywkloo zywkloo merged commit 4605dd7 into main Jun 14, 2026
1 check passed
@zywkloo zywkloo deleted the docs/session-launch-and-observe branch June 14, 2026 06:20
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