jinye
43e6a9300a
feat(cli): Enable multi-workspace session routing ( #6511 )
...
* feat(cli): Enable multi-workspace session routing
Implement the Phase 2a sessions closed loop for qwen serve multi-workspace mode. Multiple explicit workspaces now create registered runtimes while legacy workspace surfaces remain primary-only, and live session routes dispatch by owning runtime.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address phase2a session review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): cover remaining phase2a review gaps
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address phase2a session review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): satisfy phase2a lint checks
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): align multi-workspace status test limits
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address phase2a session review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6511 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-07-08 10:06:31 +00:00
jinye
1420566620
feat(serve): Bound replay snapshot history ( #6482 )
...
* feat(serve): Bound replay snapshot history
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6482 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review suggestions (#6482 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* test(acp-bridge): fix replay truncation assertion access
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(serve): keep replay cap validation out of fast path runtime
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(acp-bridge): reset replay window on bulk seed
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6482 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: fix CI failure on PR #6482
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(sdk): expose bounded replay status types
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: qwen-code-dev-bot <qwen-code-dev-bot@users.noreply.github.com>
Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
2026-07-08 06:53:58 +00:00
jinye
fe816f625f
feat(cli): Surface daemon prompt queue status ( #6325 )
...
* feat(cli): surface daemon prompt queue status
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6325 )
* codex: address PR review feedback (#6325 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6325 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-07-05 08:25:42 +00:00
jinye
bfce93a304
feat(acp-bridge): Add EventBus subscriber byte cap ( #6314 )
...
* feat(acp-bridge): add EventBus subscriber byte cap
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6314 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-07-05 02:04:17 +00:00
jinye
3911b1dc34
fix(serve): optimize daemon NDJSON stream handling ( #6263 )
...
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-07-03 15:27:28 +00:00
callmeYe
fe3dd93e8f
Add sessionless workspace memory forget and dream ( #6227 )
...
* feat(serve): add sessionless memory forget and dream
* fix(serve): thread abort through memory forget
* fix(serve): address workspace memory review feedback
* fix(serve): address memory review follow-up
* fix(memory): harden forget review paths
* fix(serve): classify memory availability failures
* fix(serve): document memory task capacity tiers
* fix(memory): address review edge cases
* chore: remove mobile-mcp formatting noise
2026-07-03 11:00:53 +00:00
tanzhenxin
2a21963026
feat(web-shell): display nested sub-agents as a tree in the tasks panel ( #6239 )
...
Carry nested-agent lineage (parentAgentId, parentName, depth) through the
daemon tasks snapshot as optional fields and render the web-shell tasks
panel as a tree: children group under their parent with a ↳ marker and
clamped indentation, agents whose parent left the roster are promoted to
root with a "from <parent>" annotation, and the detail view gains a
nesting line. The [blocking] tag and the two-step stop confirmation now
apply only to provably user-blocking chains, mirroring the TUI's
agent-forest semantics from #6191 .
2026-07-03 10:01:07 +00:00
jinye
b4fe43741a
feat(daemon): Add session archive support ( #6058 )
...
* feat(daemon): add session archive support
Add active versus archived daemon session storage, archive and unarchive APIs, strict live-session close handling, ACP and SDK support, and coverage for archive listing, load rejection, deletion, and route mapping.
Closes #6057
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: fix CI failure on PR #6058
Update the no-AK integration capability baseline to include the new session_archive capability added by this PR.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6058 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): preserve live session on strict close failure
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): serialize session delete with archive transitions
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* refactor(daemon): share session archive orchestration
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): clean up strict close failures
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* docs(daemon): clarify archive recovery tradeoffs
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): log session archive outcomes
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): parallelize archive session closes
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): serialize archive restore races
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): satisfy archive lint checks
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): keep strict close retryable
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): distinguish archive conflicts
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): warn on unreadable session heads
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* docs(core): document active-only session helpers
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): tighten archive review edges
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): allow concurrent session restores during archive gate
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): avoid archive head reads on session restore
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6058 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(sdk): account for session archive bundle size
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address archive gate review (#6058 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address archive review follow-ups (#6058 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address ACP archive review feedback (#6058 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): Address session archive review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* test(daemon): Cover close ownership restoration
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): Address archive review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* test(daemon): Cover ACP close prompt fallback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* test(daemon): Cover archive close channel loss
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): Address archive follow-up review
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): Return archiving conflict for delete gate
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): Treat unreadable archived ids as occupied
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* refactor(daemon): Share session delete orchestration
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(daemon): Address archive review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(deps): Clear critical runtime audit failures
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(deps): Sync runtime dependency ranges with main
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-07-01 16:24:26 +08:00
jinye
cf6323bfb5
feat(cli): Add daemon-managed channel worker for serve --channel ( #6031 )
...
* feat(cli): add daemon-managed channel worker
* codex: address PR review feedback (#5978 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6031 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6031 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6031 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): harden serve channel worker lifecycle
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): cover channel worker edge cases
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address channel worker review followups
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): clear channel pidfile after worker exit
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address serve channel review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): harden serve channel worker review issues
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): preserve channel worker exit errors
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): harden daemon channel worker startup
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address channel worker review cleanup
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): track channel worker exit explicitly
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6031 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address daemon worker startup review (#6031 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#6031 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address daemon worker disconnect review (#6031 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address serve channel review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): address channel worker review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-07-01 01:40:54 +00:00
jinye
988a5021e8
docs(telemetry): comprehensive documentation update to match current implementation ( #5960 )
...
* docs(daemon): update developer docs for recent daemon PRs
- Add Last-Event-ID client reconnect guide (10-event-bus, 13-sdk-daemon-client)
- Add cross-connection vote routing section (04-permission-mediation)
- Add new capability tags: daemon_status, workspace_permissions, workspace_trust,
workspace_github_setup, workspace_voice, workspace_voice_transcription,
voice_transcribe (11-capabilities-versioning)
- Add new event types: trust_change_requested, github_setup_completed,
extensions_changed, mid_turn_message_injected (09-event-schema)
- Fix _meta.serverTimestamp source description (09-event-schema, 10-event-bus)
- Fix async function* syntax in SDK example (13-sdk-daemon-client)
- Sync event/capability counts across all docs (43->47 events, 67->75 tags)
* docs(daemon): add workspace remember design doc (PR #5884 )
Design document for the sessionless workspace remember API proposed in
PR #5884 . Covers API endpoints, task lifecycle, implementation details,
events, error handling, and SDK integration.
Status: Proposed (not yet merged).
* docs(telemetry): comprehensive update to match current implementation
Added 34 undocumented events, 17 metrics, 11 daemon metrics, 2 spans. Fixed diff_stat attribute schema (was documented as JSON string, actually individual attributes). Added Performance Monitoring reserved section. Standardized attribute annotations with type and optionality markers.
* fix(telemetry): extract EVENT_TOOL_OUTPUT_TRUNCATED constant and add qwen-code prefix
Extracted hardcoded event name to constant for consistency with other telemetry events. Added standard qwen-code. namespace prefix. Updated test assertion to match the new prefixed event name.
* qwen: address PR review feedback (#5960 )
* qwen: address PR review feedback (#5960 )
* qwen: address PR review feedback (#5960 )
* qwen: address PR review feedback (#5960 )
* qwen: address PR review feedback (#5960 )
* qwen: address PR review feedback (#5960 )
* docs: address PR review feedback (#5960 )
* docs: address PR review feedback (#5960 )
2026-06-28 21:01:35 +00:00
jinye
60cf2556df
refactor(cli): Remove serve bridge re-export shims ( #5955 )
...
* codex: address PR review feedback (#5937 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* refactor(cli): remove serve bridge re-export shims
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5955 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-06-28 13:20:44 +00:00
jinye
7f71a8512d
docs(daemon): refresh daemon docs for recent PRs (wave 2) ( #5954 )
...
* docs(daemon): update developer docs for recent daemon PRs
- Add Last-Event-ID client reconnect guide (10-event-bus, 13-sdk-daemon-client)
- Add cross-connection vote routing section (04-permission-mediation)
- Add new capability tags: daemon_status, workspace_permissions, workspace_trust,
workspace_github_setup, workspace_voice, workspace_voice_transcription,
voice_transcribe (11-capabilities-versioning)
- Add new event types: trust_change_requested, github_setup_completed,
extensions_changed, mid_turn_message_injected (09-event-schema)
- Fix _meta.serverTimestamp source description (09-event-schema, 10-event-bus)
- Fix async function* syntax in SDK example (13-sdk-daemon-client)
- Sync event/capability counts across all docs (43->47 events, 67->75 tags)
* docs(daemon): add workspace remember design doc (PR #5884 )
Design document for the sessionless workspace remember API proposed in
PR #5884 . Covers API endpoints, task lifecycle, implementation details,
events, error handling, and SDK integration.
Status: Proposed (not yet merged).
2026-06-28 08:36:30 +00:00
jinye
2199382ae0
refactor(cli): Split serve server routes ( #5809 )
...
* refactor(cli): split serve server routes
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5809 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
2026-06-26 12:47:47 +00:00
samuelhsin
24edd459ea
feat(serve): query a single session's status by id ( #5857 )
...
* feat(serve): query a single session's status by id
Add a daemon HTTP endpoint, GET /session/:id/status, that returns the
live status summary for one session by its id — the same per-item shape
that the workspace session list produces (sessionId, workspaceCwd,
createdAt, displayName, clientCount, hasActivePrompt). It answers 200
with the summary when the daemon holds a live session with that id, and
404 when the id is unknown.
Previously the only way to read a session's live state was the full
paginated workspace session list, forcing a caller that already holds a
session id to fetch every page and filter client-side just to answer
"is this session still running?". A by-id lookup is the natural
primitive for polling a single known session's hasActivePrompt /
clientCount — for example, a client UI that disables controls or shows a
"task in progress" hint while a specific session is running.
The data already exists on the bridge, so this adds one accessor
(getSessionSummary) sharing the same summary builder as the list path,
one route, unit tests, and a docs note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* docs(serve): clarify /session/:id/status returns the live bridge view
The session-status docs said the response is "the same item shape that
GET /workspace/:id/sessions lists". That parity only holds at the bridge
layer; the HTTP list endpoint enriches each item with persisted
session-store data, so for the same live session the two routes diverge
on createdAt (persisted first-prompt time vs live spawn time), updatedAt
(present only on the list), and displayName (derived from the stored
title/prompt vs the live session's own, usually unset). Reword to
describe /status as the raw live-session view, spell out those
differences, and fix the 404 note to match the actual { error, sessionId }
body (no code field).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat(serve): advertise GET /session/:id/status via session_status capability
The new single-session status route had no entry in the capability
registry, so clients couldn't feature-detect it the way they pre-flight
the sibling read-only session routes (session_context, session_tasks,
session_stats, session_lsp, …). Add an always-on `session_status` tag,
mirror it in the registered-features test, and document it in the
protocol feature list, the capability→route map, and the capability
versioning reference.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test(serve): pin that /session/:id/status omits displayName when unset
The docs state the route returns displayName only when the live session
has one, but no test asserted the key is absent from the HTTP body in
that case — it relied implicitly on res.json() dropping the
undefined-valued key. Add a sibling 200 test with a summary that has no
displayName and assert the key is not present, so a future change to the
shared summary builder can't silently break the documented shape.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test(serve): add session_status to the integration capabilities baseline
The capabilities-envelope integration test pins the full caps.features
list returned by a live daemon, so adding the session_status capability
tag to the registry made the live list diverge from the test's hardcoded
baseline (CI: expected 65, received 66). Add session_status to that
baseline in the same position the registry emits it (after session_lsp),
and to the session-lifecycle capability-tag reference for completeness.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: 云胧 <yungsen.hys@alibaba-inc.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 17:14:42 +00:00
jinye
07beac1ddb
feat(telemetry): Make sensitive span attribute limit configurable ( #5804 )
...
* feat(telemetry): Make sensitive span attribute limit configurable
Default sensitive native OTel span attribute payload truncation to 1 MiB and allow users to override the limit via settings or environment.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: fix CI failure on PR #5804
Add the new sensitive span attribute default export to telemetry/core mocks used by the full Windows test suite.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Include invalid telemetry max-length values in errors, make the telemetry parser stricter, include the configured truncation limit in markers, and cover the exact truncation boundary.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* test(cli): fix ACP worktree mock for telemetry limit
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): honor telemetry limit for model output spans
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* test(core): cover telemetry span limit edge cases
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Keep sensitive span truncation results within the configured max length, make response-text extraction require an explicit cap, and cover whitespace-only sensitive span max length env values.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Keep model-output span attribute writes best-effort and share visible response text extraction between log and sensitive span paths.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): address telemetry review feedback
Bound prefixed tool span payloads, share sensitive max-length validation, and cover multi-part sensitive model output.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(cli): update workspace facade core mock
Add telemetry sensitive span length constants to the qwen-code-core mock used by the workspace service facade test so settings schema imports can load.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5804 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
Co-authored-by: 易良 <1204183885@qq.com>
2026-06-25 08:08:16 +00:00
jinye
87ce3f47a3
feat(cli): Add skill usage stats ( #5826 )
...
* feat(cli): Add skill usage stats
Track live session skill invocations in daemon stats and expose /stats skills across interactive and non-interactive flows.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5826 )
Add non-interactive skill stats tests for action rejection and prompt hook errors.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-06-25 00:10:55 +00:00
jinye
a234860a4a
fix(core): Align MCP OAuth guidance and docs ( #5589 )
...
Qwen Code CI / Classify PR (push) Waiting to run
Qwen Code CI / Test (ubuntu-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / Test (macos-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / Test (windows-latest, Node 22.x) (push) Blocked by required conditions
Qwen Code CI / Post Coverage Comment (push) Blocked by required conditions
Qwen Code CI / CodeQL (push) Blocked by required conditions
Qwen Code CI / Integration Tests (CLI, No Sandbox) (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:docker (push) Waiting to run
E2E Tests / E2E Test (Linux) - sandbox:none (push) Waiting to run
E2E Tests / E2E Test - macOS (push) Waiting to run
* docs: Align docs with current CLI behavior
Update stale documentation and user-facing MCP OAuth guidance to match the current dialog-based flows, SDK permission semantics, current links, and Qwen OAuth status.
Also replace Ink internal imports with public Ink APIs for the shared text input so the workspace builds against Ink 7.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: fix BaseTextInput Ink import (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5589 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): surface MCP OAuth credential read failures
Fix SSE OAuth credential pre-check failures by reporting token storage read errors before connecting.
Update SDK coreTools docs and extension release link text from the follow-up review.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): harden MCP OAuth error handling
Handle stderr warning failures as best-effort and keep SSE 401 OAuth guidance when credential re-read fails.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): keep SSE OAuth pre-read best effort
Avoid blocking SSE MCP connections when the diagnostic credential pre-read fails, and cover BaseTextInput absolute-position edge cases.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): handle SSE OAuth validation errors
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): surface MCP OAuth recovery guidance
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): cover MCP OAuth retry paths
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix(core): address OAuth guidance review
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-06-24 07:09:53 +08:00
jinye
c9b5c99e44
feat(serve): Add remote LSP status route ( #5741 )
2026-06-23 18:13:29 +08:00
jinye
a8863c203c
refactor(cli): Finish serve kebab-case filenames ( #5604 )
2026-06-22 21:15:40 +08:00
jinye
b4705b2534
refactor(cli): rename serve files to kebab-case ( #5592 )
...
Rename the PR1 serve and daemon adapter files from issue #5576 to kebab-case and update current imports, tests, comments, and developer docs to match.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
2026-06-22 13:13:07 +08:00
jifeng
858c900af9
feat(serve): add daemon idle detection to GET /health?deep=true ( #4934 )
...
* docs(design): add daemon idle detection API design for machine reclamation
When qwen daemon is deployed across multiple machines, an external
scheduler needs a reliable signal to determine if a daemon is idle
and the machine can be reclaimed. This design proposes enhancing
GET /health?deep=true with activePrompts, connectedClients,
channelAlive, lastActivityAt, and idleSinceMs fields.
* feat(serve): add idle-detection fields to GET /health?deep=true
* fix(test): add activePromptCount and lastActivityAt to fakeBridge
Update the test helper to satisfy the expanded AcpSessionBridge
interface so /health?deep=true tests pass with the new fields.
* test(idle-detection): add unit tests for activePromptCount, lastActivityAt and /health?deep=true new fields
* refactor(bridge): replace activePromptCount iteration with O(1) counter
* fix(bridge): move idleSinceMs computation into bridge to eliminate race window
* fix(idle-detection): keep daemon health state consistent
Guard prompt teardown so activePromptCount only decrements once and compute deep health idle fields from the same activity snapshot.
* fix(acp): prevent active prompt leak after channel crash
Reject queued prompts after their session entry has been torn down so daemon health does not report phantom active prompts.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-18 06:55:03 +00:00
Dragon
3408c32110
docs: fix MCP token path, daemon UI event count, add Feishu channel ( #5172 )
...
* docs: fix MCP token path, daemon UI event count, add Feishu channel
- mcp.md: update OAuth token storage path to v2 encrypted file
(mcp-oauth-tokens-v2.json with AES-256-GCM, keychain preferred)
- daemon/00-index.md: fix UI event type count (36 → 37)
- daemon/01-architecture.md: add Feishu to channel bots diagram
- daemon/15-channel-adapters.md: add Feishu adapter (WebSocket/webhook,
config keys, permission UX, reverse-call caveat)
* docs: correct Feishu config keys and permission UX caveat
Address review feedback on 15-channel-adapters.md:
- Feishu config keys are clientId/clientSecret (not appId/appSecret),
per FeishuAdapter.ts:116-118; add encryptKey (required for webhook
mode, enforced at FeishuAdapter.ts:165-168).
- Note that channel permission UX currently auto-approves via AcpBridge
(AcpBridge.ts:111); interactive approval is planned.
* docs: fix missed sibling references for audit consistency
Address review feedback (wenshao) — apply the same corrections to other
doc locations that referenced the stale values:
- MCP token path: also fix docs/developers/tools/mcp-server.md (was still
~/.qwen/mcp-oauth-tokens.json).
- UI event type count 36 -> 37: also fix 14-cli-tui-adapter.md (3 spots),
13-sdk-daemon-client.md.
- Feishu channel: add Feishu rows to both tables in 15-channel-adapters.md
(Per-channel adapters + Adapter matrix) and the package-level Adapters
subgraph in 01-architecture.md, so prose/tables/diagrams all agree.
- Add a note under the Adapter matrix clarifying that Permission UX /
approvalMode are not wired yet (all channels auto-approve via AcpBridge).
2026-06-16 11:37:43 +08:00
jinye
1d2ee34f44
docs(daemon): Refresh daemon docs in English ( #5144 )
...
* docs: Translate daemon developer docs to English
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* docs: Align daemon docs with main implementation
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* fix: apply auto-fixes from /review
- eventRingSize default: 1024 → 8000 (01-architecture.md)
- Restore full 8-step middleware chain in HTTP lifecycle diagram
- Hysteresis re-arm condition: <= → < (06-mcp-budget-guardrails.md)
- permissionMediator.ts line range: 1-1292 → 1-1198
- FsErrorKind count: 13 → 14 (07-workspace-filesystem.md)
- Remove broken links to design/f2-mcp-transport-pool.md
* docs: Smooth daemon developer docs language
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* docs: Sync daemon capability docs
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5144 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5144 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#5144 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-06-15 22:38:01 +08:00
jinye
75e8f259c4
docs: Refresh daemon developer docs ( #4412 )
...
* docs: Refresh daemon developer docs
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* docs: Address daemon review feedback
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* docs: Address daemon review suggestions
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#4412 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#4412 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
* codex: address PR review feedback (#4412 )
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
---------
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-06-15 02:01:37 +08:00