-
Notifications
You must be signed in to change notification settings - Fork 3k
feat(web-shell): add an experimental session workflow cockpit #8583
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
136 commits
Select commit
Hold shift + click to select a range
61699b2
feat(web-shell): add session workflow cockpit
yiliang114 30fd65a
feat(web-shell): add session workflow cockpit demo
yiliang114 83047ee
fix(web-shell): integrate cockpit with shell layout
yiliang114 f23809e
fix(web-shell): unify cockpit with app theme
yiliang114 75d3463
fix(web-shell): finish cockpit demo experience
yiliang114 ddaad6e
fix(web-shell): integrate cockpit navigation
yiliang114 a8d340e
style(web-shell): normalize the session workflow cockpit's design tokens
yiliang114 ca2e25e
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 2561abb
feat(session-workflow): complete experimental cockpit data flow
yiliang114 bfbf57d
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 579da08
style(web-shell): size the plan dialog to its graph and unify node edges
yiliang114 ca0e3cd
fix(web-shell): polish session workflow review UI
yiliang114 8296587
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 6d82a50
fix(web-shell): polish session workflow interactions
yiliang114 7811fbd
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 679ce62
fix(web-shell): polish session workflow interactions
yiliang114 8f51e7e
fix(web-shell): keep complex cockpit plans readable
yiliang114 c6d2f43
fix(web-shell): refine cockpit layout and dag geometry
yiliang114 fc854ec
Merge commit '39fc769d3a49a883d250914d8f705b6b3735720c' into fix/8583…
yiliang114 40e52f6
refactor(web-shell): unify session workflow views
yiliang114 ce36ab1
fix(web-shell): make the plan graph legible under load
yiliang114 02b397b
refactor(web-shell): tighten the workflow page hierarchy and graph re…
yiliang114 80aa051
fix(web-shell): explain a skipped plan graph and trace it from the ke…
yiliang114 c145be6
fix(cli): freeze approved workflow revision
yiliang114 29304b2
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 c4e1c01
test(cli): enter plan mode for revision restore
yiliang114 411ee40
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 18d7054
fix(cli): preserve reviewable workflow revision
yiliang114 35aae79
fix(cli): close workflow runtime boundaries
yiliang114 33b0449
test(cli): type workflow runtime mock
yiliang114 91ae55d
fix(cli): synchronize workflow runtime state
yiliang114 b4af0a2
fix(core): split replaced workflow plans
yiliang114 15cc8d4
fix(web-shell): resolve the R1 review round on the session workflow path
yiliang114 26728b2
fix(serve): apply the effective session-workflow value only on the pr…
yiliang114 2dce6d9
merge: origin/main into codex/session-workflow-cockpit-demo
yiliang114 00f36e4
fix(core): checkpoint of in-progress R2-1/R2-5 fixes; tests follow
yiliang114 f3fea6a
fix(cli): checkpoint of in-progress R2-2/R2-3/R2-4 fixes; tests follow
yiliang114 8d96322
fix(web-shell): checkpoint of in-progress R2-6/R2-7/R2-8/R2-15 fixes;…
yiliang114 548b16a
test(cli): pin R2-2/R2-3 semantics (mutation-verified)
yiliang114 d9669ed
test(cli): pin R2-4 effective-value push on the qualified settings route
yiliang114 fc628d3
test(core): pin R2-11 cold-resume clearing of stats/recentActivities
yiliang114 0776b03
test(core): pin R2-5 hot-continuation clearing of stats/recentActivities
yiliang114 9c62fb0
test(web-shell): pin R2-8 vertical locate + R2-12 floored progress
yiliang114 9228168
fix(cli): guard same-value Session Workflow writes from re-clearing p…
yiliang114 9d36b0a
fix(web-shell): keep the submit guard armed against stale request rej…
yiliang114 e656745
fix(web-shell): strip cockpit deep link when a controlled host takes …
yiliang114 f45520b
test(cli): pin R2-10 setMode exit-plan revision clear (mutation-verif…
yiliang114 e08a5d8
test(web-shell): pin R2-13 cockpit eviction on disabled revalidation …
yiliang114 733cf31
fix(cli): skip Session Workflow gate clears when live sessions alread…
yiliang114 a859f2b
test(cli): pin Session Workflow reload no-op against a stale settings…
yiliang114 11dc051
fix(web-shell): mark the locate button as plan-interactive for host k…
yiliang114 f70ed9a
fix(web-shell): add the data-plan-interactive marker on the locate bu…
yiliang114 7d555a4
fix(core): write subagent Session Workflow revision mutations through…
yiliang114 e71abcf
fix(web-shell): rethrow main-chat approval submission rejections so t…
yiliang114 6152b18
fix(web-shell): strip a stale cockpit deep link when a controlled spl…
yiliang114 2ce2651
fix(core): keep the Session Workflow gate check a pure read
yiliang114 45d5754
fix(core): write InProcessBackend per-agent revision mutations throug…
yiliang114 9ca547e
fix(core): cast the per-agent runtime context through unknown in the …
yiliang114 539b23c
fix(cli): pin the session Session Workflow gate at construction inste…
yiliang114 2b56809
fix(cli): apply the reloaded Session Workflow gate to live sessions u…
yiliang114 29f4493
fix(cli): serialize the Session Workflow settings write, readback, an…
yiliang114 d754ad1
fix(web-shell): include edge identity in the plan graph measure-skip …
yiliang114 8689951
test(cli): report the effective Session Workflow gate in workspace re…
yiliang114 1ecaeef
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 9641b8b
fix(core): write workflow dir-scoped and schema Config overrides thro…
yiliang114 1f58275
fix(web-shell): count the Active agents strip from the same execution…
yiliang114 16f72b4
chore(ci): refresh the cd-cua-driver.yml size baseline
yiliang114 b9a3ac2
fix(cli): apply the reloaded approval mode to live sessions unconditi…
yiliang114 dd28ecb
fix(web-shell): keep cockpit entry focus under StrictMode effect replay
yiliang114 abbd107
fix(web-shell): tally cockpit attention stats from the queue's own su…
yiliang114 2ea15c5
Merge remote-tracking branch 'origin/main' into HEAD
yiliang114 4b186b9
feat(web-shell): add workflow inspector
yiliang114 3a0f3f5
fix(cli): reject stale workflow plan approvals
yiliang114 1214ed4
test: cover workflow approval transitions
yiliang114 28054d3
feat(web-shell): prioritize workflow step progress
yiliang114 2546ad7
fix(core): drop preserved todo deps removed by the same update
yiliang114 b419d52
fix(web-shell): unify strip and inspector active agent tally
yiliang114 61d818c
fix(web-shell): repair theme, type, and state defects in session work…
yiliang114 3a3cd19
fix(web-shell): give the workflow activity time a machine-readable value
yiliang114 9a3d76d
fix(cli): apply reloaded approval mode only when the file value changed
yiliang114 5b3853e
fix(cli): notify settings observers when the live Session Workflow pu…
yiliang114 860bf67
refactor(web-shell): drop the unrelated ToggleGroupItem ref conversion
yiliang114 f6786cd
fix(core): let todo updates reverse dependency chains with preserved …
yiliang114 840955f
fix(cli): pin the Session Workflow gate at session publication, not c…
yiliang114 9a0045d
fix(cli): converge approval-mode reload on the boot parser and restri…
yiliang114 4f6365b
fix(core): preserve agent summary after failed revive
yiliang114 9945384
fix(web-shell): keep workflow tab during approval
yiliang114 229a183
fix(cli): advance the reload approval-mode baseline only on full conv…
yiliang114 e8c6672
fix(web-shell): keep the floating drawer autofocus to genuine opens (…
yiliang114 bfbd48f
fix(cli): give the AgentTool test mock the full SubagentManager surfa…
yiliang114 26b18c7
fix(cli): keep reload from converging sessions on an approval mode bo…
yiliang114 5052b1b
fix(web-shell): close the inspector drawer only when the cockpit open…
yiliang114 1725a61
fix(web-shell): scope cockpit button reset to its own buttons (#8583)
yiliang114 dea5716
fix(web-shell): anchor tasks dialog tools separately from workflow su…
yiliang114 fc363c7
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
qwen-code-ci-bot 9635b67
Merge remote-tracking branch 'origin/main' into resolve-8583
yiliang114 c023390
fix(cli): track reload approval-mode convergence per session (#8583)
qwen-code-ci-bot a33be64
fix(web-shell): keep inspector styles from defeating their own button…
qwen-code-ci-bot a5a81aa
Merge branch 'codex/session-workflow-cockpit-demo' of https://github.…
qwen-code-dev-bot ff135be
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 d2c8b0c
fix(core): stamp Session Workflow revisions approved on plan exit (#8…
yiliang114 dce1887
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 45d4246
fix(serve): fan user-scope Session Workflow writes to sibling workspa…
yiliang114 86a84c6
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
qwen-code-dev-bot 6e51950
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
qwen-code-dev-bot 66a01a6
fix(test): raise AppContainer state-suite timeouts under heavy parall…
qwen-code-dev-bot e9a335f
Merge branch 'main' into codex/session-workflow-cockpit-demo
yiliang114 1f47d77
Merge origin/main into codex/session-workflow-cockpit-demo
yiliang114 f41e74a
Merge branch 'main' into codex/session-workflow-cockpit-demo
qwen-code-dev-bot 7b10967
Merge origin/main into codex/session-workflow-cockpit-demo
yiliang114 0fda787
Merge remote codex/session-workflow-cockpit-demo updates into merge b…
yiliang114 172dbf3
chore: merge latest main
yiliang114 c165ccf
Merge branch 'main' into codex/session-workflow-cockpit-demo
yiliang114 ac740a3
Merge remote-tracking branch 'origin/codex/session-workflow-cockpit-d…
yiliang114 4f9d084
Merge branch 'main' into codex/session-workflow-cockpit-demo
wenshao ad527a4
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 0f9639d
Merge commit '4f9d08445e7ef561e1f0555929965600120e002f' of https://gi…
yiliang114 a510434
Merge branch 'main' into codex/session-workflow-cockpit-demo
yiliang114 91fcbb1
chore: merge latest main
yiliang114 b0db6f7
Merge remote branch updates into main-merge
yiliang114 963d2a4
Merge remote-tracking branch 'origin/main' into resolve-8583-v2
yiliang114 26e421d
Merge remote-tracking branch 'origin/codex/session-workflow-cockpit-d…
yiliang114 082a383
Merge remote-tracking branch 'origin/main' into resolve-8583-v3
yiliang114 345b5a4
Merge remote-tracking branch 'origin/main' into resolve-8583-v4
yiliang114 f2c2601
chore(sdk): bump the browser daemon bundle budget to 217KB
yiliang114 b217fc7
Merge origin/main into codex/session-workflow-cockpit-demo
yiliang114 c23ea12
Merge concurrent branch updates into main sync
yiliang114 40391a2
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 232c7c7
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 e22836c
fix(workflow): resolve plan review feedback
yiliang114 c7cf8c5
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 5882659
Merge branch 'main' into codex/session-workflow-cockpit-demo
yiliang114 4c91084
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 cda5c50
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 0a82ef6
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 64f867f
Merge remote-tracking branch 'origin/main' into codex/session-workflo…
yiliang114 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| # Session Workflow Demo | ||
|
|
||
| ## Purpose | ||
|
|
||
| This branch turns the collaboration-cockpit reference into a native Web Shell workflow inspector and dependency canvas without introducing another workflow engine. Both surfaces are projected from the persisted session transcript and daemon task snapshot. | ||
|
|
||
| ## Data and control flow | ||
|
|
||
| - A `todo_write` snapshot marked inside an enabled Plan/revision context supplies stable Todo IDs, status, content, and `blockedBy` dependencies. Ordinary Todo snapshots are ignored by Workflow. | ||
| - Agent calls are linked to a Todo through `todo_id`; daemon task snapshots supply live status, activity, usage, and persisted transcript/output paths. | ||
| - `exit_plan_mode` remains the execution gate. When the experimental Session Workflow setting is enabled, its revision-bound approval stays in the existing Chat approval flow. | ||
| - Approval uses the existing permission API. Workflow does not schedule, pause, or persist tasks itself. | ||
| - The floating Todo summary and Session header open Workflow as a tab in the existing right panel. Chat remains visible and usable. | ||
| - The inspector shows the summary, items needing attention, ordered steps, selected-step dependencies, Agent activity, and deliverables. Agent and deliverable actions open sibling tabs in the existing panel. | ||
| - **Expand dependency graph** opens the dedicated canvas. Graph selection stays synchronized with the inspector's selected step. | ||
| - `?view=cockpit` keeps the dependency canvas directly addressable and browser navigation returns to Chat. | ||
| - A completed Session restores its Workflow entry from the marked Todo snapshot when the Session is opened normally. | ||
|
|
||
| ## Demo | ||
|
|
||
| From the repository root, start the daemon and Web Shell in separate terminals. Generate the daemon token in the first terminal and copy the printed value for the browser URL below: | ||
|
|
||
| Terminal 1: | ||
|
|
||
| ```bash | ||
| export QWEN_SERVER_TOKEN="$(openssl rand -hex 32)" | ||
| printf 'Demo token: %s\n' "$QWEN_SERVER_TOKEN" | ||
| npm run dev -- serve --port 4293 --workspace "$PWD" --no-web | ||
| ``` | ||
|
|
||
| Terminal 2: | ||
|
|
||
| ```bash | ||
| QWEN_DAEMON_URL=http://127.0.0.1:4293 npm run dev --workspace @qwen-code/web-shell -- --host 127.0.0.1 --port 5294 | ||
| ``` | ||
|
|
||
| Enable **Experimental → Session Workflow Plan & Review**, enter Plan & Review mode, and send: | ||
|
|
||
| > Prepare a five-bullet repository orientation. Before doing any inspection, call todo_write with exactly these pending steps and dependency IDs: inspect-readme; inspect-package; compare-findings blocked by inspect-readme and inspect-package; write-summary blocked by compare-findings. Immediately call exit_plan_mode. After approval, launch exactly two Explore subagents in parallel: one reads only README.md and returns at most three bullets; the other reads only package.json and returns at most three bullets. Pass todo_id inspect-readme and inspect-package to the matching Agent calls. Do not run shell commands or edit files. Update the Todo statuses as each phase completes and return at most five bullets. | ||
|
|
||
| The cockpit is also directly addressable after the Session exists: | ||
|
|
||
| ```text | ||
| http://127.0.0.1:5294/session/<session-id>?token=<copied-token>&view=cockpit | ||
| ``` | ||
|
|
||
| Expected flow: | ||
|
|
||
| 1. The pending `exit_plan_mode` request shows the existing in-flow plan approval in Chat. | ||
| 2. Approval starts execution; clicking the Todo summary opens the Workflow inspector without interrupting the conversation. | ||
| 3. Selecting a step shows its dependencies and linked Agent; selecting the Agent opens its persisted transcript in a sibling right-panel tab. | ||
| 4. **Expand dependency graph** opens the full canvas, where selecting a graph node updates the inspector detail. | ||
| 5. Returning to Chat keeps the inspector available. The header or Todo summary reopens the completed workflow later, and `?view=cockpit` opens the graph directly. | ||
|
|
||
| ## Deliberate boundary | ||
|
|
||
| The reference design's synthetic organization-wide queues, policy engine, scheduler, Skill version catalog, and durable decision ledger are not reproduced. “待我处理” is derived from real failed/cancelled Agent tasks; permission requests remain in Chat, so the page does not claim data the daemon does not provide. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.