Commit Graph
7013 Commits
Author SHA1 Message Date
Hypatia May 07760e577a Merge origin/master into codex/status-bar-token-metrics 2026-07-30 15:53:06 +08:00
Tianyi Cui 09c217eba7 Merge pull request #882 from deepseek-harness/worktree/persistent-bash-str-replace-editor
feat(tools): add persistent bash and str-replace editor
2026-07-30 15:47:39 +08:00
Tianyi Cui 2296065c51 Merge branch 'master' into worktree/persistent-bash-str-replace-editor 2026-07-30 15:22:19 +08:00
Tianyi Cui b21f13baa1 test: update tool agent fixtures for inbox API 2026-07-30 15:21:42 +08:00
Tianyi Cui 2550882875 Merge branch 'master' into worktree/persistent-bash-str-replace-editor 2026-07-30 15:19:27 +08:00
imccyu 69214b4708 Merge pull request #955 from deepseek-harness/xtr/fix-trajectory-scroll-layering
fix(web): isolate trajectory scrolling and overlays
2026-07-30 15:17:31 +08:00
Hypatia May f66015455e test(session): cover the request/context fold and its turn enclosure
Adds direct coverage for `Session.requestContext()`: undefined before any
record, folding a seeded log on first read (the watermark starts at 0 with the
seed already in the log, so a first read must consume all of it), incremental
advance across appends, a batch appended between two reads, and the frozen
return that keeps a reader from desyncing later dedup comparisons.

The turn-enclosure assertion goes in the invariant spec rather than beside the
fold tests, because enclosure is enforced by the opt-in invariant companion
plugin and not by `append` itself. Asserting it on a bare Session would have
been a test that passes for the wrong reason.
2026-07-30 15:08:54 +08:00
Tianyi Cui 4f17303265 Merge pull request #913 from deepseek-harness/worktree/pr882-hardening
fix(tools): harden persistent bash and editor contracts
2026-07-30 15:04:18 +08:00
Hypatia May c84ad45f26 test(web): re-record composer stats goldens over merged master
Reapplies this branch's one added occupancy segment on top of master's own
golden refresh from the preceding merge. Recorded with DSH_SNAPSHOT=refresh,
not hand-edited: an attempt to strip the co-recorded context-injection
affordance out of these files broke replay, which is the suite working as
intended — a golden must match the real render byte-for-byte.

Web replay is now 76/77. The one failure, queue-actions ("edits and removes
exact pending occurrences", counts 2 user/message events where it expects 1),
reproduces at pristine origin/master and is untouched here.
2026-07-30 14:55:01 +08:00
Hypatia May cbe36fdd98 Merge remote-tracking branch 'origin/master' into codex/status-bar-token-metrics
Master independently refreshed the same stale web aria goldens this branch had
absorbed in 08aa0ca54, so every conflict was golden-vs-golden with no source
overlap. Goldens are recorded rather than merged: master's recordings win here,
and the following commit re-records to reapply this branch's one added
occupancy segment on top of them.
2026-07-30 14:49:20 +08:00
Hypatia May 8a8c1965d7 feat(web): show durable token usage and context occupancy in the stats line
The chat stats line took its token totals from the loaded conversation nodes,
so paging changed them and compaction erased the billing behind replaced
content. It also had no way to show context occupancy: the numerator and
capacity never reached the browser.

Both now come from token-meter session projections read through the standard
useProjection seat. Window nodes keep supplying turn and step counts plus LLM
and tool wall times, which are correctly window-scoped facts about what is on
screen; accounting no longer comes from there.

`tokenUsage` supplies billing and cache hit. `contextPressure` supplies
occupancy, pairing the newest provider-reported prompt size with the newest
capacity recorded by `request/context`. Deployments without token-meter drop
the token groups; a route whose adapter advertises no capacity drops the
occupancy group rather than rendering a placeholder.

Occupancy is deliberately approximate: the numerator and capacity are
independent last-wins fields, not one atomic request observation, so switching
models pairs a fresh capacity with the prior route's pressure until the next
request reports usage. It is a user-facing reference figure that nothing in the
harness makes decisions from, and it matches how the TUI status line has always
computed occupancy. The Agent Note and token-meter README state this as a
decision, including why the atomic alternative was implemented and rejected, so
it is not re-litigated as a defect.

Snapshot delta is one added `Context N% of 128K` segment across eight web
goldens; the preceding commit absorbed master's pre-existing golden drift.
2026-07-30 14:48:19 +08:00
_Kerman df25ca41dc Merge remote-tracking branch 'github/master' into xtr/fix-trajectory-scroll-layering 2026-07-30 14:45:16 +08:00
_Kerman c0b8fea4c8 fix(ui): contain trajectory scrolling and overlays 2026-07-30 14:45:07 +08:00
imccyu 007659b78f Merge pull request #938 from deepseek-harness/worktree-fetest
ci: gate web browser expected outputs
2026-07-30 14:44:55 +08:00
Hypatia May 901bd575e1 test(web): refresh web aria goldens stale on master
These 15 goldens already failed replay at origin/master d17fcd3a6 before this
branch touched anything: master's committed expectations lag master's own code
(localized sidebar labels, the access-mode control becoming a button, message
IconActions and clock placement, context-injection affordances).

Recorded by running DSH_SNAPSHOT=refresh over the web suite in a pristine
worktree at that commit, then importing the result here, so the stats-line
change in the following commit shows up as its own reviewable delta rather than
mixed into pre-existing drift.

Two web e2e specs still fail at that same pristine commit for non-golden
reasons and are untouched here: queue-actions (counts 2 user/message events
where it expects 1) and details-session-lifecycle (times out waiting for a
New session button).
2026-07-30 14:44:30 +08:00
imccyu ac37caa1ee Merge branch 'master' into worktree-fetest 2026-07-30 14:31:44 +08:00
Hypatia May 7f30a7e30c Merge remote-tracking branch 'origin/master' into codex/status-bar-token-metrics
Conflict resolution notes:

- StatsLine: master redesigned the row into pipe-separated groups with LLM and
  tool wall times. Kept that design and swapped only the token accounting
  source, so counts and durations stay window-scoped while billing and context
  occupancy read the durable projections.
- Generated artifacts (cordis catalog, module graph, event producer/consumer,
  i18n pairing hashes) and web snapshots took master's side; they are
  regenerated and re-recorded after this merge.
- Web e2e goldens and details-panel/timeline assertions took master's side:
  that evolution is unrelated to this branch.
- ui-conversation package.json: kept master's devDependency ordering, re-adding
  only the token-meter entry this branch needs.
2026-07-30 13:56:39 +08:00
Hypatia May 4819210142 refactor(token-meter): make context occupancy durable projection state
Replace the transient `session/model-request` mux frame with ordinary durable
session state. Occupancy now rides two last-wins projection fields instead of a
non-replayable frame that needed removal tombstones and cross-stream fencing.

The frame was the only non-replayable class on the mux stream. Because host and
mux are independent SSE streams with no cross-stream order, a request emitted
before a removal could arrive after `host/session-removed`, and a legitimate
request for a new lifecycle reusing the same id could be fenced by a late
removal. Fixing that needed a lifecycle generation on every frame; the frame
itself was the problem.

Removed: the `session/model-request` frame and schema, the `agent/model-request`
core event, the ApiProxy measurement point, the client-side telemetry map and
removal tombstone, and the synthetic `cancelled` open error used to signal
reconnect through the error channel.

Added: `request/context`, a log-only session event recording the
registration-bound capacity of the route a request resolved to, appended beside
`request/header` from the lookup that already prepared the call and skipped when
the route is unchanged. Capacity stays out of `EpochHeader` because it is
adapter metadata about a route, not an input the request was built from, so it
must not join request reconstruction or header equality.

The `contextPressure` projection pairs the newest provider-reported prompt size
with the newest recorded capacity. The two are deliberately not one atomic
request observation: switching models can pair a fresh capacity with the prior
route's pressure until the next request reports usage. The figure is a
user-facing reference, and this matches how the TUI status line has always
computed occupancy.
2026-07-30 13:53:08 +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
imccyu 291fe1e823 test(web): refresh composer stats expected outputs 2026-07-30 13:15:57 +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
imccyu 9035b1b474 docs(testing): record browser gate timing 2026-07-30 12:01:31 +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
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
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
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