Commit Graph

7184 Commits

Author SHA1 Message Date
Yichen Jiang
bdc6d95d56 fix(settings): close third-review watcher-lifecycle and write-boundary gaps
Review round three found four seam defects:

- A watch() disposer only removed the observer from the set; an invocation
  already chained onto the watcher tail still ran after disposal. Watchers
  now carry an active flag checked when a queued invocation would start,
  and the service dispose drain awaits started invocations (pendingTails)
  beside the write queues, so disposal is quiescent.
- The settings/updated manual fan-out caught only synchronous throws; an
  async listener rejection escaped as an unhandled rejection. Thenable
  returns are now contained through the shared listener diagnostic, and
  the event contract documents that the INVARIANT rethrow serves
  synchronous listeners only.
- structuredClone admitted Dates, Maps, BigInts, and cycles that YAML/JSON
  storage silently distorts on reload (a Date lands as a timestamp string,
  a Map as a plain map, a BigInt as a number). The write snapshot is now a
  single-pass cloneJsonShaped walk that rejects non-JSON values with their
  path before anything persists.
- mergeLayers' per-entry undefined guard became dead code once the clone
  strips undefined entries at the boundary; removed, with the sparse-patch
  contract restated at its enforcement point.
2026-07-30 13:29:52 +08:00
imccyu
1db976210f Merge pull request #928 from deepseek-harness/worktree/short-default-labels
fix(ui): shorten default reasoning labels
2026-07-30 13:22:05 +08:00
Yichen Jiang
b6bb24bfa1 docs: raise AGENTS.md and packages/README.md budget ceilings after the master merge
Both files fit their ceilings on each parent; the merge union of this
branch's settings rows with master's typert row and source-launch rewrite
overflows by 6 and 2 words. Every added row is a fixed-format layout or
package-table entry with nothing to relocate, so the ceilings move to the
union size.
2026-07-30 13:20:47 +08:00
imccyu
291fe1e823 test(web): refresh composer stats expected outputs 2026-07-30 13:15:57 +08:00
Yichen Jiang
c50aaea5e9 Merge remote-tracking branch 'origin/master' into worktree-config-settings-seam
# Conflicts:
#	docs/cordis-catalog/events.md
#	docs/core-data-structures/core.i18n.yaml
#	docs/event-producer-consumer.md
#	packages/README.i18n.yaml
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	scripts/doc-budgets.manifest.json
2026-07-30 13:13:59 +08:00
imccyu
4869e0bbfc Merge branch 'master' into worktree-fetest 2026-07-30 13:09:53 +08:00
imccyu
1b84126f70 Merge branch 'master' into worktree/short-default-labels 2026-07-30 13:08:34 +08:00
imccyu
c66cf04ebf Merge pull request #937 from deepseek-harness/fix/input-ui
Web composer stats detail row and input-zone polish
2026-07-30 13:08:25 +08:00
imccyu
20cac781a2 Merge branch 'master' into worktree-fetest 2026-07-30 12:56:54 +08:00
imccyu
432a64ef2f Merge branch 'master' into worktree/short-default-labels 2026-07-30 12:56:11 +08:00
imccyu
01324f9167 Merge branch 'master' into fix/input-ui 2026-07-30 12:55:57 +08:00
Ziya
818a504901 Merge pull request #831 from deepseek-harness/fix/workspace-instruction-frame-metadata
fix(workspace-context): escape instruction frame metadata
2026-07-30 00:35:48 -04:00
Tianyi Cui
cea5e868ff Merge remote-tracking branch 'origin/master' into worktree/retarget-pr831-20260729 2026-07-30 12:21:14 +08:00
imccyu
9cb9a3e767 Merge branch 'master' into worktree-fetest 2026-07-30 12:20:27 +08:00
imccyu
b44318b03d Merge branch 'master' into fix/input-ui 2026-07-30 12:20:01 +08:00
Tianyi Cui
e29a4d7083 Merge pull request #844 from deepseek-harness/codex/experimental-plugin-group-note
docs: add experimental and internal package group
2026-07-30 12:18:56 +08:00
Tianyi Cui
d37b192aa9 Merge branch 'master' into fix/workspace-instruction-frame-metadata 2026-07-30 12:16:41 +08:00
Tianyi Cui
3ecd4a569a test(skill-local): cover root unlink rewatch 2026-07-30 12:02:21 +08:00
Hypatia May
a00786362f refactor(session): drop the unused predicate helper and tighten the docs
`isInheritedSeq` had no production caller — only its own tests — so it was
a public core export shaped by nothing. A bracket owner reads the boundary
positionally; the helper belongs with the compaction seam, where a real
consumer decides its signature.

Also condense the `session/inherited` and `lastActivityTime` docs.
2026-07-30 12:01:45 +08:00
imccyu
9035b1b474 docs(testing): record browser gate timing 2026-07-30 12:01:31 +08:00
Turtle
5a490553bc Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
# Conflicts:
#	docs/event-producer-consumer.md
#	packages/host/apiproxy/README.i18n.yaml
#	tsconfig.base.json
2026-07-30 12:00:15 +08:00
imccyu
6e99027917 Merge remote-tracking branch 'origin/master' into mergebot/pr937
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/queue/QueueDock.module.css
2026-07-30 11:59:59 +08:00
Tianyi Cui
3f195f1dd1 Merge remote-tracking branch 'origin/master' into codex/experimental-plugin-group-note 2026-07-30 11:57:55 +08:00
imccyu
23fb779f7f test(web): refresh queue expected outputs 2026-07-30 11:57:00 +08:00
imccyu
876d1947fe test(web): pin queue replay locale 2026-07-30 11:56:54 +08:00
imccyu
b523a04af8 Merge remote-tracking branch 'origin/master' into worktree-fetest 2026-07-30 11:51:09 +08:00
imccyu
e80d7bce17 test(web): refresh message action expected outputs 2026-07-30 11:50:12 +08:00
imccyu
1642b8f7d2 Merge pull request #925 from deepseek-harness/codex/web-queue-actions
feat(agent): add addressable queue operations
2026-07-30 11:47:21 +08:00
Tianyi Cui
c0474d5289 Merge branch 'master' into codex/experimental-plugin-group-note 2026-07-30 11:46:04 +08:00
Tianyi Cui
ecb43469af Merge branch 'master' into fix/workspace-instruction-frame-metadata 2026-07-30 11:45:00 +08:00
imccyu
02a9d4113e Merge remote-tracking branch 'origin/master' into worktree-fetest 2026-07-30 11:40:34 +08:00
imccyu
2fa26cd140 test(web): refresh localized expected outputs 2026-07-30 11:39:40 +08:00
Hypatia May
b341155652 feat(session): project the inherited-history boundary into the log
A plugin owning a standalone open/close bracket cannot tell a dead marker
from a live one: an unmatched `compact/start` reads identically whether the
previous writer died mid-compaction or a compaction is running now.
`Session.firstLiveSeq` already holds that answer exactly, but only in memory.

Append the log-only `session/inherited` event at that seq from the seeded
constructor — the single waist all six seeded-start paths pass through
(resume, configured startup on a persisted id, `sessions.fork()`, a subagent
fork child, `adopt()`'s live prefix, and a bare seeded `create`). Read it
through the new `isInheritedSeq(events, seq)`.

The constructor placement means persistence needs no changes: the marker is
already in `events` when a backend captures the creation seed, so it rides
the ordinary seed path with no load-time write. It also covers fork, where
the inherited bracket's owner may still be running — the case a
persistence-layer boundary could not reach.

Activity ordering excludes the boundary through `lastActivityTime()`, since
lazy resume makes browsing a pickup and the three call sites would otherwise
float every opened session to the top of a picker or list.
2026-07-30 11:39:26 +08:00
imccyu
d9fa79a1e1 test(web): pin browser replay locale 2026-07-30 11:39:11 +08:00
kingwl
ad1bb84425 Merge remote-tracking branch 'origin/master' into codex/web-queue-actions
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-30 11:38:54 +08:00
Turtle
208944645c fix(cli): align shared config lifecycle docs 2026-07-30 11:34:46 +08:00
imccyu
6b93f85fac Merge pull request #924 from deepseek-harness/fix/ui-action-display
fix: chat agent message actions display
2026-07-30 11:31:41 +08:00
Turtle
9691c90b1c test(docs): refresh translation prompt snapshot 2026-07-30 11:21:01 +08:00
imccyu
a9813a2801 Merge branch 'master' into codex/web-queue-actions 2026-07-30 11:20:57 +08:00
imccyu
aae1b48535 Merge remote-tracking branch 'origin/master' into worktree-fetest 2026-07-30 11:17:03 +08:00
imccyu
6303b22487 ci: run web replay on master linux 2026-07-30 11:16:37 +08:00
07akioni
b92c6bcc66 Merge branch 'master' into fix/ui-action-display 2026-07-30 11:15:35 +08:00
Turtle
cd100a81f1 fix(cli): harden launcher lifecycle 2026-07-30 11:14:18 +08:00
imccyu
60620ec36c Green the jsdom lane for the composer-seat ResizeObserver and new StatsLine format
The seat's height publisher needs a ResizeObserver stub in every spec that
renders ConversationRoot (jsdom has none), and the two branch-tail StatsLine
assertions move to the grouped detail-row output.
2026-07-30 11:09:03 +08:00
Tianyi Cui
b9e240bbef Merge pull request #828 from deepseek-harness/fix/hook-matcher-validation
fix(hooks): reject invalid matcher regexes
2026-07-30 11:08:42 +08:00
Turtle
93748e5b47 fix(cli): preserve DSH home fallback in config 2026-07-30 11:00:59 +08:00
Turtle
f224bc347b test(cli): follow consolidated config tree 2026-07-30 10:59:56 +08:00
Tianyi Cui
c38a7c3a89 Merge branch 'master' into fix/hook-matcher-validation 2026-07-30 10:57:24 +08:00
imccyu
72c9d40ad9 ci: isolate web snapshots to consumer lane 2026-07-30 10:54:51 +08:00
Turtle
efcffa0495 fix(cli): evaluate session root in config context 2026-07-30 10:53:43 +08:00