Commit Graph
161 Commits
Author SHA1 Message Date
Yichen Jiang 11d6bd05f3 feat(web): preview file and skill references in the sidebar 2026-09-10 11:31:27 +08:00
imccyu 3435dbd690 fix(web): address sidebar and stats review feedback 2026-09-10 03:20:55 +08:00
Yif 1c044f5140 feat(sidebar): refine guide start page and quiet stat pill noise
The guide tab gains a compass hero, per-entry descriptions (shown while
at most four entries are listed), and a quieter cube placeholder for
entries that registered no glyph; the files entry registers its
description and folder glyph. Bundled stat fixes: the session usage
dialog drops the zero cache-write row, and the turn-time pill renders as
plain text when its dialog would only repeat the pill's own duration.
2026-09-10 01:23:24 +08:00
Tianyi Cui 58956c1a8a Revert "feat(web): preview Mermaid, Graphviz, SVG, and HTML code fences" 2026-09-09 22:01:10 +08:00
Yudong 7aa73877e6 Merge origin/master into feat/mermaid-preview 2026-09-09 19:53:42 +08:00
yudshj fb84576ea7 refactor(web): unify markdown preview components and notes 2026-09-09 17:39:04 +08:00
yudshj a8f9d81f3a feat(client): preview Graphviz, SVG, and HTML Markdown fences 2026-09-09 17:39:04 +08:00
fz ee35e40bc8 feat(ui): preview Mermaid diagrams in Chat code blocks 2026-09-09 17:39:04 +08:00
yixiangihsiang 4ee9e055d5 feat(client): add shared file type icons 2026-09-09 16:41:15 +08:00
Turtle 9606b69545 Merge origin/master into turtle/issue-3760-zh-display-model-copy 2026-09-09 11:02:57 +08:00
imccyu dcfd8c299d refactor(client): rename document preview package 2026-09-09 10:12:40 +08:00
imccyu 4321766ead feat(client): add extensible document previews and sidebar defaults 2026-09-09 10:12:38 +08:00
yudshj 37d27fcdf9 feat(web): present immutable file deliveries with download cards 2026-09-09 01:15:31 +08:00
Tianyi Cui e11b2a5558 merge: refresh session-log-v3 from master 345248f470 2026-09-08 21:15:06 +08:00
Turtle 555c04bdfc fix(web): localize Chinese model copy 2026-09-08 21:05:31 +08:00
_Kerman 3f1f7da7c3 Merge origin/master into fix/session-prose-local-media-display 2026-09-08 14:25:21 +08:00
Turtle f121b09fb1 Merge pull request #3680 from deepseek-harness/turtle/strip-think-summary-bold-markers
fix(web): strip bold markers from think summaries
2026-09-08 13:30:04 +08:00
Tianyi Cui 96fa1dfac8 Merge pinned master 84bde6c7 into V3 readiness repair 2026-09-08 13:16:35 +08:00
Turtle b08310ac1d fix(web): strip bold markers from think summaries 2026-09-08 12:56:21 +08:00
Yif 256afa848c Merge remote-tracking branch 'origin/master' into fix/input-placeholder-stat-ui-polish
# Conflicts:
#	packages/client/ui-chat/src/client/locale.ts
#	packages/client/ui-chat/tests/gate-branch-tails.client.spec.tsx
2026-09-08 00:45:29 +08:00
Yif 2c45dfe71e fix(client): address review — pill accessible names, static untimed pill, exclusive stat dialogs
StatsPills buttons carry explicit aria-labels separating segments with
' · '; a log with no timed figure renders the counts pill as a static
reading instead of a button opening an empty dialog; the pills row owns
one exclusive open slot so sibling dialogs never stack. ContextMeter
restores the '~' approximation prefix (usedTokens prefers heuristic
projectedTokens). ModelSelect's jscpd:ignore now names the real gap
(useAnchoredPosition places from the left edge only). The pills Agent
Note's stale facts (locale keys, context occupancy, golden ownership)
are rewritten in place, en+zh. plan-review.e2e.ts parks the pointer
after Approve so the ContextMeter tooltip cannot leak into the aria
captures; affected goldens refreshed.
2026-09-08 00:35:04 +08:00
Tianyi Cui 5b039c1796 Merge master 822041865d into Session V3 release 2026-09-08 00:17:14 +08:00
Yif e939a482e9 Merge origin/master: reconcile placeholder rewording with steer-all and note archival
Master archived three Agent Notes this branch had fact-updated (archived
copies restored to their frozen master content; the pills note now links
the archived path), extended the steer-all placeholder to continuable
children (spec and subagent e2e take master's behavior with this branch's
reworded copy), and dropped the session-sharing sentence from feedback
acks (goldens re-refreshed with the new placeholder).
2026-09-07 22:01:06 +08:00
imccyu 7e017046ca refactor(chat): open file resources in the Sidebar and remove Details 2026-09-07 21:29:41 +08:00
Yif 3997f36999 feat(client): replace the stats strip with two icon pills and click-open stat dialogs
The A/B winner over the single-line StatsLine: a gauge pill (counts + TPS,
opening the session-stats dialog) and a database pill (billed total +
cache-hit share, opening the exact token-usage dialog), sharing a new
stat-dialog module. StatsLine and its dead locale keys are deleted, the
gauge icon is optically centered, and the composer keeps its 4px clearance
through the data-composer-stats contract. Agent Note added; stale
StatsLine references across implemented notes updated in place.
2026-09-07 20:59:19 +08:00
_Kerman ead14339bc refactor(ui-chat): fold local-path media mapping into AssistantMarkdown
A single-consumer pure helper does not earn its own file: the mapping
now lives beside the prose vocabulary it serves (same shape as the
deliverables file-mention logic), and its unit cases merged into the
component spec.
2026-09-07 16:46:46 +08:00
_Kerman 9da174c304 fix(web): display local media paths referenced in session prose
Assistant prose that references a workspace-contained local media path
(e.g. `![](/Users/.../x.png)`) now renders through a same-origin
`GET|HEAD /api/file?path=` route instead of inert alt text.

- ui-primitives: MarkdownText gains a settled-only MarkdownPathImages
  vocabulary gate (same posture as file mentions); no vocabulary means
  byte-identical output.
- ui-chat: AssistantMarkdown supplies a page-stable rewrite vocabulary
  for absolute POSIX paths (local-path-media.ts).
- session-controller: SessionMediaReferences plugin contribution mounts
  the route on the authenticated connection.fetch channel; per-request
  policy = workspace-root containment after realpath, regular file,
  allowlisted media extension (images additionally signature-checked),
  range/HEAD streaming, private no-store + nosniff, fail-closed statuses.
- Agent Note added (feature/2026-09-07-session-prose-local-media-display).

Closes #3662.
2026-09-07 15:34:19 +08:00
Tianyi Cui 70ae2354d0 Merge latest master performance work and V3 preset migration
Freeze exactly the post-admission derived message array using the inherited per-agent provenance cache, preserving the prepared-route ordering and retry semantics. Adopt the root’s legacy preset migration without changing native V3 custom preset behavior. Request freeze, admission, projection and reconstruction regressions pass58 tests.
2026-09-07 14:55:12 +08:00
Tianyi Cui 19d167cec2 Merge latest master request-freeze and frontend performance work
Preserve the V3 system-prompt projection while adopting master’s per-agent frozen-message provenance and frontend performance gates. Keep benchmark workload admission and diagnostics fixes intact, and retain both migration and first-open/reopen lifecycle guarantees.
2026-09-07 14:53:00 +08:00
Tianyi Cui 9ef426d729 fix(chat): keep genuine near-floor scroll gestures pending 2026-09-07 13:46:30 +08:00
Tianyi Cui fa6bf62a98 fix(chat): settle pinned scroll deliveries before layout growth 2026-09-07 13:24:04 +08:00
Tianyi Cui cea0aff474 fix(web): display known prompts in headerless history windows
Give appended Chat system messages their own cards and suppress the following initial or same-step update header card. Preserve replacement/header ownership and conservative unknown surface ordering. Trajectory uses prompt-only presentation when no request header is loaded, never fabricated provider, model, or tools; prepend deduplicates against real request changes. Test-first regressions showed missing Chat cards and missing trajectory prompt data; 148 focused tests and affected client project typechecks pass.
2026-09-07 11:09:40 +08:00
Tianyi Cui 6861ac7459 refactor(client): trust narrowed surface event markers
The in-operator narrows SessionEvent to events whose surfaceOp is required. Remove redundant undefined checks from both target Definitions; retain append-versus-replacement discrimination and shared prompt interpretation. This deletes dead conditions reported by the full type-aware CI lint gate without adding fallback behavior.

Validation: both Chat and Trajectory definition regression suites pass with the simplified predicates.
2026-09-07 11:09:40 +08:00
Tianyi Cui b3116b6048 fix(client): derive effective system prompts from surviving surface nodes
Chronological lookup keeps B after compaction shadows it even though the model sees surviving head A and no system event is emitted. Share pure extraction and compact immutable surface interpretation through uiConversation; target-owned Definitions preserve historical cards. Track inherited surface positions in a map containing only surviving replacement endpoints. No full-log scans or prompt work on ordinary messages/chunks.

A partial window cannot infer the order of older unindexed endpoints: pre-window [head seq5, tail seq3], followed by replacements 3->6 and 5->7, must not report seq7 as effective. Withhold subsequent prompt text until prepend reconstructs the prefix; exact pure and both target regressions cover unavailable -> C. Drop shadowed replacement-index entries; repeated rewriting one node keeps one entry, while historical prefix maps remain immutable. Current replacement work is O(S+P), where S is surviving system nodes and P surviving replacement endpoints; history retains per-prefix copies, not an unbounded linked chain.

Coverage includes A->B->C, A->B->compaction->A without a system event in replay/live/partial windows, chained nonmonotonic replacements, empty tails, head rewrites, unknown ordering, inherited prompt withholding, and index pruning. Focused suites total 89 passing cases; rebuilt trajectory smoke 3 passed. Affected client types/lint/bundles, diff checks, and 33/33 doc-sync gates passed. README EN/ZH and owning note updated. Parent owns final GUI/recorded-session evidence; no server started.
2026-09-07 11:09:39 +08:00
Tianyi Cui c988a6796f feat(agent-loop): append system prompt changes on capable routes
Consolidate the existing in-history capability, loop, UI and artifacts into one baseline. Preserve the reviewed tree so each independently verified correction has a subsequent rationale-rich commit.
2026-09-07 11:09:39 +08:00
Tianyi Cui 71b0d83822 Merge current V3 PTC vocabulary into system-prompt representation
Compose the shared release branch PTC rename with the structural system-head migration in the existing V2-to-V3 stage. Audit source payloads and remap local coordinates before renaming dispatch vocabulary and owned plugin attribution; retain original message identities and generation-qualified references. Native V3 validation combines the same system and PTC lifecycle semantics through a private released-validation view.

Reuse the V3 row-admission owner in current JSONL scanning before recoverable-tail suppression, so malformed rows cannot hide retired required PTC tags or header.system. The new corruption-prefix regressions and all173 existing JSONL scanner tests pass. Combined migration/catalog/persistence suite:300 tests; executable V3 migration source has100% coverage. No released generation, prior migration implementation, shared release branch, benchmark or CI workflow is modified by this integration.
2026-09-06 21:33:35 +08:00
Tianyi Cui 77b6b10c21 fix(ui-chat): preserve prompt cards on resumed requests
A resume header starts a visible request series even when the system node text is unchanged. Include resume in the request-prompt visibility predicate so full history and an older-page prepend retain the restart card. Keep startsSeries handling and existing regression assertions unchanged; align the local JSDoc and README pair.
2026-09-06 20:42:43 +08:00
Tianyi Cui ee956c720d refactor(session): represent the system prompt as surface node zero
Consolidate the representation-change PR and its rebase reconciliations into one baseline. Preserve the exact tree and keep the in-history feature in the dependent PR. Follow-up fixes remain separate.
2026-09-06 20:42:43 +08:00
Tianyi Cui bad4254d71 Rename durable PTC vocabulary with identity-preserving v2 migration 2026-09-06 14:53:16 +08:00
imccyu 84c11c7243 perf(client): avoid replaying settled assistant streams 2026-09-06 02:05:52 +08:00
Dudu-0223 493072641d Merge remote-tracking branch 'origin/master' into fix/fork-resume-system-prompt
# Conflicts:
#	packages/client/ui-chat/src/client/conversation-nodes/chat-snapshot-builder.ts
2026-09-04 16:39:08 +08:00
Dudu-0223 f0ab6a6054 fix(ui-chat): retain skill names on message upserts 2026-09-04 16:31:34 +08:00
Yichen Jiang 9c13703708 Merge pull request #3556 from deepseek-harness/fix/web-skill-chip-rebuilt-message
fix(web): keep skill chips on rebuilt message nodes
2026-09-04 16:16:08 +08:00
Dudu-0223 f9359b5863 Merge branch 'master' into fix/fork-resume-system-prompt 2026-09-04 16:14:09 +08:00
Yichen Jiang 75d3402b84 fix(web): keep skill chips on rebuilt message nodes 2026-09-04 15:59:33 +08:00
creatixchu e28b58f8c0 Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
# Conflicts:
#	packages/client/ui-chat/src/client/chat/MessageItem.tsx
2026-09-04 15:41:57 +08:00
Yichen Jiang 1b470211ad fix(web): address review: index skill-name batches, bound slash tokens at whitespace, chip only the leading goal token 2026-09-04 15:15:51 +08:00
Yichen Jiang d0da8ccf40 fix(web): decorate slash tokens in bubbles from logged skill and command facts 2026-09-04 14:38:30 +08:00
Dudu-0223 8ea0cc0445 Merge remote-tracking branch 'origin/master' into fix/fork-resume-system-prompt
# Conflicts:
#	apps/web/tests/message-actions.e2e.ts
2026-09-04 12:08:54 +08:00
creatixchu fb743759a7 Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
# Conflicts:
#	apps/web/tests/scaffold.ts
#	docs/config-catalog.i18n.yaml
#	docs/config-catalog.md
#	docs/config-catalog.zh.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	packages/llm/token-meter/src/index.ts
#	packages/session-query/session-log-export/README.i18n.yaml
#	packages/session-query/session-log-export/README.md
#	packages/session-query/session-log-export/README.zh.md
#	packages/session-query/session-log-export/src/archive.ts
#	scripts/package-dependency-policy.ts
2026-09-04 10:12:19 +08:00