Commit Graph
6353 Commits
Author SHA1 Message Date
imccyu 90addbf53c feat(gui): useProjection — the fifth framework hook seat through the standard kit
React half of the session-projection client base: the renderer contract gains
an open-key projections face on SessionMaybeProvideInfo (cellOf(key), distinct
from the static hooks roster), web-react mints projectionHook (per-bundle cache;
per-cell uSES binding via the shared observableHook cache; unresolved keys read
undefined through the absent source so hook order stays constant), standardKit
delivers kit.useProjection, and the runtime merges UseProjection into
SessionStandardProps/SessionMaybeStandardProps (overloads mirror useSession).
3 jsdom specs (kit delivery + live re-render, selector over undefined, faceless
bundle = all absent); existing direct-prop-feed specs gain the one-line stub the
new required seat mandates.
2026-07-27 22:58:53 +08:00
imccyu fbebe1757a feat(gui): client projection cells — session dispatch seam, one-watermark fold, service roster
Object layer of the session-projection RFC client base: ProjectionCellSpec/
ProjectionCell/ProjectionCellSet with the single seq-watermark rule (live and
window-replace events share one filter; baseline reset re-seeds value+watermark
unless a newer commit applied; absent key = capability absent), Session
dispatch at appendLive/installWindow (projections block read structurally,
TODO(gui) switch to the interface package), SessionsService.registerProjectionCell
roster (live scopes now + future scopes at mint; disposer sweeps every session),
and the provideInfo projections face (key-addressed bare cell sources).
15 object-layer specs: watermark no-rollback, late-baseline seq rule,
capability absence, schema-failure degrade, duplicate-key throw, resync e2e.
2026-07-27 22:56:58 +08:00
imccyu ed72b56f53 rfc: session projections and command lifecycle logging (proposed, bilingual) 2026-07-27 22:56:58 +08:00
Tianyi Cui cc8dfa8ca8 Merge remote-tracking branch 'origin/master' into worktree/explicit-change-scope-report-20260727 2026-07-27 22:55:34 +08:00
Tianyi Cui 5f37983f3f Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-27 22:55:29 +08:00
Tianyi Cui 4fc07e311a Merge remote-tracking branch 'origin/master' into worktree/worktree-local-lefthook-20260727 2026-07-27 22:55:21 +08:00
Tianyi Cui 7acb4332eb fix(dev-infra): keep change scope probes inert 2026-07-27 22:55:10 +08:00
Tianyi Cui 2e210c369b fix(dev-infra): pin replay log path identities 2026-07-27 22:54:58 +08:00
Tianyi Cui f7729b6f53 fix(dev-infra): harden worktree hook ownership 2026-07-27 22:54:44 +08:00
Chinesezjc 4e8fd98110 Merge remote-tracking branch 'origin/master' into fix/worker-timer-clamp 2026-07-27 22:45:00 +08:00
Tianyi Cui 8a952ab433 Merge remote-tracking branch 'origin/master' into worktree/pr628-merge-20260727
# Conflicts:
#	.agents/notes/implemented/architecture/2026-06-21-bounded-llm-request-recovery.md
#	docs/architecture.i18n.yaml
#	docs/config-catalog.md
#	docs/cordis-catalog/events.md
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/llm-streaming.i18n.yaml
#	docs/core-data-structures/llm-streaming.md
#	docs/core-data-structures/llm-streaming.zh.md
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/headless-agent/tests/headless.snapshot.ts
#	packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/core/agent-loop/README.md
#	packages/core/agent-loop/src/loop.ts
#	packages/examples/agent-spine-demo/README.md
#	packages/llm/README.md
#	packages/llm/llm-deepseek/src/adapter.ts
#	packages/llm/llm-pi-ai/src/adapter.ts
#	packages/llm/llm-retry/README.md
#	packages/llm/llm/README.md
#	packages/llm/llm/src/index.ts
#	packages/llm/llm/tests/service.spec.ts
#	packages/support/llm-replay/src/index.ts
#	packages/support/llm-replay/tests/llm-replay.spec.ts
2026-07-27 22:44:43 +08:00
Tianyi Cui 7f333d8837 Merge branch 'master' into sdk/ts-client-and-subagent 2026-07-27 22:41:23 +08:00
Tianyi Cui 5b5f089bd0 Merge pull request #585 from deepseek-harness/xtr/agent-loop-message-machine
refactor(agent-loop): simplify message machine
2026-07-27 22:39:45 +08:00
Tianyi Cui 5049dfeadb Merge remote-tracking branch 'origin/master' into worktree/explicit-change-scope-report-20260727 2026-07-27 22:37:55 +08:00
Tianyi Cui 55247b80b2 Merge origin/master (tsx lint lanes, session-telemetry-otel example dep) 2026-07-27 22:35:43 +08:00
Tianyi Cui 096d2dc06a Merge branch 'master' into xtr/agent-loop-message-machine 2026-07-27 22:34:21 +08:00
Tianyi Cui ec4055adb9 Merge pull request #763 from deepseek-harness/lint-tsx-baseline
chore(lint): bring .tsx files into the eslint, lefthook, and jscpd lanes
2026-07-27 22:30:16 +08:00
Tianyi Cui bb096b9dd1 chore: retrigger CI (push event for 4839a6889 spawned no workflows) 2026-07-27 22:28:28 +08:00
Tianyi Cui 7a60a523f9 Merge branch 'master' into feature/cordis-temporary-tools 2026-07-27 22:26:49 +08:00
imccyu cdd4d59ea0 chore(lint): clear the semantic .tsx backlog
Hand fixes for the findings --fix cannot touch, mirroring the fixes
already applied on the fe-docs feature branch (same file, same shape)
so its eventual rebase resolves cleanly:

- restore the return the no-confusing-void-expression autofix ate in
  useAbsentSnapshot (typed S | undefined; hook call kept for hook-order
  stability, undefined returned explicitly);
- re-type DOM queries the no-unnecessary-type-assertion autofix broke:
  getByRole<HTMLButtonElement>(...) generics instead of the removed
  as-casts (the eslint program and the client tsconfig aggregate
  disagree about these casts; the generic form satisfies both);
- justified eslint-disable for the deliberate legacy paths: keyCode 229
  IME-composition detection, execCommand clipboard fallbacks, lib.dom
  clipboard optionality, and the any-typed Reflect.get/this probes in
  test fakes;
- drop the dead react/no-danger directive (eslint-plugin-react is not
  loaded, so the rule never applied) keeping its shiki rationale;
- delete the tautological 'Z' comparison and the renameTarget null
  check already implied by renameBlocked;
- css-module non-null assertions replaced by type widening
  (Button className, TAG_CLASS Record) per the established pattern;
- misc: max-len comment wraps, void generic drop in the deferred test
  helper, unused type imports, floating selectWorkspace promises voided,
  member-delimiter newlines in inline type literals.
2026-07-27 22:23:41 +08:00
imccyu 2adf44fb80 chore(lint): declare contract callbacks property-style
unbound-method flags destructuring a method-style member (method
signatures are bivariant and exempt from the this-context check).
These contract members are all plain callbacks — declare them as
property-style function types so consumers can destructure them
without a false this-binding hazard. Type-level only.
2026-07-27 22:23:10 +08:00
07akioni 560dc1d8d8 Merge branch 'master' into fix/todo-tool-ui 2026-07-27 22:22:40 +08:00
Chinesezjc ff4c9d9f9d Merge remote-tracking branch 'origin/master' into fix/pty-handoff-grace 2026-07-27 22:17:23 +08:00
Tianyi Cui ed8f9c2808 refactor: rename the backend to dsh-subagent-dsh-sdk
The group's convention is package suffix == provider default
(subagent-acp/'acp', subagent-spawn/'spawn', subagent-fork/'fork'), and the
provider default became dsh-sdk in the last review round — so the package
follows: @deepseek-ai/dsh-subagent-dsh-sdk at
packages/subagent/subagent-dsh-sdk, plugin name subagent-dsh-sdk,
diagnostics prefixed subagent-dsh-sdk:. The dsh echo has precedent
(dsh-llm-deepseek). Directory, fixture path, knip/tsconfig/examples
registrations, catalogs, READMEs (en+zh), and the Agent Note follow; the
sdk-client dispose ladder moves to its own module (src/dispose.ts) with the
deterministic FakeChild tier tests restored alongside it.
2026-07-27 22:17:10 +08:00
Tianyi Cui 81b56a0d97 test(dev-infra): refresh translation prompt snapshot 2026-07-27 22:07:12 +08:00
Tianyi Cui 74c1a76440 fix(dev-infra): detect GitHub Actions installs 2026-07-27 22:00:36 +08:00
Tianyi Cui 1f8a3dd7b1 fix(dev-infra): skip hook setup in CI 2026-07-27 21:54:04 +08:00
Tianyi Cui 87a249106f Merge origin/master: port the SDK stack onto the subprocess seam
Master's #660 replaced dsh-subagent-subprocess with the dsh-subprocess
capability seam (ctx.subprocess + scrubbedParentEnv, tree-scoped teardown)
and moved subagent-acp onto it. Convergence for this branch's packages:

- The shared out-of-process provider vocabulary this branch had grown in
  the deleted library (NO_START_CAPABILITIES, assertPositiveFinite, cwd
  resolution, settleRunResult, subprocessRunHandle) moves into the subagent
  seam package as out-of-process.ts — it enforces subagent-seam contracts,
  not process mechanics, and both out-of-process backends now import it
  from there (subagent-acp keeps master's shape otherwise).
- subagent-sdk spawns THROUGH the SDK client (the subprocess README's
  documented exception for SDK-managed transports) and now applies the
  seam's scrubbedParentEnv() + explicit-env merge in place of the deleted
  buildChildEnv.
- sdk-client inlines the EOF→SIGTERM→SIGKILL ladder as private helpers (it
  runs outside any harness context, so it cannot ride ctx.subprocess).
- The child harness fixture gains the now-required dsh-subprocess-local
  entry for bash-local; the fixture cordis.yml keeps exercising the
  shipped provider default.
2026-07-27 21:52:40 +08:00
_Kerman fb1dc6d117 Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
# Conflicts:
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/session.i18n.yaml
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
2026-07-27 21:51:37 +08:00
imccyu 49c2e85ac7 chore(lint): apply eslint auto-fixes across the .tsx backlog
Mechanical --fix output over the newly linted .tsx files (indent,
arrow-parens, comma-dangle, member-delimiter-style, unnecessary type
assertions), plus the three generic-arrow test hooks converted to
function declarations up front: the comma-dangle fixer strips the
<T,> disambiguation comma and turns them into parse errors otherwise.
2026-07-27 21:49:40 +08:00
Chinesezjc e5ea0efdfb Merge remote-tracking branch 'origin/master' into fix/worker-timer-clamp 2026-07-27 21:45:01 +08:00
imccyu 36e8141145 chore(lint): bring .tsx files into the eslint, lefthook, and jscpd lanes
.tsx sources and specs were invisible to every lint surface: the eslint
flat-config globs, the lefthook staged-file glob, and the jscpd clone
scan all matched *.ts only. Widen the five eslint file groups (source,
test, client-test, sonar, formatting), the pre-commit glob, and the
jscpd format/pattern to cover .tsx.

Existing .tsx files predate these lanes; follow-up commits on this PR
clear the backlog they surface.
2026-07-27 21:42:08 +08:00
Tianyi Cui 8f89881b35 Merge remote-tracking branch 'origin/master' into worktree/explicit-change-scope-report-20260727 2026-07-27 21:39:59 +08:00
Tianyi Cui 7b4eff137e Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-27 21:39:58 +08:00
Tianyi Cui 4e7132e77b Merge remote-tracking branch 'origin/master' into worktree/worktree-local-lefthook-20260727 2026-07-27 21:39:58 +08:00
Tianyi Cui c03c4fdbdd Merge pull request #537 from deepseek-harness/feat/telemetry-otel-plugin
feat(telemetry): session-telemetry seam with mandatory redaction + OTel backend
2026-07-27 21:38:55 +08:00
Tianyi Cui 605df45928 Merge remote-tracking branch 'origin/master' into feat/telemetry-otel-plugin 2026-07-27 21:32:50 +08:00
Tianyi Cui 19b8794966 fix(dev-infra): guard dormant worktree configs 2026-07-27 21:31:12 +08:00
Tianyi Cui 0af16387ae fix(telemetry): rename record waterfall 2026-07-27 21:30:28 +08:00
Tianyi Cui 52b1a80c9c Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-27 21:28:02 +08:00
Tianyi Cui 4bb60b1069 feat(dev-infra): make gate plans inspectable and replayable 2026-07-27 21:27:42 +08:00
Tianyi Cui 6914b04107 Merge remote-tracking branch 'origin/master' into worktree/worktree-local-lefthook-20260727 2026-07-27 21:21:17 +08:00
Tianyi Cui bf4c1a8467 Merge remote-tracking branch 'origin/master' into worktree/explicit-change-scope-report-20260727 2026-07-27 21:21:11 +08:00
Tianyi Cui d47801a6e3 fix(dev-infra): preserve exact scope refs 2026-07-27 21:21:01 +08:00
NI0317 1ef285d038 Restore Cordis mount and unmount names
Keep temporary lifecycle descriptions and UI labels explicit.
2026-07-27 21:20:06 +08:00
imccyu 4feb657b45 Merge pull request #754 from deepseek-harness/fix/question-composer-row-shrink
fix(ui-question): stop option rows absorbing the capped card's shortfall
2026-07-27 21:19:10 +08:00
_Kerman ed67ad53d2 refactor(agent): return request retry action 2026-07-27 21:17:49 +08:00
Tianyi Cui 007e1f4b5a Merge remote-tracking branch 'origin/master' into worktree/explicit-change-scope-report-20260727 2026-07-27 21:17:48 +08:00
Tianyi Cui debd6b9f6f Merge remote-tracking branch 'origin/master' into worktree/worktree-local-lefthook-20260727 2026-07-27 21:17:39 +08:00
Chinesezjc 583d7e18fd Merge remote-tracking branch 'origin/master' into fix/pty-handoff-grace 2026-07-27 21:17:37 +08:00