Commit Graph

6044 Commits

Author SHA1 Message Date
Chinesezjc
540cb59585 Merge branch 'master' into feat/web-terminal-card 2026-07-28 14:58:28 +08:00
Chinesezjc
5081697aaf feat(web): render bash tool output as a terminal card
The bash tool already declares the `card: 'terminal'` render intent for
both its call and its result, and host/connection/runtime already deliver
it to the browser as callView/resultView. The Web client ignored it:
rows derived from raw args, and the details panel flattened every tool's
content into one soft-wrapping `<pre>`. Column-aligned output folded into
a paragraph and a long listing stretched the panel without bound.

`TerminalBlock` (ui-primitives) renders a command as a terminal surface:
a shortened-cwd prompt line, output at `white-space: pre` in a
horizontally scrolling box, a head/tail height cap with an expand
control, an exit-code/signal status pill, and a copy control for the raw
output. ANSI SGR runs are parsed with `anser` and resolved onto `--dsw-*`
theme tokens, with literal rgb kept for values the design system has no
token for. Geometry and fonts mirror CodeBlock; the clipboard write both
need moved into a package-internal `clipboard.ts`.

Both Web render sites for a bash call consume the intent through one
derivation (`terminal-card-model.ts`), so they cannot disagree about a
command, its cwd, or its exit status: the keyed BashRow carries the card
resident below its summary row, and the render-site fallback row keeps it
behind its existing expand control. Rows cap at 8 lines against the
panel's 16.

Inline output in the chat row reverses this package's stated
no-inline-output convention, on the owner's explicit decision; the Agent
Note records the reversal and its bound.

Tests: TerminalBlock/ansi/clipboard unit specs, ui-conversation wiring
specs at every render site, a built-client-graph snapshot covering both
chat-row shapes, and a real-browser e2e asserting the no-wrap layout and
the page's own Clipboard API.
2026-07-28 14:58:06 +08:00
imccyu
dad7d0b6d4 Merge pull request #793 from deepseek-harness/worktree-newchat
fix(client): close the three reactive-subscription gaps in the React layer
2026-07-28 14:56:32 +08:00
imccyu
095e3944ae docs(client): state the reactive-read rules positively 2026-07-28 14:52:04 +08:00
imccyu
968f2a22a6 Merge remote-tracking branch 'origin/worktree-newchat' into worktree-newchat 2026-07-28 14:49:56 +08:00
imccyu
059ba4e0d1 docs(client): add the reactive-read and contract-currency discipline 2026-07-28 14:48:46 +08:00
imccyu
9f7a1f749d Merge branch 'master' into worktree-newchat 2026-07-28 14:37:46 +08:00
imccyu
2665e55e5d docs(runtime): align the zh README resolution sentence with the privatized resolvers 2026-07-28 14:36:16 +08:00
imccyu
d833be412a fix(client): contain notification-callback failures and document the source lifecycle
Review follow-ups: the three new notify loops (currentProvideInfo
subscribers, ui-skill lexicon listeners, late-registration controller
setup) now contain per-callback failures so one faulty consumer cannot
starve the rest, abort the list projection pass, or poison the source
roster with no disposer; controller lexicon polling drops a throwing
source with a console record like the candidate path. The ui-slash
README (both languages) now states the late-registration warm and the
subscribeLexicon contract, and the scenario suite drives a typed /name
token gaining its decoration when the roll settles with no further
input.
2026-07-28 14:33:37 +08:00
imccyu
f331f248d8 fix: static 2026-07-28 14:16:14 +08:00
imccyu
2b74db670e refactor(client): rename the provide reprojection to updateCurrentProvideInfo and privatize the id resolvers
provideInfo(id)/maybeProvideInfo(id) lost their last external caller
when the renderer host switched to the currentProvideInfo observable;
both become private (tests assert through the public projection). The
reprojection method's name now says what it does — re-derive and
publish on change — and matches the field family it maintains.
2026-07-28 14:06:08 +08:00
Tianyi Cui
4c6fb8b957 Merge pull request #794 from deepseek-harness/dependabot/github_actions/actions/upload-artifact-7
chore(deps): bump actions/upload-artifact from 6 to 7
2026-07-28 12:40:15 +08:00
Tianyi Cui
f89fe5c259 Merge branch 'master' into dependabot/github_actions/actions/upload-artifact-7 2026-07-28 12:35:34 +08:00
Tianyi Cui
4ea537210b Merge pull request #777 from deepseek-harness/dependabot/npm_and_yarn/native/landlock-run/types/node-26.0.1
chore(deps-dev): bump @types/node from 24.13.2 to 26.0.1 in /native/landlock-run
2026-07-28 12:27:39 +08:00
Tianyi Cui
18653c029d Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/types/node-26.0.1 2026-07-28 12:23:28 +08:00
Tianyi Cui
589e421220 Merge pull request #776 from deepseek-harness/dependabot/npm_and_yarn/native/landlock-run/typescript-6.0.3
chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /native/landlock-run
2026-07-28 12:15:39 +08:00
dependabot[bot]
305f185ede chore(deps): bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-28 04:13:32 +00:00
Tianyi Cui
5f6ba69e2b Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/typescript-6.0.3 2026-07-28 12:11:50 +08:00
Tianyi Cui
10d8fc1dce Merge pull request #775 from deepseek-harness/dependabot/github_actions/actions/deploy-pages-5
chore(deps): bump actions/deploy-pages from 4 to 5
2026-07-28 12:11:27 +08:00
imccyu
b5168bbf86 feat(ui-slots): bind inject hooks compartments into use<Name> selector hooks
Registrant-private reactive facts previously reached components as raw
observables that each component subscribed by hand (InputBar notices/
lexicon via uSES, SettingsRoot via a version/subscribe/getter triple).
The inject face now carries a reserved hooks compartment of bare
sources; the renderer binds each into a use<Name> selector hook through
the same machinery as the provide channel, so components consume
useNotices/useLexicon/useSections and never see a subscription
primitive. InputBar and SettingsRoot are the first two consumers.
2026-07-28 12:09:48 +08:00
imccyu
b7f3cd3d78 refactor(client): rename currentProvide to currentProvideInfo 2026-07-28 12:09:48 +08:00
imccyu
71529aa7d2 refactor(client): rename the host provide source to provideInfo 2026-07-28 12:09:48 +08:00
imccyu
bce9910b47 docs: regenerate cordis catalog line anchors 2026-07-28 12:09:48 +08:00
imccyu
d3d01cb49c fix(ui-slash): make the reference lexicon reactive end to end
The decoration scan read a mutable lexicon() aggregation during render
with no subscription, so a catalog settling or a child spawning after
prewarm left drafted tokens undecorated until an unrelated re-render.
The controller now publishes the aggregation as a snapshot store fed by
a new optional SlashSource.subscribeLexicon hook (ui-skill notifies on
settle/invalidate, ui-subagent forwards the session-list feed), the
composer keyboard face exposes it as an observable, and InputBar
subscribes through uSES. Sources registered after scope birth now warm
and join live controllers via a service broadcast.
2026-07-28 12:09:48 +08:00
imccyu
eae712409b fix(ui-settings): subscribe to the section ledger through useSyncExternalStore
The manual useState+useEffect subscription could miss a registration
landing between render and effect commit; uSES closes that window and
keeps the same version-dedupe behavior.
2026-07-28 12:09:48 +08:00
imccyu
a0b618abb9 fix(client): publish current session provide bundle as one reactive projection
A provider roster change under a stable current id rematerialized every
scope's bundle but nothing notified React: SessionProvider resolved the
bundle from a current-id subscription only, so mounted entries kept the
obsolete hook/prop schema until an unrelated re-render. The sessions
service now owns an atomic currentProvide observable fed by both current
writes and roster changes; the renderer host exposes it as
sessions.provide, replacing the current/provideInfo/maybeProvideInfo
trio, and both providers subscribe to it.
2026-07-28 12:09:48 +08:00
imccyu
c4df0628db docs(notes): record reactive provide projection and lexicon subscription decisions 2026-07-28 12:09:48 +08:00
Tianyi Cui
fb3b35d70b Merge branch 'master' into dependabot/github_actions/actions/deploy-pages-5 2026-07-28 12:06:30 +08:00
Tianyi Cui
1ffaeedd3b Merge pull request #770 from deepseek-harness/dependabot/github_actions/actions/configure-pages-6
chore(deps): bump actions/configure-pages from 5 to 6
2026-07-28 12:01:42 +08:00
Tianyi Cui
b27a542149 Merge branch 'master' into dependabot/github_actions/actions/configure-pages-6 2026-07-28 11:56:00 +08:00
imccyu
fe26d793c5 Merge pull request #746 from deepseek-harness/fix/todo-tool-ui
refactor(todos): update TodoRow styling and logic, add IconChecklistOutline16, and enhance AssistantMarkdown rendering
2026-07-28 11:35:36 +08:00
imccyu
8f13e09f31 Merge branch 'master' into fix/todo-tool-ui 2026-07-28 11:32:07 +08:00
07akioni
99d631d41a fix: ci 2026-07-28 11:21:45 +08:00
Yichen Jiang
2a46685414 Merge pull request #797 from deepseek-harness/worktree/tui-session-title-search
fix(tui): search session references by title
2026-07-28 11:17:15 +08:00
Yichen Jiang
2e6abdf8a7 Merge remote-tracking branch 'origin/master' into worktree/tui-session-title-search 2026-07-28 11:12:56 +08:00
Yichen Jiang
968e4d5312 Merge remote-tracking branch 'origin/master' into worktree/tui-session-title-search
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-21-cross-session-references.md
#	.agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md
#	packages/context/session-reference/README.i18n.yaml
#	packages/context/session-reference/README.md
#	packages/context/session-reference/README.zh.md
#	packages/context/session-reference/src/index.ts
2026-07-28 11:11:57 +08:00
Tianyi Cui
bbeaa9fb2e Merge pull request #790 from deepseek-harness/worktree/sdk-public-api
fix(sdk): narrow TypeScript client interface
2026-07-28 11:09:59 +08:00
Tianyi Cui
cee7462994 Merge remote-tracking branch 'origin/master' into worktree/sdk-public-api 2026-07-28 11:06:00 +08:00
Yichen Jiang
a43a2032ec fix(tui): search session references by title 2026-07-28 11:05:53 +08:00
Tianyi Cui
3f97b88ff9 Merge pull request #787 from deepseek-harness/worktree/change-scope-trim-20260728
refactor(dev-infra): narrow change-scope contract
2026-07-28 11:03:13 +08:00
Tianyi Cui
4bba60f726 Merge remote-tracking branch 'origin/master' into worktree/sdk-public-api 2026-07-28 11:03:06 +08:00
07akioni
fb9495b21e Merge branch 'master' into fix/todo-tool-ui 2026-07-28 10:59:05 +08:00
Tianyi Cui
e98c180062 Merge branch 'master' into worktree/change-scope-trim-20260728 2026-07-28 10:59:00 +08:00
Tianyi Cui
b7abd1bb8b Merge branch 'master' into dependabot/github_actions/actions/configure-pages-6 2026-07-28 10:58:36 +08:00
Tianyi Cui
7efd0a1192 Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/types/node-26.0.1 2026-07-28 03:03:00 +08:00
Tianyi Cui
283fcd6605 Merge branch 'master' into dependabot/npm_and_yarn/native/landlock-run/typescript-6.0.3 2026-07-28 02:58:20 +08:00
Tianyi Cui
c4c142c855 Merge branch 'master' into dependabot/github_actions/actions/deploy-pages-5 2026-07-28 02:51:31 +08:00
Tianyi Cui
c49c0ba497 Merge pull request #773 from deepseek-harness/dependabot/uv/python/sdk/hatchling-gte-1.30.1
chore(deps-dev): update hatchling requirement from >=1.24.0 to >=1.30.1 in /python/sdk
2026-07-28 02:47:37 +08:00
dependabot[bot]
b2b063b667 chore(deps): bump actions/deploy-pages from 4 to 5
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-27 18:43:26 +00:00
Tianyi Cui
9803b1c62c Merge branch 'master' into dependabot/uv/python/sdk/hatchling-gte-1.30.1 2026-07-28 02:41:56 +08:00