Commit Graph

1578 Commits

Author SHA1 Message Date
07akioni
fff09b2a41 Merge branch 'master' into feat/toolcall-open
Keep openFile path links (no tool-row sidebar handoff) while taking master's
cwd-relative summaries, running sweep, and expandable chevron polish.
2026-07-28 15:55:22 +08:00
_Kerman
1d4d6f881c Merge branch 'master' into xtr/identified-immutable-messages 2026-07-28 15:52:16 +08:00
_Kerman
019b0abb68 Merge remote-tracking branch 'origin/master' into xtr/identified-immutable-messages
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/core.i18n.yaml
#	docs/core-data-structures/session.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/persistence-catalog.md
#	packages/core/session/README.i18n.yaml
#	packages/session-title/session-title/tests/persistence.spec.ts
2026-07-28 15:45:53 +08:00
Tianyi Cui
d70cb63833 Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:41:26 +08:00
Tianyi Cui
108374772f Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:36:20 +08:00
Tianyi Cui
2a5137f0e9 Merge branch 'master' into worktree/sandbox-master-only-20260728 2026-07-28 15:35:36 +08:00
Tianyi Cui
09a65125ba Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:34:30 +08:00
_Kerman
102ebb8772 Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:33:34 +08:00
Tianyi Cui
cbbd888cab simplify gate graph validation 2026-07-28 15:33:20 +08:00
_Kerman
b1af35145b fix: enforce message snapshot invariants 2026-07-28 15:33:00 +08:00
_Kerman
0cd28959e8 Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:32:42 +08:00
Tianyi Cui
0a09924c00 Merge remote-tracking branch 'origin/master' into worktree/sandbox-master-only-20260728 2026-07-28 15:28:53 +08:00
imccyu
0bc9fa9546 Merge branch 'master' into fix/web-ui-optimization 2026-07-28 15:26:38 +08:00
Tianyi Cui
f85736e814 ci: run sandbox matrix on master only 2026-07-28 15:26:00 +08:00
_Kerman
833a58784f docs(session): refresh invariant metadata 2026-07-28 15:22:16 +08:00
_Kerman
f074444cf0 Merge remote-tracking branch 'origin/master' into xtr/remove-append-out-of-band 2026-07-28 15:19:00 +08:00
_Kerman
a39ffb095a fix(session): preserve plugin turn invariants 2026-07-28 15:18:48 +08:00
imccyu
ee9627f232 Merge remote-tracking branch 'origin/master' into fix/web-ui-optimization 2026-07-28 15:06:17 +08:00
Chinesezjc
fb5c4ef4e3 Merge remote-tracking branch 'origin/master' into feat/scrollbar-tokens 2026-07-28 15:02:38 +08:00
Chinesezjc
c3e9690b2e fix(ui-theme): gate the standard scrollbar properties behind the missing WebKit pseudo-element
A non-`auto` `scrollbar-width` or `scrollbar-color` makes Chromium and Safari
discard every `::-webkit-scrollbar*` rule for that element, including
`::-webkit-scrollbar-thumb:hover`. Declaring both unconditionally left the
hover tokens rendering nowhere: the engines implementing the hover
pseudo-element are exactly the ones the standard properties silence, and
Firefox has no hover pseudo-element to fall back on. Both hover tokens and all
four elevated surfaces' hover rebinds were therefore dead code.

Measured in chromium on probe elements with `scrollbar-gutter: stable`: an 8px
`::-webkit-scrollbar` alone reserved a 30px band, and adding
`scrollbar-width: thin` dropped it to the 10px `thin` reserves.

The standard properties now sit inside `@supports not
selector(::-webkit-scrollbar)`, so Firefox takes them and WebKit-based engines
take the pseudo-elements. The WebKit rules stay ungated: an engine without
those pseudo-elements drops them as unknown selectors, and gating them would
hide them from an engine that implements them without `selector()` — the
pre-16.4 Safari the ungated form serves correctly.

Three unit assertions pin the split by source offset, which the existing
at-rule-flattening parser cannot see. The web e2e now reads the path chromium
actually takes: the `auto` standard properties as the gate's signature, the
pseudo-element sizing and track, the indirection variables resolved per
throwaway probe, and the hover declaration as cascade rule text — chromium
folds the `:hover` rule into `getComputedStyle(el,
'::-webkit-scrollbar-thumb')`, so no computed query separates the states.
2026-07-28 15:02:20 +08:00
_Kerman
0a3d38bb08 Merge remote-tracking branch 'origin/master' into xtr/identified-immutable-messages
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-28 14:59:40 +08:00
Tianyi Cui
6a763e4b3c Merge branch 'master' into worktree/ci-flake-followup-20260728 2026-07-28 14:58:47 +08:00
Tianyi Cui
eeaf4c7220 fix(ci): stabilize readiness timing boundaries 2026-07-28 14:49:59 +08:00
_Kerman
cee0666a4d refactor(session): remove synthetic log-only turns 2026-07-28 14:41:51 +08:00
07akioni
b926044c13 feat: click file name to open file in toolcall, remove hover bg of toolcall, do not trigger sidebar any more (follow designer's instruction) 2026-07-28 14:24:41 +08:00
_Kerman
f5ec71f5b1 Merge remote-tracking branch 'origin/master' into xtr/identified-immutable-messages
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml
#	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 13:58:06 +08:00
_Kerman
fbf87e660c refactor: identify and freeze messages at creation 2026-07-28 13:55:59 +08:00
Chinesezjc
a6b0cd6f8d Merge remote-tracking branch 'origin/master' into feat/scrollbar-tokens 2026-07-28 13:43:11 +08:00
Yif
3134f2d430 doc: agent note for the web conversation polish sweep 2026-07-28 12:36:29 +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
c4df0628db docs(notes): record reactive provide projection and lexicon subscription decisions 2026-07-28 12:09:48 +08:00
Chinesezjc
474b88e362 docs: record the plugin-bundle rebuild trap in the scrollbar note
Verifying browser-visible plugin CSS needs a rebuild build:web does not
perform: WorkspaceBrowser.module.css never reaches apps/web/dist, because
ui-workspace loads as a runtime plugin with its CSS inlined into
lib/client.js by that package's own bundle script. A negative control that
reruns only build:web exercises a stale bundle and passes with the
declaration removed, which reads as a vacuous test rather than an invalid
control. No script in the web lane does this rebuild, so every scroll-region
or plugin-CSS change hits the same trap.
2026-07-28 12:09:18 +08:00
imccyu
91045a467b Merge branch 'master' into worktree-guifork 2026-07-28 11:50:56 +08:00
kingwl
bc3e776225 Merge remote-tracking branch 'origin/master' into feature/subagent-policy-inheritance
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml
#	docs/cordis-catalog/services.md
#	docs/persistence-catalog.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/core/session/README.i18n.yaml
#	packages/subagent/subagent-inprocess/README.i18n.yaml
#	packages/ui/user-approval/src/index.ts
2026-07-28 11:19:46 +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
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
Chinesezjc
662089dd76 fix(client): theme the scrollbars and reserve the workspace list gutter
design-platform.css declared four --dsw-alias-scrollbar-* tokens in both
palettes that no rule read, so every scrolling region rendered the user
agent's own scrollbar and the dark theme showed a light native bar against
dark surfaces.

The symptom that surfaced the gap was in the sidebar: the workspace
browser's session list is its only scrolling region, and each row's
trailing content (the relative timestamp, and the hover action buttons
that replace it) is `flex: none` flush against the row's 8px right
padding, so an overlaid scrollbar painted on top of the timestamp.

ui-theme/styles/scrollbar.css becomes the sole consumer of the four
tokens, imported by the web shell's base.css after design-platform.css
because it reads that sheet's tokens. The rules sit on `body`, not
`html`: the alias tokens are declared on `body`, custom properties
inherit only downward, and from `html` they resolve to the
guaranteed-invalid value with scrollbar-color computing to `auto`.
scrollbar-width and scrollbar-color are declared on `body, body *` rather
than inherited, because inheritance would carry the color already
substituted at `body` and an elevated surface could not retint its own
thumb; scrollbar-width does not inherit at all.

Both the standard properties and the ::-webkit-scrollbar pseudo-elements
read one indirection pair bound to the l1 tokens, so an elevated surface
rebinds that pair to the l2 tokens once and retints both renderings. The
command popup, slash menu, model-select panel, and settings panel do so,
which gives the l2 tokens their first consumers.

WorkspaceBrowser's `.list` declares scrollbar-gutter: stable, keeping the
bar beside the rows. `stable` rather than `auto` so the reservation holds
when the list is short enough not to scroll: expanding a workspace group
would otherwise shift every row sideways at the moment it starts
scrolling.
2026-07-28 11:02:11 +08:00
Tianyi Cui
e98c180062 Merge branch 'master' into worktree/change-scope-trim-20260728 2026-07-28 10:59:00 +08:00
imccyu
a3bdec4450 Merge remote-tracking branch 'origin/master' into worktree-guifork 2026-07-28 10:23:48 +08:00
Tianyi Cui
629f1c638b Merge branch 'master' into worktree/sdk-public-api 2026-07-28 02:11:10 +08:00
Tianyi Cui
3b5be72086 fix(sdk): narrow TypeScript client interface 2026-07-28 01:41:32 +08:00
Tianyi Cui
1a623946b9 Merge current master with codex/fix-acp-snapshot-refresh-volatiles 2026-07-28 01:36:32 +08:00
Tianyi Cui
a1401349d8 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:26:55 +08:00
Tianyi Cui
f6a850b107 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:21:25 +08:00
Tianyi Cui
9ebd0075e9 Merge master into fix/pty-handoff-grace 2026-07-28 01:19:58 +08:00
imccyu
4d7b30ab72 docs: bilingual counterparts for the projection READMEs; review-driven RFC precision
New zh pairs for the session-projection group and package READMEs (both
gained their missing language-switcher lines); the packages/README rows,
apiproxy README, and tool-todo README zh sides catch up with their edited
English; the group README's stale ProjectionProvider name becomes
ProjectionDefinition. RFC precision from review: asOfSeq is the last
event's seq (session.seq - 1, -1 empty; subscribed.lastSeq vocabulary) and
a new risk names the accepted dev-only staleness window when registry
churn changes the key set mid-session. Pairing re-recorded; 540 pairs
consistent.
2026-07-28 01:19:30 +08:00
Tianyi Cui
2b539346c8 Merge remote-tracking branch 'origin/master' into worktree/change-scope-trim-20260728 2026-07-28 01:12:16 +08:00
Chinesezjc
d0be242138 Merge branch 'master' into fix/worker-timer-clamp 2026-07-28 01:12:16 +08:00