Tianyi Cui
22fc228b97
refactor(runtime): collapse unused setup layers
2026-08-08 21:27:59 +08:00
Tianyi Cui
e8409cf928
fix(code-runtime): track generated runner source
2026-08-08 21:27:58 +08:00
Tianyi Cui
68ccf50a77
refactor(code-runtime): generate shared subprocess runner
2026-08-08 21:27:58 +08:00
Tianyi Cui
ff86795b15
fix(pty): close provider cancellation races
2026-08-08 21:27:58 +08:00
Tianyi Cui
b71dbbe766
fix(runtime): close review lifecycle and bound gaps
2026-08-08 21:27:58 +08:00
Tianyi Cui
674d23118b
fix(runtime): close measured portability defects
2026-08-08 21:27:58 +08:00
Tianyi Cui
124fc6a611
fix(runtime): close portable backend boundary gaps
2026-08-08 21:27:58 +08:00
Tianyi Cui
c1d550de58
refactor(runtime): collapse speculative portability layers
...
Remove the one-consumer bounded-read primitive and shared terminal lifecycle controller, make terminal cleanup one awaited provider operation, and reuse one Code Runtime contract suite. Keep only reproduced cancellation and policy fixes; defer unproven replacement, prompt-attribution, and streaming-frame concerns to scoped markers.
2026-08-08 21:27:58 +08:00
Tianyi Cui
4fecc54998
fix(runtime): close teardown gaps and simplify framing
2026-08-08 21:27:58 +08:00
Tianyi Cui
045e8462ee
fix(pty): drain public signals during close
2026-08-08 21:27:58 +08:00
Tianyi Cui
727546ce6d
fix(code-runtime): bound every subprocess frame hop
2026-08-08 21:27:58 +08:00
Tianyi Cui
7eedfda961
fix(pty): fence delayed signal prompts
2026-08-08 21:27:57 +08:00
Tianyi Cui
277870dac2
Revert "fix(pty): fence delayed signal prompts"
...
This reverts commit a78958eeeaf04a3acdf22ef8a26dec370661a51d.
2026-08-08 21:27:57 +08:00
Tianyi Cui
d6b3de6e0d
fix(pty): fence delayed signal prompts
2026-08-08 21:27:57 +08:00
Tianyi Cui
be3533fa19
fix(subprocess): clean runtime state after teardown failure
2026-08-08 21:27:57 +08:00
Tianyi Cui
0fec058a48
fix(pty): retain send ownership through cancellation
2026-08-08 21:27:57 +08:00
Tianyi Cui
4d63552d00
fix(lsp): preserve workspace cancellation reason
2026-08-08 21:27:57 +08:00
Tianyi Cui
098f826001
fix(subprocess): honor teardown and PATH semantics
2026-08-08 21:27:57 +08:00
Tianyi Cui
f61a4943bd
fix(lsp): preserve POSIX backslash paths
2026-08-08 21:27:57 +08:00
Tianyi Cui
71e0eeac40
fix(code-runtime): contain hostile boundary failures
2026-08-08 21:27:57 +08:00
Tianyi Cui
f84f63ccd7
test(runtime): finish zombie quiescence migration
2026-08-08 21:27:57 +08:00
Tianyi Cui
562cd154a8
docs(lsp): remove resolved URI limitation
2026-08-08 21:27:57 +08:00
Tianyi Cui
ea047cc634
test(subprocess): accept zombie quiescence
2026-08-08 21:27:57 +08:00
Tianyi Cui
06a9224904
fix(subprocess): retain failed terminal cleanup
2026-08-08 21:27:57 +08:00
Tianyi Cui
a95e01d8b0
fix(pty): detach cancellation before close drain
2026-08-08 21:27:57 +08:00
Tianyi Cui
6e5d711099
fix(lsp): cancel executable setup on disposal
2026-08-08 21:27:57 +08:00
Tianyi Cui
f2a3cc450e
fix(lsp): retain drive syntax in UNC worlds
2026-08-08 21:27:57 +08:00
Tianyi Cui
3572c65d57
fix(pty): join asynchronous terminal operations
2026-08-08 21:27:57 +08:00
Tianyi Cui
d29c73ddd6
fix(subprocess): treat zombie-only groups as quiescent
2026-08-08 21:27:56 +08:00
Tianyi Cui
ea75333c92
fix(lsp): compare UNC paths case-insensitively
2026-08-08 21:27:56 +08:00
Tianyi Cui
f5f40c7403
fix(pty): discard pre-write readiness evidence
2026-08-08 21:27:56 +08:00
Tianyi Cui
587fff9fe7
fix(runtime): honor platform quiescence semantics
2026-08-08 21:27:56 +08:00
Tianyi Cui
4997fb219e
fix(lsp): preserve execution-world URI semantics
2026-08-08 21:27:56 +08:00
Tianyi Cui
3537665806
fix(subprocess): honor Windows environment key casing
2026-08-08 21:27:56 +08:00
Tianyi Cui
03f1c8eb43
fix(subprocess): absolutize relative PATH lookups
2026-08-08 21:27:56 +08:00
Tianyi Cui
a0200376a1
fix(pty): defer the first readiness poll
2026-08-08 21:27:56 +08:00
Tianyi Cui
65264f6c80
refactor(subprocess): share terminal lifecycle
2026-08-08 21:27:56 +08:00
Tianyi Cui
32bce339da
fix(runtime): close lifecycle teardown races
2026-08-08 21:27:56 +08:00
Tianyi Cui
c17727d43d
test(subprocess): cover terminal release cleanup
2026-08-08 21:27:56 +08:00
Tianyi Cui
e5f3a67363
fix(runtime): publish completion before pipe cleanup
2026-08-08 21:27:56 +08:00
Tianyi Cui
ac81165662
fix(runtime): close async cleanup and framing races
2026-08-08 21:27:56 +08:00
Tianyi Cui
16cac3b5af
fix(runtime): close remote cleanup and readiness races
2026-08-08 21:27:56 +08:00
Tianyi Cui
8917ff8ef4
refactor(runtime): compose consumers over fs and subprocess
2026-08-08 21:27:55 +08:00
Tianyi Cui
d21917f4cf
refactor(subagent): resolve list tool inputs explicitly
2026-08-08 21:05:58 +08:00
Tianyi Cui
5f755d5717
fix(web): keep Send beside subagent Stop
2026-08-08 21:05:58 +08:00
Hypatia May
ddea7b398e
docs: refresh tool catalog after stack merge
2026-08-08 20:02:37 +08:00
Hypatia May
656dbadbad
test(subagent): close descendant listing coverage
2026-08-08 20:02:37 +08:00
Hypatia May
5e1ec10d5a
fix(subagent): address descendant listing review
2026-08-08 20:02:37 +08:00
Hypatia May
d769d3cbb7
feat(subagent): let ancestors interrupt descendants
...
interrupt_agent(agent_id) passes the calling agent as the ancestor
authority for ctx.subagents.interrupt(); the service verifies live
registry identity and recorded lineage, so a direct child or deeper
descendant stops with the same generic parameter while send_message keeps
its exact-direct-parent authority.
Discovery: list_agents gains an optional scope. descendants walks the new
SubagentService.listDescendants() — one lineage trace flattened in stable
pre-order across ordinary and one-shot intermediates, each entry carrying
its verified parentId and depth — and every status now comes from the
live Agent registry (running/idle/complete).
Refs #1535
2026-08-08 20:02:37 +08:00
Hypatia May
5793614b86
feat(web): expose continuable subagent interrupt
...
The composer's single primary action now stops a running continuable
child: Session.cancel() routes a continuable address through
subagent.interrupt (ordinary sessions keep session.cancel; one-shot
addresses stay uncancellable), and InputBar switches the same Send button
to Stop while a continuable child runs. A running parent-offline child
keeps the default composer with disabled input so that Stop stays
reachable; the read-only takeover returns once it stops.
Refs #1535
2026-08-08 20:02:36 +08:00