Commit Graph

12308 Commits

Author SHA1 Message Date
Pine 08ac7c3da5 feat(vision): gate recognition on a configured provider
Expose ImageRecognitionRuntime.available() and gate the image-task pre-step
injection on it, so the capability is dormant until an endpoint is
configured instead of guiding the model to a call that can only fail.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 12:08:30 +08:00
Pine 2b81e38263 build(cli): depend on the image-recognition bundle so it resolves from the anchor
The web profile template mounts the bundle; apps/cli must declare it so the
harness resolves it from the installation anchor for both fresh and existing
web profiles.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 11:51:04 +08:00
Pine b12262e8c9 feat(app-boot): mount image recognition by default for the web profile
Add the image-recognition bundle to the web profile template so the
capability is on by default for new web profiles.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 11:48:17 +08:00
Pine c73b9eb403 feat(ui): add model field to the image-recognition settings card
The card now configures the provider endpoint, API key, and model, mirroring
the provider Config.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 11:33:13 +08:00
Pine f5f114dfb8 docs(vision): package READMEs, Model Experience, and the capability Agent Note
Document the four image-recognition packages and the vision group, register
the vision domain in the package index, add the capability decision as an
Agent Note, declare the invariants peer dep, and drop the unused agents
injection from the consumer.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 11:15:59 +08:00
Pine 19b39bc2e0 build(catalog): catalogue recognize_image and allowlist model-agnostic vision packages
Register the tool-image-recognition package in the tool-catalog generator so
its schema is catalogued, and add the model-agnostic vision seam/provider/
bundle to the README Model Experience omission allowlist.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 11:15:39 +08:00
Pine b6b982dc87 feat(ui): add the image-recognition settings card
An image-recognition card in the Plugins settings page (endpoint + key),
cloned from the web-search card: baseURL via the settings section, the key
through the credentials domain.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 11:15:26 +08:00
Pine 381c6510e9 build(vision): register the vision domain and packages in the build graph
Add the vision path domain to the tsconfig base paths catch-all, reference
the four new packages in the host TypeScript program, and record their
workspace deps in the lockfile.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:58:40 +08:00
Pine 5e962b8a8d feat(vision): add the opt-in image-recognition bundle
Mounts the capability seam, the configurable HTTP provider, and the
model-facing recognition consumer. Not in any default profile's bundles
list — a user opts in per profile.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:58:29 +08:00
Pine 457304e619 feat(vision): add the model-facing recognition consumer
Registers the recognize_image tool and a bundled image-recognition skill,
and hooks agent/pre-step to deterministically inject the skill body when a
step input carries an image (content block or image path/URL), so the model
recognizes the image before continuing the task.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:57:38 +08:00
Pine 6409636afb feat(vision): add the configurable HTTP vision provider
Registers an OpenAI-compatible chat-completions provider into
ctx.imageRecognition with a user-editable baseURL + API key via a settings
section and the credential plane. Logs the secret-free vision request body
as the image-recognition/llm-request session event.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:56:10 +08:00
Pine fc180997c6 feat(vision): add the image-recognition capability seam
Service Definition for ctx.imageRecognition: a provider registry and
provider-selecting execution, mirrored on the web seam (duplicate ids
rejected, order-independent selection, ImageRecognitionError taxonomy).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:55:57 +08:00
Pine 1c27680bb9 docs(desktop): record the Electron desktop shell decision as an Agent Note
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:23:56 +08:00
Pine 10a4f4a8f5 build(desktop): wire the Electron app into the workspace and build graph
Add desktop:dev/build/pack scripts, approve the electron build script in
pnpm-workspace.yaml allowBuilds, and reference apps/desktop (plus its
tests) in the host TypeScript program. Records the electron and
electron-builder deps in the lockfile.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:23:39 +08:00
Pine 0cdbbfbf1a feat(desktop): add Electron desktop shell over the web profile
Spawn the real dsh CLI running the web profile on loopback (OS-assigned
port), parse the printed readiness URL, and open a native window at it.
The harness and its native addons stay on the system Node ABI; the main
imports only electron and node builtins.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-14 10:23:22 +08:00
imccyu 47f943859b Merge pull request #2519 from deepseek-harness/feat/npm-public
release: dsh@0.1.0-rc.5 & publish the dsh family publicly
2026-08-13 19:38:46 +08:00
imccyu abe560f81e release(dsh): 0.1.0-rc.5 2026-08-13 18:49:33 +08:00
imccyu 8c1e8d9890 build(release): publish the dsh family publicly
Every release member now declares publishConfig.access: public, so the scope no
longer mixes levels: the 221 packages/*/* and apps/* manifests join the vendored
framework and the native packages.

check-workspace-constraints drops the per-sequence expectation and holds every
release member to public, which is what stops a member from drifting back.

Access is a property of the package, not of a version: the dsh packages already
published as restricted become world-readable at their next publication.
2026-08-13 18:49:32 +08:00
Tianyi Cui f26a6f6cff Merge pull request #2520 from deepseek-harness/docs/paper
docs: add link to preview paper
2026-08-13 18:47:36 +08:00
imccyu 124aa5f01a Merge pull request #2521 from deepseek-harness/release/dsh-0.1.0-rc.3
release: dsh@0.1.0-rc.3
2026-08-13 18:40:08 +08:00
imccyu 8a954b2eca release(dsh): 0.1.0-rc.3 2026-08-13 18:39:06 +08:00
imccyu 71fa4c50d1 Merge pull request #2512 from deepseek-harness/codex/2503-english-onboarding-copy
fix(web): add English onboarding copy
2026-08-13 18:38:26 +08:00
Shigma 0ae8f27b93 docs: add link to preview paper 2026-08-13 18:37:45 +08:00
imccyu 908f1afc42 ci: skip 2026-08-13 18:29:09 +08:00
imccyu a41085dfd4 ci: skip 2026-08-13 18:25:49 +08:00
imccyu 81cf740c4f Merge branch 'master' into codex/2503-english-onboarding-copy 2026-08-13 18:15:53 +08:00
imccyu 42c359e57b fix: ci 2026-08-13 18:14:13 +08:00
Turtle b5aa2602a0 Merge pull request #2498 from deepseek-harness/codex/docs-publish-source-build
docs: add source build prerequisite to plugin tutorial
2026-08-13 18:04:52 +08:00
creatixchu 0f1c29c751 test(web): cover onboarding branches 2026-08-13 18:03:15 +08:00
Turtle 7c94659ec4 docs: add source build prerequisite to plugin tutorial 2026-08-13 18:02:12 +08:00
creatixchu fc90114ad9 fix(web): add English onboarding copy 2026-08-13 17:35:21 +08:00
imccyu 5a16a5eaf5 Merge pull request #2507 from deepseek-harness/release/dsh-0.1.0-rc.2
Release: dsh@0.1.0-rc.2
2026-08-13 17:23:52 +08:00
imccyu 60b04b6ef7 release(dsh): 0.1.0-rc.2 2026-08-13 17:19:37 +08:00
Tianyi Cui 6bb315a397 Merge pull request #2478 from deepseek-harness/docs/readme-human-polish-3
docs(i18n): human-polish additional Chinese READMEs
2026-08-13 17:19:08 +08:00
j-xiang 55ef21e1a3 Merge branch 'master' into docs/readme-human-polish-3 2026-08-13 17:16:51 +08:00
Tianyi Cui 6e4e585e9a Merge pull request #2503 from deepseek-harness/agent/onboarding-modal-flow
feat(web): unify onboarding dialogs
2026-08-13 17:16:32 +08:00
Tianyi Cui 7ae911ad8f Merge branch 'master' into agent/onboarding-modal-flow 2026-08-13 17:03:59 +08:00
j-xiang 272d2c99b4 Merge branch 'master' into docs/readme-human-polish-3 2026-08-13 16:59:48 +08:00
Chinesezjc 5d23de9bd9 Merge pull request #2505 from deepseek-harness/ci/split-failover-per-platform
ci: split failover switch into per-platform Linux and Windows variables
2026-08-13 16:59:32 +08:00
j-xiang f34eda53e3 Merge branch 'master' into docs/readme-human-polish-3 2026-08-13 16:59:11 +08:00
Tianyi Cui 5c2244cc9c Merge origin/master into agent/onboarding-modal-flow 2026-08-13 16:57:01 +08:00
j-xiang 952c6c3c9c docs(i18n): finish README fidelity review 2026-08-13 16:56:10 +08:00
Chinesezjc 65f679b33a ci: split failover switch into per-platform Linux and Windows variables
Replace the single DSH_CI_FAILOVER variable with two independent
switches so an outage on one platform no longer retargets the other:

- DSH_CI_FAILOVER_LINUX: the three required Linux workers (node-24,
  node-24-coverage, node-24-consumers) and the all-checks-passed verdict,
  which resolves its pool to vm-backup and keeps its concurrency and
  cache-restore branches.
- DSH_CI_FAILOVER_WINDOWS: the non-blocking windows-native job, which
  resolves to the dsh-win-ci pool.

all-checks-passed rides the Linux switch because it aggregates the
required Linux workers and runs on the vm-backup pool. The Dependabot
exclusion is preserved on both switches. The failover runbook (EN/ZH)
and its translation pairing, plus the docs that referenced the old
variable, are updated in the same change.
2026-08-13 16:54:57 +08:00
imccyu d8f5b0507d Merge pull request #2495 from deepseek-harness/release/dsh-0.1.0-rc.1
release(dsh): 0.1.0-rc.1
2026-08-13 16:51:36 +08:00
Tianyi Cui 10be203b17 Merge pull request #2484 from deepseek-harness/worktree/fail-web-wildcard-host
fix(web): reject unsupported wildcard host
2026-08-13 16:48:22 +08:00
Ziya f8c0bf9186 Merge branch 'master' into agent/onboarding-modal-flow 2026-08-13 16:40:58 +08:00
Tianyi Cui 7cbb40bc8a Merge remote-tracking branch 'origin/master' into worktree/fail-web-wildcard-host 2026-08-13 16:39:00 +08:00
Tianyi Cui 5d114c2833 Merge pull request #2490 from deepseek-harness/worktree/session-list-default-ascending
fix(web): show newest sessions first by default
2026-08-13 16:38:29 +08:00
Tianyi Cui 0a42836fbb fix(web): address wildcard host review 2026-08-13 16:37:49 +08:00
Ziya 9f8dfa7fb1 Merge branch 'master' into agent/onboarding-modal-flow 2026-08-13 16:32:47 +08:00