I3220 — An intent proposed or an issue moved by any client reaches an open intent workspace without a reload
Advance the change generation (crate::change, from I2981) on every repository_mutation capability of the plan and intents (intent propose, plan transition, evidence attach), and have /ui/idd read itself again on that frame, whichever client made the change: the CLI, MCP from a Claude Code session, or another tab.
PŘIPRAVENO vlna 3 · p1 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3220 bude přijato.
Cíl
Advance the change generation (crate::change, from I2981) on every repository_mutation capability of the plan and intents (intent propose, plan transition, evidence attach), and have /ui/idd read itself again on that frame, whichever client made the change: the CLI, MCP from a Claude Code session, or another tab.
Proč
Owner, 2026-10-12: typing /intent in Claude Code must show in /ui at once over the WebSocket. I2783 (2b) re-reads the workspace when a move ends on its own server; a write by another client is not covered. It waits on in-flight work not yet on master: I2981. Proposed in ADR 0216 (Every live surface follows one channel with named follow streams, and nothing polls where a stream exists) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c232#6, chatgpt-majordomus:c288#8, chatgpt-majordomus:c208#73.
Aktuální stav
On master /ui/idd refreshes every 60 s (share/ui/ui.js); I2783 and I2981 are branch-only.
Cílový stav
One frame per plan or intent write, carrying the record ids it touched; the workspace re-reads the panels those ids feed.
Rozsah
- apps/majordomus-cli/src/capability/builtin/plan.rs
- apps/majordomus-cli/src/capability/builtin/intents.rs
- apps/majordomus-cli/src/http/events.rs
- share/ui/ui.js
- .ai/repo/project/intents
Mimo rozsah
- Writes from the published site
- Merging of concurrent edits
Závislosti
Co na tom čeká
Kritéria přijetí
- majordomus intent propose from a terminal makes an open /ui/idd list the new intent within a second on this machine, measured
- A plan transition made over MCP updates the issue's row in another tab without a reload
- Work starts only once I2981's crate::change and I2783 are on master; their ids join depends_on in the change that records them there
- The criterion every-surface-follows-what-changed#a-write-reaches-the-workspace is switched to evidence: test, ref case_the_workspace_follows_every_client, in the change that adds the case
Validace
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test ui_idd
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib http::events
Požadované důkazy
- case_the_workspace_follows_every_client
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3220.yaml. Read it back with majordomus plan show I3220.