Tianyi Cui
2f091ee8e6
docs(record-browser-gif): publish PR GIFs with gh --attach
...
Prefer gh v2.99.0's repeatable --attach flag for publishing demonstration
GIFs: it uploads the artifact and rewrites the body's local-path
reference in place, keeping media out of git history without an orphan
assets branch. The assets-branch workflow remains the fallback when the
GIF exceeds 10 MB, gh is older than v2.99.0, or the repository is not on
github.com.
2026-09-02 17:58:36 +08:00
_Kerman
0b8956aab9
refactor(agent): move runtime parent into options
2026-09-02 17:56:01 +08:00
Tianyi Cui
042bd8d01a
Merge live assistant stream into embedded stream migration
...
# Conflicts:
# packages/session/session-projection-cache/src/spec.ts
2026-09-02 17:52:32 +08:00
imccyu
49a606bc5b
Merge pull request #3456 from deepseek-harness/release/dsh-0.1.2-alpha.5-version-to-master
...
sync: merge 0.1.2-alpha.5 to master
2026-09-02 17:47:12 +08:00
Tianyi Cui
aa2616c570
Merge session format migration into live assistant stream
2026-09-02 17:45:59 +08:00
Tianyi Cui
3bdc1b37e5
Merge master into session format migration
2026-09-02 17:43:06 +08:00
Tianyi Cui
cf9948b147
Merge master into session format migration
...
# Conflicts:
# packages/session/session-projection-cache/tests/cache.spec.ts
2026-09-02 17:41:58 +08:00
creatixchu
a1956fa3e2
Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
2026-09-02 17:39:48 +08:00
Dudu-0223
f7cee2c888
Merge pull request #3333 from deepseek-harness/feat/3330-team-send-message-steer
...
feat(agent-team): unify messages on steer
2026-09-02 17:27:55 +08:00
imccyu
cf126d8699
Merge remote-tracking branch 'origin/merge/projcache-v6-compat-into-master' into release/dsh-0.1.2-alpha.5-version-to-master
2026-09-02 17:25:23 +08:00
Tianyi Cui
25098647e8
Merge live assistant stream into embedded stream migration
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.md
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md
# .agents/notes/implemented/architecture/2026-08-08-bounded-session-persistence-write-batching.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-08-bounded-session-persistence-write-batching.md
# .agents/notes/implemented/architecture/2026-08-08-bounded-session-persistence-write-batching.zh.md
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.i18n.yaml
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.md
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.zh.md
# apps/cli/tests/profiles/headless/tests/session-format-guard.expected.e2e.ts
# apps/web/tests/message-actions.e2e.ts
# apps/web/tests/scaffold-generation.spec.ts
# apps/web/tests/scaffold.ts
# apps/web/tests/seeded-history.e2e.ts
# apps/web/tests/subagent-conversation.e2e.ts
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/persistence-catalog.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.md
# docs/subsystems/persistence.zh.md
# docs/subsystems/session.i18n.yaml
# docs/subsystems/session.md
# docs/subsystems/session.zh.md
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/session-query/session-query-sqlite/tests/sqlite.spec.ts
# packages/session-query/session-query/tests/tracing.spec.ts
# packages/session/session-persistence-jsonl/README.i18n.yaml
# packages/session/session-persistence-jsonl/README.md
# packages/session/session-persistence-jsonl/README.zh.md
# packages/session/session-persistence-jsonl/src/index.ts
# packages/session/session-persistence-jsonl/tests/jsonl.spec.ts
# packages/session/session-persistence-jsonl/tests/zstd.spec.ts
# packages/session/session-persistence/tests/contract.ts
# packages/session/session-persistence/tests/coordinator-contract.ts
# packages/session/session-persistence/tests/persistence.spec.ts
# packages/subagent/subagent/src/continuation.ts
# packages/subagent/subagent/tests/list-children.spec.ts
2026-09-02 17:20:51 +08:00
imccyu
0a1efddd40
Merge pull request #3455 from deepseek-harness/merge/projcache-v6-compat-into-master
...
sync: merge projection cache fix from 0.1.2-alpha.5 to master
2026-09-02 17:18:44 +08:00
Dudu-0223
eeddd457cd
fix(agent-team): preserve mailbox order on cold resume
2026-09-02 17:14:44 +08:00
Dudu-0223
1180707084
Merge remote-tracking branch 'origin/master' into feat/3330-team-send-message-steer
...
# Conflicts:
# packages/experimental/agent-team/tests/team.spec.ts
2026-09-02 16:58:09 +08:00
Yichen Jiang
bfdebf1d22
test(llm): expect discovery name fallback
2026-09-02 16:56:06 +08:00
imccyu
c917fe6d46
Merge remote-tracking branch 'origin/master' into merge/projcache-v6-compat-into-master
...
# Conflicts:
# packages/session/session-projection-cache/src/spec.ts
# packages/storage/storage-json/src/per-record-unit.ts
# packages/storage/storage-json/tests/json-backend.spec.ts
2026-09-02 16:55:00 +08:00
07akioni
6bc42c47c2
Merge remote-tracking branch 'origin/master' into feat/electron
2026-09-02 16:45:36 +08:00
07akioni
d5363c8839
feat(desktop): enhance auto-update configuration and add upload scripts
2026-09-02 16:32:12 +08:00
Yichen Jiang
a6ed19b541
fix(llm): expand model listing discovery
2026-09-02 16:25:20 +08:00
Yichen Jiang
51c65c790d
Merge remote-tracking branch 'origin/master' into worktree/deepseek-harness-proxy-config-2f5b4a
2026-09-02 16:11:28 +08:00
Turtle
9ea2329084
fix(issue-management): grant policy Project read access
2026-09-02 16:07:02 +08:00
imccyu
5a69ba1cdd
Merge pull request #3445 from deepseek-harness/release/dsh-0.1.2-alpha.5
...
release: [email protected]
2026-09-02 15:57:43 +08:00
imccyu
db6bdc3576
release(dsh): 0.1.2-alpha.5
dsh-v0.1.2-alpha.5
2026-09-02 15:48:33 +08:00
imccyu
1915665e1e
Merge pull request #3438 from deepseek-harness/fix/projcache-cross-version-read-compat
...
fix(session-projection-cache): survive upgrades across projcache domain versions
2026-09-02 15:47:14 +08:00
Turtle
39b151bda3
fix(issue-management): use Project-local Priority
2026-09-02 15:43:30 +08:00
imccyu
db2dd2f840
docs(session-projection-cache): land the read-compat note as implemented and state fixture provenance in place
...
Review follow-ups: the Agent Note triplet moves to implemented/ rewritten as
shipped state (Decision/Consequences/Testing, present tense), cross-linked
both ways with the 2026-07-28 storage recovery proposal whose projcache
reset/destroy path it supersedes (that proposal stays live for authoritative
and whole-medium damage). The fixtures spec header and the note state the
fixture provenance as recorded facts of the released builds instead of
citing local tooling, and the spec JSDoc points at the note's final home.
2026-09-02 15:25:07 +08:00
imccyu
bef26396e5
docs(session-projection-cache): cross-version read-compat note and schema-change fixture rule
...
The proposed Agent Note records the three shipped on-disk generations of
session_projcache, the read-compat and backup-and-skip decisions, the
upgrade matrix, and the rejected alternatives. The package README documents
the upgrade guarantees and requires every future schema or domain-version
change to land with archived fixtures and tests proving its upgrade story.
The storage subsystem page and the generated cordis catalog pick up the new
DomainSpec fields.
2026-09-02 15:25:07 +08:00
imccyu
49df707c86
fix(session-projection-cache): keep upgraded caches readable and boots safe across domain versions
...
The session_projcache domain declares compatibleVersions: [3, 4] and
invalidRecords: 'backup-and-skip'. The two lineage identity fields become
optional — records admitted from older versions predate them, and the single
reader (identityMatches) interprets absence as the unseeded lineage: exact
for unseeded sessions, while a seeded caller fails the match and refolds
cold, so the lineage binding keeps its protection. Upgraded homes therefore
boot and serve their cached listing titles immediately, including homes
whose new tree already holds current-stamped documents without lineage
fields, and a record failing validation anyway is backed up and skipped
instead of refusing the plugin tree.
tests/fixtures/ archives the real on-disk media of every shipped generation
(v3 whole-unit file, v4 and v5 per-record documents, and the lineage-less
current-stamped shape); fixtures.spec.ts proves each recovers through the
real storage stack, rewrites to the current format on the next live write,
and that a hopeless record is salvaged without costing the boot.
2026-09-02 15:25:07 +08:00
imccyu
fcd109d29a
feat(storage): version read compatibility and backup-and-skip salvage for per-record units
...
A DomainSpec may declare compatibleVersions: older domain versions whose
stored records the current record schemas still accept. The json backend's
per-record reads admit documents stamped with a declared version (writes
always stamp the current one), and the legacy whole-unit bootstrap migrates
only a file whose stored version is in the accepted set — previously it
migrated any version and stamped the records current, turning a discardable
stale cache into invalid-record failures that refused the whole domain at
open and permanently poisoned the new tree on first boot.
A DomainSpec may also declare invalidRecords: 'backup-and-skip' for domains
whose records are disposable derived data: a stored record failing its zod
schema is moved aside through the new optional KvUnit.backupRecord
(<key>.json.bak.<YYYYMMDDHHmm> under the json backend), logged with its
cause, and skipped, instead of rejecting the open. The default stays
fail-loud, and so do backends without backupRecord.
2026-09-02 15:25:07 +08:00
creatixchu
80b376f0ff
Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
2026-09-02 15:24:07 +08:00
Turtle
66ca93c3dc
Merge pull request #3441 from deepseek-harness/turtle/fix-project-date-fields
...
fix(issue-management): restore Project date fields
2026-09-02 15:20:46 +08:00
Turtle
070b46e1ef
fix(issue-management): restore Project date fields
2026-09-02 15:06:25 +08:00
creatixchu
1516c6018d
docs: propose logging each request's image projection
2026-09-02 14:53:45 +08:00
_Kerman
600dff4ca4
test(tool-subagent): cover missing session registry
2026-09-02 14:34:10 +08:00
creatixchu
8d1289420b
Merge remote-tracking branch 'origin/master' into worktree/2984-generic-file-upload
...
# Conflicts:
# packages/client/ui-attachment/README.i18n.yaml
# packages/client/ui-attachment/README.md
# packages/client/ui-attachment/README.zh.md
2026-09-02 14:05:03 +08:00
_Kerman
8292ea45ba
fix(tool-subagent): simplify standing preset cleanup
2026-09-02 13:58:11 +08:00
Tianyi Cui
9007b56360
Merge session format migration lint fix
2026-09-02 13:54:42 +08:00
Tianyi Cui
2372f84206
Merge session format migration into live assistant stream
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
2026-09-02 13:54:23 +08:00
Tianyi Cui
2b529bc2aa
test(session-persistence-jsonl): keep migration assertions typed
2026-09-02 13:50:00 +08:00
Tianyi Cui
91e5f8838e
Merge master into session format migration
2026-09-02 13:42:50 +08:00
Turtle
be70505f9e
Merge pull request #3417 from deepseek-harness/turtle/fix-issue-field-start-date
...
fix(issue-management): write Start date through Issue fields
2026-09-02 13:41:29 +08:00
Tianyi Cui
723980ac78
Merge master into session format migration
...
# Conflicts:
# packages/experimental/webworker-runtime/tests/vfs-example-fixture.ts
2026-09-02 13:41:24 +08:00
_Kerman
02b889bff6
Merge remote-tracking branch 'origin/master' into xtr/explicit-agent-context
...
# Conflicts:
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/subsystems/core.i18n.yaml
# docs/subsystems/core.md
# docs/subsystems/core.zh.md
# packages/api/remotes/package.json
# packages/core/agent-loop/README.i18n.yaml
# packages/core/agent-loop/README.md
# packages/core/agent-loop/README.zh.md
# packages/core/agent-loop/src/index.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/subagent/subagent/src/continuation.ts
# packages/subagent/tool-subagent/src/index.ts
# packages/subagent/tool-subagent/src/model-selection-settings.ts
# packages/typert/protocol/README.i18n.yaml
# packages/typert/protocol/README.md
# packages/typert/protocol/README.zh.md
2026-09-02 13:39:30 +08:00
Yichen Jiang
bbae7318f0
Merge pull request #3424 from deepseek-harness/worktree/github-issue-725-verification-7e80bd
...
fix(llm): keep streamed tool-call identity across empty deltas
2026-09-02 13:35:55 +08:00
Tianyi Cui
7145acfe07
Merge master into session format migration
...
# Conflicts:
# .agents/notes/archived/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.i18n.yaml
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.md
# .agents/notes/implemented/architecture/2026-06-14-session-persistence.zh.md
# .agents/notes/implemented/architecture/2026-07-24-project-session-directories.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-24-project-session-directories.md
# .agents/notes/implemented/architecture/2026-07-24-project-session-directories.zh.md
# .agents/notes/implemented/architecture/2026-08-05-session-preparation.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-05-session-preparation.md
# .agents/notes/implemented/architecture/2026-08-05-session-preparation.zh.md
# .agents/notes/implemented/architecture/2026-08-10-message-feedback-sidecar.i18n.yaml
# .agents/notes/implemented/architecture/2026-08-10-message-feedback-sidecar.md
# .agents/notes/implemented/architecture/2026-08-10-message-feedback-sidecar.zh.md
# .agents/notes/implemented/architecture/2026-08-27-handle-based-session-persistence.i18n.yaml
# .agents/notes/implemented/bug-fix/2026-07-28-load-pre-identity-session-messages.md
# .agents/notes/implemented/bug-fix/2026-07-28-load-pre-identity-session-messages.zh.md
# .agents/notes/implemented/bug-fix/2026-08-04-load-pre-react-loop-sessions.md
# .agents/notes/implemented/bug-fix/2026-08-04-load-pre-react-loop-sessions.zh.md
# .agents/notes/implemented/bug-fix/2026-09-01-host-goal-pause-aborts-turn.i18n.yaml
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.i18n.yaml
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.md
# .agents/notes/implemented/feature/2026-08-10-web-session-log-export.zh.md
# apps/cli/tests/profiles/headless/tests/session-format-guard.expected.e2e.ts
# apps/web/tests/cold-blank-session.e2e.ts
# apps/web/tests/message-actions.e2e.ts
# apps/web/tests/scaffold.ts
# apps/web/tests/workspace-management.e2e.ts
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/subsystems/feedback.i18n.yaml
# docs/subsystems/feedback.md
# docs/subsystems/feedback.zh.md
# docs/subsystems/persistence.i18n.yaml
# docs/subsystems/persistence.md
# docs/subsystems/persistence.zh.md
# packages/acp/acp/src/index.ts
# packages/acp/acp/tests/bridge.spec.ts
# packages/api/session-controller/src/list.ts
# packages/api/session-controller/tests/agent.host.spec.ts
# packages/api/session-controller/tests/session-cold.host.spec.ts
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/api/session-controller/tests/session-search.host.spec.ts
# packages/api/session-controller/tests/test-remote.ts
# packages/api/session-controller/tests/transport.host.spec.ts
# packages/core/agent-loop/src/index.ts
# packages/core/agent-loop/tests/config-session-id.spec.ts
# packages/core/agent-loop/tests/resume.spec.ts
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/feedback/message-feedback/src/index.ts
# packages/feedback/message-feedback/tests/helpers.ts
# packages/feedback/message-feedback/tests/message-feedback.spec.ts
# packages/session-query/session-log-export/src/archive.ts
# packages/session-query/session-log-export/tests/archive.host.spec.ts
# packages/session-query/session-log-export/tests/route.host.spec.ts
# packages/session-query/session-query-sqlite/README.i18n.yaml
# packages/session-query/session-query-sqlite/README.md
# packages/session-query/session-query-sqlite/README.zh.md
# packages/session-query/session-query-sqlite/src/index.ts
# packages/session-query/session-query-sqlite/tests/sqlite.spec.ts
# packages/session-query/session-query/README.i18n.yaml
# packages/session-query/session-query/README.md
# packages/session-query/session-query/README.zh.md
# packages/session-query/session-query/src/corpus.ts
# packages/session-query/session-query/tests/observation.spec.ts
# packages/session-query/session-query/tests/session-query.spec.ts
# packages/session-query/session-query/tests/tracing.spec.ts
# packages/session/session-checkpoint-policy/tests/session-checkpoint-policy.spec.ts
# packages/session/session-persistence-jsonl/README.i18n.yaml
# packages/session/session-persistence-jsonl/README.md
# packages/session/session-persistence-jsonl/README.zh.md
# packages/session/session-persistence-jsonl/src/index.ts
# packages/session/session-persistence-jsonl/tests/jsonl.spec.ts
# packages/session/session-persistence-jsonl/tests/zstd.spec.ts
# packages/session/session-persistence/README.i18n.yaml
# packages/session/session-persistence/README.md
# packages/session/session-persistence/README.zh.md
# packages/session/session-persistence/src/coordinator.ts
# packages/session/session-persistence/src/index.ts
# packages/session/session-persistence/tests/contract.ts
# packages/session/session-persistence/tests/coordinator-contract.ts
# packages/session/session-persistence/tests/persistence.spec.ts
# packages/session/session-telemetry/package.json
# packages/shell/tool-bash/tests/tools.spec.ts
# packages/subagent/subagent/src/continuation.ts
# packages/subagent/subagent/tests/list-children.spec.ts
# packages/workspace/workspace/src/index.ts
# packages/workspace/workspace/tests/workspace.spec.ts
# scripts/gen-cordis-catalog.ts
2026-09-02 13:34:40 +08:00
Chinesezjc
a631115597
Merge pull request #2828 from deepseek-harness/feat/toolcard-image-result
...
feat(ui-tool): render read_image results as the image
2026-09-02 12:45:39 +08:00
Magolor
d921d4b357
fix(storage-json): reject cross-version legacy bootstrap ( #3431 )
...
* fix(storage-json): reject cross-version legacy bootstrap
* test(webworker): sync projection cache fixture version
* docs(storage): record legacy bootstrap version ownership
2026-09-02 04:37:15 +00:00
Chinesezjc
3648331b11
Merge remote-tracking branch 'origin/master' into feat/toolcard-image-result
...
# Conflicts:
# packages/client/ui-chat/src/client/chat/ChatNodeSeat.tsx
# packages/client/ui-chat/src/client/chat/ChatView.tsx
# packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
2026-09-02 12:02:25 +08:00
Chinesezjc
e4c822544c
test(pwsh): restore product-default deadline in loader composition
...
The first call pays the full pwsh cold-start latency (spawn + .NET +
PSReadLine + Defender) inside the tool deadline. A 60s bound on the fully
loaded self-hosted Windows pool is exceeded often enough to reset the
session mid-test: two master CI runs (2026-09-01, runs 33524764567 and
33534262413) each failed at ~62s with the second call observing a fresh
session (cwd back at root, env empty). 300s matches the product default
so cold start no longer races the budget.
2026-09-02 11:50:18 +08:00
_Kerman
c8f76ca399
chore: remove unrelated changes from Inbox PR
2026-09-02 11:36:46 +08:00