Commit Graph
137 Commits
Author SHA1 Message Date
creatixchu e6293785bc Merge remote-tracking branch 'origin/master' into worktree/context-source-cards
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/skill/tool-skill/README.i18n.yaml
2026-08-05 14:11:29 +08:00
creatixchu 340c9ba576 feat(web): split context injection into producer-declared forms
Injected context reached the transcript as one anonymous shape whose
expanded body was the whole message serialized as inline JSON, so the
escaping collapsed the only readable part — the model-facing prose —
into a single line.

`MessageSource` gains an optional producer-declared `form`, a small
semantic vocabulary of information shapes independent of `kind`: kind
says who produced the context, form says what shape it is, so several
producers may share one presentation. Two values ship.

`instructions` (workspace-context) lists the reconciled files above
their text and keeps the `<system-reminder>` framing verbatim, because
the framing is part of what the model read. `catalog` moves dsh-tool-skill
off the shared plugin kind onto a `skill-catalog` source carrying the
published name/description entries, and the body lists those instead of
re-parsing `<available_skills>` out of the prose. Catalog identity moves
with it: the republish digest now covers the durable entries, deleting
the text-slicing that recovered them from a logged message.

Everything else renders the opaque body — the model-facing text with its
real line breaks, then the remaining provenance as fields. That is the
documented default, not a leftover: a resumed, forked, or foreign log
must render whether or not its producer is mounted here, which is why
the classification lives in the durable source rather than a client-side
table keyed by producer.
2026-08-05 12:15:03 +08:00
creatixchu e5d4ae72fc Merge remote-tracking branch 'origin/master' into worktree/context-source-cards 2026-08-05 11:26:51 +08:00
xjt 7bd111b2af Merge origin/master into xjt/proofreading-active-docs-2-apply 2026-08-05 10:57:53 +08:00
imccyu ca27512529 fix(packages): omit source publication payloads 2026-08-05 01:15:19 +08:00
creatixchu de96087923 feat(web): name context sources and mark steering in the transcript
Every logged non-user user/message collapsed into one identical
「上下文注入」 row, and mid-turn steering rendered in exactly the bubble a
turn-opening prompt uses, so the transcript could not say what had been
added or which message interrupted a running turn.

TranscriptAdapter and the history fold now attach a provenance view to
each context node, computed by contextProvenance() from the durable
source alone: a role (inject, or recall for a cross-session snapshot)
and a producer name read out of the log — instruction paths for
workspace-instructions, session titles for session-reference, the plugin
id for a plugin source, and the bare kind for any other. No client-side
table of producer names, so a renamed or newly mounted producer stays
identifiable without a client release and a foreign log projects like a
live one. ContextInjectionRow titles itself from the role and shows the
name beside it; MessageItem captions durable and pending steering
bubbles.

The caption reverses one clause of the no-interjection-chrome decision,
which removed it because the composer could not steer; composer steering
shipped afterwards without amending that note, so this change supplies
the product decision its reintroduction clause required and corrects the
stale facts left in it.

Fixes #1291
2026-08-04 17:44:18 +08:00
xjt 2db712eec7 docs(i18n): proofread active Chinese documentation 2026-08-04 17:36:14 +08:00
imccyu 6c6d933732 fix(client): load plugin bundles as external scripts 2026-08-04 14:18:47 +08:00
_Kerman b5f9fcdea4 fix(ui-trajectory): clarify assistant request timing 2026-08-03 16:24:26 +08:00
_Kerman 9c261516ce fix(ui-trajectory): preserve thinking label 2026-08-03 16:22:03 +08:00
_Kerman c2b0cc7b51 fix(ui-trajectory): clarify collapsed thinking controls 2026-08-03 16:19:41 +08:00
_Kerman 0e05bb81a3 fix(ui-trajectory): offset recovered request boundaries 2026-08-03 15:31:36 +08:00
_Kerman ad6858b6d3 fix(ui-trajectory): limit role tooltips to compact icons 2026-08-03 15:02:05 +08:00
_Kerman a533cb6ce4 fix(ui-trajectory): distinguish overlapping request markers 2026-08-03 15:01:35 +08:00
_Kerman 5b17413108 docs(ui-trajectory): record composer overlay contract 2026-08-03 14:02:54 +08:00
_Kerman 5534431d42 fix(ui-trajectory): own composer overlay geometry 2026-08-03 14:02:40 +08:00
Yif 062a1507f1 feat(ui-trajectory): float the composer over the ledger like chat
The trajectory host kept the composer as a fixed flex sibling, so the
ledger never reached the viewport bottom. Anchor the composer seat
absolutely over the ledger (reusing chat's fade treatment) and have the
internal scroll panes reserve the composer's live height plus a 16px gap
so end rows and detail bodies scroll clear of the overlay.

(cherry picked from commit 0058a1f4b6e8c2e23bfde7c827a84838cc5ebffc)
2026-08-03 13:55:33 +08:00
_Kerman 44304a458c fix(ui-trajectory): separate consecutive request markers 2026-08-03 13:53:50 +08:00
_Kerman 68e79ed983 docs(ui-trajectory): record timeline interaction contract 2026-08-03 13:48:11 +08:00
_Kerman 74cd2e4bd9 feat(ui-trajectory): enrich timeline timing interactions 2026-08-03 13:48:03 +08:00
_Kerman c8ece8325c fix(ui-trajectory): follow live ledger tail 2026-08-03 13:47:55 +08:00
_Kerman a8478fc031 fix(ui-trajectory): animate responsive ledger layout 2026-08-03 13:47:51 +08:00
imccyu 5d56019d22 feat: revert crumbs navigation for subagents 2026-08-02 12:51:11 +08:00
Dudu-0223 a27492507d feat(web): add subagent conversation transport 2026-08-02 12:51:09 +08:00
kingwl 07b0efc49e fix(web): hide session lineage in header 2026-07-31 21:08:57 +08:00
_Kerman dd98d15b1d Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish
# Conflicts:
#	packages/client/ui-trajectory/src/client/timeline.ts
#	packages/client/ui-trajectory/tests/views.spec.tsx
2026-07-31 20:01:16 +08:00
_Kerman 094f1976c4 fix(trajectory): lighten summary section headings 2026-07-31 19:53:55 +08:00
Tianyi Cui e371311203 Merge latest Web transcript parent into manual compaction
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/client/runtime/README.i18n.yaml
2026-07-31 14:39:20 +08:00
Tianyi Cui 5c394b1743 Merge latest master into web transcript projection
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
2026-07-31 14:31:14 +08:00
_Kerman e11f858357 Merge remote-tracking branch 'github/xtr/trajectory-timeline-polish' into xtr/trajectory-timeline-polish 2026-07-31 14:10:04 +08:00
_Kerman d9d1c3e079 fix(trajectory): use runtime preference persistence 2026-07-31 14:09:56 +08:00
imccyu 9ed87a6dba refactor(client): archivedSessionIds public face becomes a plain array
Public snapshot state stays in the store engine's plain-data vocabulary
(immer drafts reject Sets without the MapSet plugin, which stays off):
manager/service/contract carry readonly SessionId[] in Host order, and
the tree derivations build their own transient Set — the
expandedProjects pattern. Membership-unchanged installs still keep the
array reference for Object.is short-circuits.
2026-07-31 14:08:13 +08:00
imccyu c764ed7e64 feat(client-runtime): project the archive set and the archiveSession action
WorkspaceListState gains archivedSessionIds (ReadonlySet, replaced only
on membership change), installed as full snapshots from the list
baseline, the unary echo, and the changed frame. Archiving the current
session clears the selection into the New Session view state. Test
doubles (test-runtime, fake APIs, fixture client) follow the widened
IWorkspaces/IApiClient faces.
2026-07-31 14:08:13 +08:00
Tianyi Cui 98f48fd83a Merge finalized Web transcript parent
# Conflicts:
#	apps/cli/README.i18n.yaml
#	packages/client/runtime/README.i18n.yaml
#	packages/client/ui-trajectory/README.i18n.yaml
#	packages/client/ui-trajectory/README.zh.md
2026-07-31 13:42:47 +08:00
Tianyi Cui bb3d6a0de8 Merge latest master into Web transcript
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/src/client/index.ts
#	packages/client/runtime/src/client/sessions/conversation.ts
#	packages/client/runtime/src/client/sessions/session.ts
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/chat/MessageItem.module.css
#	packages/client/ui-conversation/src/client/chat/MessageItem.tsx
#	packages/client/ui-conversation/src/client/chat/chat-flow.ts
#	packages/client/ui-conversation/tests/chat-branch-tails.spec.tsx
2026-07-31 13:12:37 +08:00
_Kerman 4eff494a6c Merge branch 'master' into xtr/trajectory-timeline-polish 2026-07-31 12:50:30 +08:00
Yichen Jiang 2e07da19e5 Merge remote-tracking branch 'origin/master' into worktree/web-model-request-retry
# Conflicts:
#	apps/cli/README.i18n.yaml
#	apps/cli/README.md
#	apps/cli/README.zh.md
#	packages/client/runtime/README.i18n.yaml
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 11:39:58 +08:00
Tianyi Cui ef722cc14a Merge latest master into Web transcript 2026-07-31 11:39:49 +08:00
_Kerman 4b8316dcd5 fix(trajectory): keep fold controls available 2026-07-31 11:39:37 +08:00
_Kerman 72eb82858a fix(trajectory): refine timeline drag and tooltips 2026-07-31 11:38:49 +08:00
_Kerman 5255eb6982 fix(trajectory): contain timeline wheel zoom 2026-07-31 11:28:01 +08:00
_Kerman db00677fd2 Merge remote-tracking branch 'github/master' into xtr/trajectory-timeline-polish 2026-07-31 11:12:51 +08:00
_Kerman 4624c476de fix(trajectory): persist idle-compressed duration mode 2026-07-31 11:12:43 +08:00
_Kerman 668ba2bfe2 fix(trajectory): stabilize timeline pane layering 2026-07-31 11:12:34 +08:00
Turtle 1332360d53 Merge pull request #1013 from deepseek-harness/fix/node26-vitest-webstorage
fix(test): isolate jsdom storage on Node 26
2026-07-31 10:31:59 +08:00
Yichen Jiang 11fde7bc1a Merge remote-tracking branch 'origin/master' into worktree/web-model-request-retry
# Conflicts:
#	packages/client/ui-conversation/tests/chat-view.spec.tsx
2026-07-31 10:26:23 +08:00
Turtle aa39d6c6ed Merge remote-tracking branch 'origin/master' into fix/node26-vitest-webstorage
# Conflicts:
#	scripts/run-gates.spec.ts
#	vitest.config.ts
2026-07-31 10:26:05 +08:00
Yichen Jiang d3c6638b6d Merge remote-tracking branch 'origin/master' into worktree/web-model-request-retry
# Conflicts:
#	apps/cli/README.i18n.yaml
#	packages/client/runtime/README.i18n.yaml
#	packages/client/runtime/README.md
#	packages/client/runtime/README.zh.md
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/chat/ChatView.tsx
#	packages/client/ui-conversation/src/client/chat/MessageItem.tsx
#	packages/client/ui-conversation/tests/chat-view.spec.tsx
2026-07-31 10:19:14 +08:00
Hypatia May 01e64c6350 Merge finalized Web transcript parent 2026-07-31 09:46:32 +08:00
Hypatia May 074f0e4393 Merge pinned master into Web transcript 2026-07-31 09:18:45 +08:00