| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
feat(desktop): stabilize plugins and recording workflows | 1 个月前 | |
merge: integrate DeepSeek Harness rc8 upstream | 29 天前 | |
Merge remote-tracking branch 'origin/master' into xtr/2701-stable-session-snapshots | 28 天前 | |
feat(client): inject public build environment | 30 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(python-runtime): fall back to node-pty prebuild | 1 个月前 | |
fix(python-runtime): fall back to node-pty prebuild | 1 个月前 | |
feat(studio): 集成 Harness 0.1.1-rc.2 视觉与 Files 能力 (#19) * docs(llm): anchor unified request-image management design PR * refactor(attachment): saveImage returns the canonical ref beside source facts AttachmentStore.saveImage now resolves SavedImageAttachment: the durable reference paired with the submitted raster's intrinsic facts, so a store may persist a canonical re-encoding while callers keep the source dimensions for coordinate mapping. saveImages keeps returning refs; every fake store and the cordis API catalog follow the new signature. * feat(attachment-local): store a deterministic canonical image encoding Admission now validates a wide source envelope (32MiB, 100MP, 16384px per side) and persists a canonical encoding instead of refusing large sources: EXIF orientation baked in, metadata stripped, long edge downscaled to the configured canonical target (default 2048px), PNG palette for alpha/PNG/GIF sources and a fixed JPEG quality ladder (85/75/60/45) until the canonical byte target holds (default 1MiB). In-budget PNG/JPEG/WebP passes through byte-identically so equal sources keep deduplicating to the same content address; GIF always re-encodes to the PNG of its first frame, pinning the first-frame meaning providers apply. Encoder parameters are fixed by design; only the canonical budget is deployment configuration. * feat(tool-fs): read_image reports downscaled dimensions and coordinate scale When the attachment store's canonical encoding shrinks the file on disk, the read_image envelope names the original dimensions and the multiplier that maps coordinates measured on the attached image back onto the file, and the output schema carries sourceWidth/sourceHeight for programmatic callers. * fix(attachment-local): keep reference field order stable for logged fixtures The canonical ref serializes mediaType, width, height, bytes in the order the pre-canonicalization store used, so existing session-log fixtures and logged histories keep byte-identical reference JSON. * docs(attachment): document canonical admission; pin wide-image acceptance snapshot READMEs (both languages) describe the wide source envelope, the canonical encoding and its fixed encoder parameters, and read_image's downscale envelope; tool/config catalogs regenerate for the new schema and Config fields. The read-image-dimension scenario now pins the acceptance the old 2000px admission cap refused: the 2001x1 source is admitted and stored byte-identically, so the fixture stays platform-independent. * docs(notes): record the canonical image admission decision * docs: bring the zh config catalog along; pin read_image source fields in the code-mode prompt sidecar * fix(attachment-local): exclude metadata carriers and animation from passthrough; validate the canonical budget up front Review-round hardening of canonical admission: - passthrough now requires a single-frame source free of EXIF/XMP/IPTC metadata, so location/device metadata never enters durable storage and stored dimensions always describe the perceived pixels; animated WebP joins GIF on the always-re-encode path (first frame only) - SourceImageInfo records orientation-applied dimensions, keeping source and stored raster on shared axes for coordinate mapping - validateImage runs a canonical-encoding dry run, so a validated batch can no longer be refused mid-write by the byte target (no partial writes) - read_image names per-axis multipliers when rounding splits the two ratios and maps IMAGE_TOO_LARGE to actionable downscale guidance * docs: propose attachment read quarantine * feat(images): unify master and Files request pipeline * chore(images): align merged runtime closure * fix(images): parse listed missing Files ids * docs: refresh image pipeline module graph * fix(images): address unified pipeline review * test(images): cover attachment projection edges * feat(images): expand source upload envelope * test(images): close unified pipeline coverage gaps * test(deepseek): expose Files API e2e failures * test(deepseek): print vision failure facts * refactor(image): remove region reads * refactor(attachment): normalize image storage API * test(composition): remove retired image-region tool * docs(i18n): fix rebased image note links * test(snapshot): stabilize persisted-turn coverage * Revert "Merge pull request #2608 from deepseek-harness/fix/permission-copy-and-default" This reverts commit d51f4106a2b0669d33e0f5dc1d5dcf21a764d313, reversing changes made to 69ace51625b6ac665b2f2ec1e81005d5b055f152. * test: sync reverted permission snapshot * fix(attachment): accept opaque WebP alpha omission * fix(llm-deepseek): fall back when Files resolution fails * fix(deepseek): decouple files and stream timeouts * release(dsh): 0.1.1-rc.2 * feat(studio): integrate Harness rc.2 vision runtime * fix(studio): align rc.2 source resolution and web snapshots * fix(desktop): close rc.2 packaged runtime peers * fix(desktop): harden pnpm 11 runtime staging * ci(desktop): smoke packaged Windows Sharp runtime * fix(ci): wait for packaged Sharp smoke * test(desktop): verify installed Windows V4 Vision * ci(windows): tolerate runner install variance * ci(windows): launch vision driver with pinned node * fix(desktop): move brand badge into sidebar footer * fix(release): align Studio package versions with rc.2 * fix(ci): reconcile Studio cross-platform release gates * fix(ci): isolate Studio patch from Python runtime deploy * feat(desktop): support self-hosted vision providers * chore(ci): retain Studio release ownership * feat(desktop): prepare rc.15 vision and app fixes * fix(studio): reconcile rc2 with current desktop behavior * fix(studio): preserve model switching across image history * test(studio): align visual provider fixtures * test(web): restore artifacts after HMR validation * docs(testing): record HMR artifact restoration * fix(studio): satisfy rc2 package contracts --------- Co-authored-by: creatixchu <creatixchu@deepseek.com> Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com> Co-authored-by: CreatixChu <142372241+CreatixChu@users.noreply.github.com> Co-authored-by: imccyu <cc.yu@deepseek.com> Co-authored-by: Jiutian Lecture Lab Evolver <evolver@jiutian.local> Co-authored-by: Beyondata <172011122+fufankeji@users.noreply.github.com> | 27 天前 | |
feat(python-sdk): support bundled preset runtime dependencies | 1 个月前 | |
fix(build): support standalone pnpm entrypoints | 28 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
refactor: prefix experimental package names | 30 天前 | |
merge: integrate DeepSeek Harness rc8 upstream | 29 天前 | |
feat(studio): 集成 Harness 0.1.1-rc.2 视觉与 Files 能力 (#19) * docs(llm): anchor unified request-image management design PR * refactor(attachment): saveImage returns the canonical ref beside source facts AttachmentStore.saveImage now resolves SavedImageAttachment: the durable reference paired with the submitted raster's intrinsic facts, so a store may persist a canonical re-encoding while callers keep the source dimensions for coordinate mapping. saveImages keeps returning refs; every fake store and the cordis API catalog follow the new signature. * feat(attachment-local): store a deterministic canonical image encoding Admission now validates a wide source envelope (32MiB, 100MP, 16384px per side) and persists a canonical encoding instead of refusing large sources: EXIF orientation baked in, metadata stripped, long edge downscaled to the configured canonical target (default 2048px), PNG palette for alpha/PNG/GIF sources and a fixed JPEG quality ladder (85/75/60/45) until the canonical byte target holds (default 1MiB). In-budget PNG/JPEG/WebP passes through byte-identically so equal sources keep deduplicating to the same content address; GIF always re-encodes to the PNG of its first frame, pinning the first-frame meaning providers apply. Encoder parameters are fixed by design; only the canonical budget is deployment configuration. * feat(tool-fs): read_image reports downscaled dimensions and coordinate scale When the attachment store's canonical encoding shrinks the file on disk, the read_image envelope names the original dimensions and the multiplier that maps coordinates measured on the attached image back onto the file, and the output schema carries sourceWidth/sourceHeight for programmatic callers. * fix(attachment-local): keep reference field order stable for logged fixtures The canonical ref serializes mediaType, width, height, bytes in the order the pre-canonicalization store used, so existing session-log fixtures and logged histories keep byte-identical reference JSON. * docs(attachment): document canonical admission; pin wide-image acceptance snapshot READMEs (both languages) describe the wide source envelope, the canonical encoding and its fixed encoder parameters, and read_image's downscale envelope; tool/config catalogs regenerate for the new schema and Config fields. The read-image-dimension scenario now pins the acceptance the old 2000px admission cap refused: the 2001x1 source is admitted and stored byte-identically, so the fixture stays platform-independent. * docs(notes): record the canonical image admission decision * docs: bring the zh config catalog along; pin read_image source fields in the code-mode prompt sidecar * fix(attachment-local): exclude metadata carriers and animation from passthrough; validate the canonical budget up front Review-round hardening of canonical admission: - passthrough now requires a single-frame source free of EXIF/XMP/IPTC metadata, so location/device metadata never enters durable storage and stored dimensions always describe the perceived pixels; animated WebP joins GIF on the always-re-encode path (first frame only) - SourceImageInfo records orientation-applied dimensions, keeping source and stored raster on shared axes for coordinate mapping - validateImage runs a canonical-encoding dry run, so a validated batch can no longer be refused mid-write by the byte target (no partial writes) - read_image names per-axis multipliers when rounding splits the two ratios and maps IMAGE_TOO_LARGE to actionable downscale guidance * docs: propose attachment read quarantine * feat(images): unify master and Files request pipeline * chore(images): align merged runtime closure * fix(images): parse listed missing Files ids * docs: refresh image pipeline module graph * fix(images): address unified pipeline review * test(images): cover attachment projection edges * feat(images): expand source upload envelope * test(images): close unified pipeline coverage gaps * test(deepseek): expose Files API e2e failures * test(deepseek): print vision failure facts * refactor(image): remove region reads * refactor(attachment): normalize image storage API * test(composition): remove retired image-region tool * docs(i18n): fix rebased image note links * test(snapshot): stabilize persisted-turn coverage * Revert "Merge pull request #2608 from deepseek-harness/fix/permission-copy-and-default" This reverts commit d51f4106a2b0669d33e0f5dc1d5dcf21a764d313, reversing changes made to 69ace51625b6ac665b2f2ec1e81005d5b055f152. * test: sync reverted permission snapshot * fix(attachment): accept opaque WebP alpha omission * fix(llm-deepseek): fall back when Files resolution fails * fix(deepseek): decouple files and stream timeouts * release(dsh): 0.1.1-rc.2 * feat(studio): integrate Harness rc.2 vision runtime * fix(studio): align rc.2 source resolution and web snapshots * fix(desktop): close rc.2 packaged runtime peers * fix(desktop): harden pnpm 11 runtime staging * ci(desktop): smoke packaged Windows Sharp runtime * fix(ci): wait for packaged Sharp smoke * test(desktop): verify installed Windows V4 Vision * ci(windows): tolerate runner install variance * ci(windows): launch vision driver with pinned node * fix(desktop): move brand badge into sidebar footer * fix(release): align Studio package versions with rc.2 * fix(ci): reconcile Studio cross-platform release gates * fix(ci): isolate Studio patch from Python runtime deploy * feat(desktop): support self-hosted vision providers * chore(ci): retain Studio release ownership * feat(desktop): prepare rc.15 vision and app fixes * fix(studio): reconcile rc2 with current desktop behavior * fix(studio): preserve model switching across image history * test(studio): align visual provider fixtures * test(web): restore artifacts after HMR validation * docs(testing): record HMR artifact restoration * fix(studio): satisfy rc2 package contracts --------- Co-authored-by: creatixchu <creatixchu@deepseek.com> Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com> Co-authored-by: CreatixChu <142372241+CreatixChu@users.noreply.github.com> Co-authored-by: imccyu <cc.yu@deepseek.com> Co-authored-by: Jiutian Lecture Lab Evolver <evolver@jiutian.local> Co-authored-by: Beyondata <172011122+fufankeji@users.noreply.github.com> | 27 天前 | |
feat(build): bind client artifacts to build profiles | 30 天前 | |
feat(build): bind client artifacts to build profiles | 30 天前 | |
fix(cic): cover release-publish in client-build gate and correct group wording Address the latest review pass on PR #2798: - client-build-environment.client.spec.ts: add release-publish.yml to dshBuildWorkflows so the 'workflow env must not set DSH_CLIENT_*' gate covers the new dsh publish path (it runs build:official and writes a dsh client build record). vendor-publish runs only build:lib:host, so it is not added. - 2026-08-10-npm-release-sequences note (en/zh/i18n): the Release-publish group is carried by the publish job (job-level concurrency), not the whole workflow; corrected the wording. | 29 天前 | |
feat(build): bind client artifacts to build profiles | 30 天前 | |
refactor(client): move web rendering into a dynamic plugin | 1 个月前 | |
merge: integrate DeepSeek Harness rc8 upstream | 29 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(python-sdk): harden packaged runtime behavior | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(ci): stabilize latest-master acceptance gates | 1 个月前 | |
test(ci): deduplicate coverage command setup | 28 天前 | |
fix(build): support standalone pnpm entrypoints | 28 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
feat(desktop): ship public plugin center | 1 个月前 | |
build(client): enforce client package boundaries | 1 个月前 | |
build(client): enforce client package boundaries | 1 个月前 | |
test(python): pin the minimal composition's model-visible surface The Python lane never compared what the minimal composition shows the model: the mock model only asserted system-role messages, and the advanced snapshot tokenizes the assembled system prompt and tool schemas. The sdk-minimal scenario now records model-visible.json — every model request's advertised tool schemas verbatim and its message list, with system and user text kept and assistant/tool payloads reduced to call identity so the expected output replays on macOS and Linux. It excludes the dynamic runtime-context snapshot, which the same composition emits on macOS and not on Linux (#2488). AGENTS.md and the testing policy name both SDKs as independent projections of the agent loop, session lifecycle, and SessionEventMap. | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
refactor(client): merge React bindings into UI renderer | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(i18n): bind localized links to active pairs | 1 个月前 | |
feat(studio): 集成 Harness 0.1.1-rc.2 视觉与 Files 能力 (#19) * docs(llm): anchor unified request-image management design PR * refactor(attachment): saveImage returns the canonical ref beside source facts AttachmentStore.saveImage now resolves SavedImageAttachment: the durable reference paired with the submitted raster's intrinsic facts, so a store may persist a canonical re-encoding while callers keep the source dimensions for coordinate mapping. saveImages keeps returning refs; every fake store and the cordis API catalog follow the new signature. * feat(attachment-local): store a deterministic canonical image encoding Admission now validates a wide source envelope (32MiB, 100MP, 16384px per side) and persists a canonical encoding instead of refusing large sources: EXIF orientation baked in, metadata stripped, long edge downscaled to the configured canonical target (default 2048px), PNG palette for alpha/PNG/GIF sources and a fixed JPEG quality ladder (85/75/60/45) until the canonical byte target holds (default 1MiB). In-budget PNG/JPEG/WebP passes through byte-identically so equal sources keep deduplicating to the same content address; GIF always re-encodes to the PNG of its first frame, pinning the first-frame meaning providers apply. Encoder parameters are fixed by design; only the canonical budget is deployment configuration. * feat(tool-fs): read_image reports downscaled dimensions and coordinate scale When the attachment store's canonical encoding shrinks the file on disk, the read_image envelope names the original dimensions and the multiplier that maps coordinates measured on the attached image back onto the file, and the output schema carries sourceWidth/sourceHeight for programmatic callers. * fix(attachment-local): keep reference field order stable for logged fixtures The canonical ref serializes mediaType, width, height, bytes in the order the pre-canonicalization store used, so existing session-log fixtures and logged histories keep byte-identical reference JSON. * docs(attachment): document canonical admission; pin wide-image acceptance snapshot READMEs (both languages) describe the wide source envelope, the canonical encoding and its fixed encoder parameters, and read_image's downscale envelope; tool/config catalogs regenerate for the new schema and Config fields. The read-image-dimension scenario now pins the acceptance the old 2000px admission cap refused: the 2001x1 source is admitted and stored byte-identically, so the fixture stays platform-independent. * docs(notes): record the canonical image admission decision * docs: bring the zh config catalog along; pin read_image source fields in the code-mode prompt sidecar * fix(attachment-local): exclude metadata carriers and animation from passthrough; validate the canonical budget up front Review-round hardening of canonical admission: - passthrough now requires a single-frame source free of EXIF/XMP/IPTC metadata, so location/device metadata never enters durable storage and stored dimensions always describe the perceived pixels; animated WebP joins GIF on the always-re-encode path (first frame only) - SourceImageInfo records orientation-applied dimensions, keeping source and stored raster on shared axes for coordinate mapping - validateImage runs a canonical-encoding dry run, so a validated batch can no longer be refused mid-write by the byte target (no partial writes) - read_image names per-axis multipliers when rounding splits the two ratios and maps IMAGE_TOO_LARGE to actionable downscale guidance * docs: propose attachment read quarantine * feat(images): unify master and Files request pipeline * chore(images): align merged runtime closure * fix(images): parse listed missing Files ids * docs: refresh image pipeline module graph * fix(images): address unified pipeline review * test(images): cover attachment projection edges * feat(images): expand source upload envelope * test(images): close unified pipeline coverage gaps * test(deepseek): expose Files API e2e failures * test(deepseek): print vision failure facts * refactor(image): remove region reads * refactor(attachment): normalize image storage API * test(composition): remove retired image-region tool * docs(i18n): fix rebased image note links * test(snapshot): stabilize persisted-turn coverage * Revert "Merge pull request #2608 from deepseek-harness/fix/permission-copy-and-default" This reverts commit d51f4106a2b0669d33e0f5dc1d5dcf21a764d313, reversing changes made to 69ace51625b6ac665b2f2ec1e81005d5b055f152. * test: sync reverted permission snapshot * fix(attachment): accept opaque WebP alpha omission * fix(llm-deepseek): fall back when Files resolution fails * fix(deepseek): decouple files and stream timeouts * release(dsh): 0.1.1-rc.2 * feat(studio): integrate Harness rc.2 vision runtime * fix(studio): align rc.2 source resolution and web snapshots * fix(desktop): close rc.2 packaged runtime peers * fix(desktop): harden pnpm 11 runtime staging * ci(desktop): smoke packaged Windows Sharp runtime * fix(ci): wait for packaged Sharp smoke * test(desktop): verify installed Windows V4 Vision * ci(windows): tolerate runner install variance * ci(windows): launch vision driver with pinned node * fix(desktop): move brand badge into sidebar footer * fix(release): align Studio package versions with rc.2 * fix(ci): reconcile Studio cross-platform release gates * fix(ci): isolate Studio patch from Python runtime deploy * feat(desktop): support self-hosted vision providers * chore(ci): retain Studio release ownership * feat(desktop): prepare rc.15 vision and app fixes * fix(studio): reconcile rc2 with current desktop behavior * fix(studio): preserve model switching across image history * test(studio): align visual provider fixtures * test(web): restore artifacts after HMR validation * docs(testing): record HMR artifact restoration * fix(studio): satisfy rc2 package contracts --------- Co-authored-by: creatixchu <creatixchu@deepseek.com> Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com> Co-authored-by: CreatixChu <142372241+CreatixChu@users.noreply.github.com> Co-authored-by: imccyu <cc.yu@deepseek.com> Co-authored-by: Jiutian Lecture Lab Evolver <evolver@jiutian.local> Co-authored-by: Beyondata <172011122+fufankeji@users.noreply.github.com> | 27 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
feat(authorization): obtain a credential by asking the human Some credentials cannot be configured, only obtained: getting one means a conversation — open this page, paste that code, pick an account. The new seam owns that conversation and the one-attempt-per-key lifecycle, and never the protocol, so a second authorization protocol arrives as another flow rather than as another seam. A flow is registered under the CredentialKey it writes, which is also how the seam knows which plugin answers for the format inside that record. The flow owns the write: run() resolving means the record is already committed through ctx.credentials, and the seam confirms it. That keeps a library persisting through its own store adapter the single writer instead of being copied back out and written twice. The interaction travels with the request rather than a registry, because whoever starts an authorization is the one who can talk to the human about it. A request already withdrawn never claims the key and never starts the flow — relying on each flow to check its signal before the first await would let one that does not hang holding the key. | 29 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
docs: refresh Agent Teams catalogs | 30 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
refactor(infra): keep Codex notices direct | 1 个月前 | |
feat(studio): 集成 Harness 0.1.1-rc.2 视觉与 Files 能力 (#19) * docs(llm): anchor unified request-image management design PR * refactor(attachment): saveImage returns the canonical ref beside source facts AttachmentStore.saveImage now resolves SavedImageAttachment: the durable reference paired with the submitted raster's intrinsic facts, so a store may persist a canonical re-encoding while callers keep the source dimensions for coordinate mapping. saveImages keeps returning refs; every fake store and the cordis API catalog follow the new signature. * feat(attachment-local): store a deterministic canonical image encoding Admission now validates a wide source envelope (32MiB, 100MP, 16384px per side) and persists a canonical encoding instead of refusing large sources: EXIF orientation baked in, metadata stripped, long edge downscaled to the configured canonical target (default 2048px), PNG palette for alpha/PNG/GIF sources and a fixed JPEG quality ladder (85/75/60/45) until the canonical byte target holds (default 1MiB). In-budget PNG/JPEG/WebP passes through byte-identically so equal sources keep deduplicating to the same content address; GIF always re-encodes to the PNG of its first frame, pinning the first-frame meaning providers apply. Encoder parameters are fixed by design; only the canonical budget is deployment configuration. * feat(tool-fs): read_image reports downscaled dimensions and coordinate scale When the attachment store's canonical encoding shrinks the file on disk, the read_image envelope names the original dimensions and the multiplier that maps coordinates measured on the attached image back onto the file, and the output schema carries sourceWidth/sourceHeight for programmatic callers. * fix(attachment-local): keep reference field order stable for logged fixtures The canonical ref serializes mediaType, width, height, bytes in the order the pre-canonicalization store used, so existing session-log fixtures and logged histories keep byte-identical reference JSON. * docs(attachment): document canonical admission; pin wide-image acceptance snapshot READMEs (both languages) describe the wide source envelope, the canonical encoding and its fixed encoder parameters, and read_image's downscale envelope; tool/config catalogs regenerate for the new schema and Config fields. The read-image-dimension scenario now pins the acceptance the old 2000px admission cap refused: the 2001x1 source is admitted and stored byte-identically, so the fixture stays platform-independent. * docs(notes): record the canonical image admission decision * docs: bring the zh config catalog along; pin read_image source fields in the code-mode prompt sidecar * fix(attachment-local): exclude metadata carriers and animation from passthrough; validate the canonical budget up front Review-round hardening of canonical admission: - passthrough now requires a single-frame source free of EXIF/XMP/IPTC metadata, so location/device metadata never enters durable storage and stored dimensions always describe the perceived pixels; animated WebP joins GIF on the always-re-encode path (first frame only) - SourceImageInfo records orientation-applied dimensions, keeping source and stored raster on shared axes for coordinate mapping - validateImage runs a canonical-encoding dry run, so a validated batch can no longer be refused mid-write by the byte target (no partial writes) - read_image names per-axis multipliers when rounding splits the two ratios and maps IMAGE_TOO_LARGE to actionable downscale guidance * docs: propose attachment read quarantine * feat(images): unify master and Files request pipeline * chore(images): align merged runtime closure * fix(images): parse listed missing Files ids * docs: refresh image pipeline module graph * fix(images): address unified pipeline review * test(images): cover attachment projection edges * feat(images): expand source upload envelope * test(images): close unified pipeline coverage gaps * test(deepseek): expose Files API e2e failures * test(deepseek): print vision failure facts * refactor(image): remove region reads * refactor(attachment): normalize image storage API * test(composition): remove retired image-region tool * docs(i18n): fix rebased image note links * test(snapshot): stabilize persisted-turn coverage * Revert "Merge pull request #2608 from deepseek-harness/fix/permission-copy-and-default" This reverts commit d51f4106a2b0669d33e0f5dc1d5dcf21a764d313, reversing changes made to 69ace51625b6ac665b2f2ec1e81005d5b055f152. * test: sync reverted permission snapshot * fix(attachment): accept opaque WebP alpha omission * fix(llm-deepseek): fall back when Files resolution fails * fix(deepseek): decouple files and stream timeouts * release(dsh): 0.1.1-rc.2 * feat(studio): integrate Harness rc.2 vision runtime * fix(studio): align rc.2 source resolution and web snapshots * fix(desktop): close rc.2 packaged runtime peers * fix(desktop): harden pnpm 11 runtime staging * ci(desktop): smoke packaged Windows Sharp runtime * fix(ci): wait for packaged Sharp smoke * test(desktop): verify installed Windows V4 Vision * ci(windows): tolerate runner install variance * ci(windows): launch vision driver with pinned node * fix(desktop): move brand badge into sidebar footer * fix(release): align Studio package versions with rc.2 * fix(ci): reconcile Studio cross-platform release gates * fix(ci): isolate Studio patch from Python runtime deploy * feat(desktop): support self-hosted vision providers * chore(ci): retain Studio release ownership * feat(desktop): prepare rc.15 vision and app fixes * fix(studio): reconcile rc2 with current desktop behavior * fix(studio): preserve model switching across image history * test(studio): align visual provider fixtures * test(web): restore artifacts after HMR validation * docs(testing): record HMR artifact restoration * fix(studio): satisfy rc2 package contracts --------- Co-authored-by: creatixchu <creatixchu@deepseek.com> Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com> Co-authored-by: CreatixChu <142372241+CreatixChu@users.noreply.github.com> Co-authored-by: imccyu <cc.yu@deepseek.com> Co-authored-by: Jiutian Lecture Lab Evolver <evolver@jiutian.local> Co-authored-by: Beyondata <172011122+fufankeji@users.noreply.github.com> | 27 天前 | |
fix(i18n): bind localized links to active pairs | 1 个月前 | |
fix(ci): stabilize latest-master acceptance gates | 1 个月前 | |
perf(ci): parallelize coverage and web snapshots in-job | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(locale): tighten parity gate and correct copy-source wording Address the three open review threads on the dictionary parity gate. Regex/TEXT: localeOf now requires an uppercase ASCII [A-Z] flat-letter at the third position of a name-prefix shape, so zh2Foo/zh_probe are no longer treated as dictionaries in localeOf while the admission pre-filter skips them. The two now agree exactly. register detection now also admits a bare register identifier callee in addition to a property access, covering a future destructured register(NS, 'zh'|'en', dict) call instead of silently dropping it. A 3-arg register whose dictionary argument is a local variable is resolved through module-scope const initializers; one that cannot be resolved to an object literal makes the gate refuse with a named error rather than skipping the registration and narrowing the sweep. Also restate the FALLBACK_LOCALE rationale: the residual case points at English because a browser naming neither shipped language is the reader least likely to read Chinese, not because English is the copy's source language (Chinese is; packages/client/AGENTS.md). Sync the identical claim in the bilingual Agent Note and re-record its .i18n.yaml pairing. | 1 个月前 | |
fix(i18n): share Markdown link parsing | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(i18n): bind localized links to active pairs | 1 个月前 | |
test: omit persistence envelopes from session snapshots | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(build): support standalone pnpm entrypoints | 28 天前 | |
fix(build): support standalone pnpm entrypoints | 28 天前 | |
fix(sandbox): isolate bwrap PID namespace | 29 天前 | |
docs(notes): localize zh note links and widen the closure walk timeout The localized-link pairing rule that landed on master requires Chinese notes to link Chinese counterparts; fix this PR's note and the composer-edit-range note the rule landed after, so the merge ref passes the gate. The full-manifest closure walk gets an explicit timeout: coverage instrumentation on a loaded runner pushes it past vitest's 5s default. Refs #2846. | 29 天前 | |
docs(website): serve index routes at their clean-URL .md addresses Each index route also emits a parent-level alias twin, projected over the alias route so its relative links stay correct; llms.txt and the docs now state the drop-trailing-slash convention exactly. Frontmatter failures name their page, the twin pass refuses to overwrite existing build files, the dev middleware documents the deliberate in-page fetch() divergence, and the per-locale collection order moves to one shared export. Refs #2846. | 29 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
build(client): enforce client package boundaries | 1 个月前 | |
build(client): enforce client package boundaries | 1 个月前 | |
merge: integrate DeepSeek Harness rc8 upstream | 29 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(client): preserve dependency boundary cleanup | 1 个月前 | |
perf(ci): parallelize coverage and web snapshots in-job | 1 个月前 | |
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2739 # Conflicts: # scripts/run-gates.spec.ts | 28 天前 | |
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2739 # Conflicts: # scripts/run-gates.spec.ts | 28 天前 | |
fix(ci): preserve oxlint diagnostic locations | 30 天前 | |
fix(ci): preserve oxlint diagnostic locations | 30 天前 | |
fix(build): support standalone pnpm entrypoints | 28 天前 | |
test: omit persistence envelopes from session snapshots | 1 个月前 | |
refactor(test): keep session fixture projection local | 30 天前 | |
refactor(test): keep session fixture projection local | 30 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2702 # Conflicts: # examples/acp-agent/tests/snapshots/product-subagent-result-diagnostic/session.jsonl | 30 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(attachment): refuse oversized image sides at admission An image with a side above the deployed routes' 2000px many-image bound could be durably committed by read_image, ride every later request, and permanently fail the session with provider 400s. Admission now enforces a configurable maxImageDimension (default 2000) during the full decode, so read_image surfaces a recoverable tool error naming the limit instead of poisoning durable history; the Web composer gets dedicated copy for the new IMAGE_DIMENSION_TOO_LARGE reason. Fixes #2626 | 1 个月前 | |
fix(i18n): align translation briefing link rules | 1 个月前 | |
fix(i18n): align translation briefing link rules | 1 个月前 | |
test(i18n): model reserved paths portably | 1 个月前 | |
fix(i18n): encode exact link paths safely | 1 个月前 | |
fix(i18n): resolve merge and Markdown edge cases | 1 个月前 | |
fix(i18n): resolve merge and Markdown edge cases | 1 个月前 | |
fix(i18n): resolve merge and Markdown edge cases | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
docs: make Chinese the default README | 1 个月前 | |
Merge remote-tracking branch 'origin/master' into codex/localized-chinese-doc-links # Conflicts: # .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml # .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md # .agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml # .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml # .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md # .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.i18n.yaml # .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.zh.md # .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.i18n.yaml # .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.zh.md # .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml # .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md # .agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml # .agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml # .agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md # .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml # .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md # .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml # .agents/notes/implemented/feature/2026-07-31-permission-default-for-new-sessions.i18n.yaml # .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml # .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.zh.md # .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml # .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md # .agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml # .agents/notes/implemented/feature/2026-08-05-agent-teams.zh.md # .agents/notes/implemented/feature/2026-08-11-workspace-sidebar-order-and-folding.i18n.yaml # .agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml # .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml # .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.zh.md # .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.i18n.yaml # .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.zh.md # .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.i18n.yaml # .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.zh.md # .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml # .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.zh.md # .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml # .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md # .agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml # README.i18n.yaml # README.zh.md # docs/architecture.i18n.yaml # docs/architecture.zh.md # docs/development.i18n.yaml # docs/development.zh.md # docs/persistence-catalog.i18n.yaml # docs/persistence-catalog.zh.md # docs/subsystems/README.i18n.yaml # docs/subsystems/README.zh.md # docs/subsystems/agent-team.i18n.yaml # docs/subsystems/agent-team.zh.md # docs/subsystems/client-modules.i18n.yaml # docs/subsystems/client-modules.zh.md # docs/subsystems/commands.i18n.yaml # docs/subsystems/commands.zh.md # docs/subsystems/persistence.i18n.yaml # docs/subsystems/persistence.zh.md # docs/subsystems/session-reference.i18n.yaml # docs/tool-catalog.i18n.yaml # docs/tool-catalog.zh.md # docs/user/guide/providers.i18n.yaml # docs/user/guide/providers.zh.md # packages/README.i18n.yaml # packages/README.zh.md # packages/bundle/web-app/README.i18n.yaml # packages/bundle/web-app/README.zh.md # packages/client/README.i18n.yaml # packages/client/README.zh.md # packages/client/connection/README.i18n.yaml # packages/client/connection/README.zh.md # packages/client/ui-conversation/README.i18n.yaml # packages/client/ui-conversation/README.zh.md # packages/client/ui-primitives/README.i18n.yaml # packages/client/ui-primitives/README.zh.md # packages/client/ui-sidebar/README.i18n.yaml # packages/client/ui-sidebar/README.zh.md # packages/client/ui-workspace/README.i18n.yaml # packages/client/ui-workspace/README.zh.md # packages/context/README.i18n.yaml # packages/context/README.zh.md # packages/core/agent-loop/README.i18n.yaml # packages/credentials/README.i18n.yaml # packages/credentials/README.zh.md # packages/experimental/agent-team/README.i18n.yaml # packages/experimental/agent-team/README.zh.md # packages/experimental/tool-agent-team/README.i18n.yaml # packages/experimental/tool-agent-team/README.zh.md # packages/host/frontend-static/README.i18n.yaml # packages/host/frontend-static/README.zh.md # packages/host/webserver/README.i18n.yaml # packages/host/webserver/README.zh.md # packages/interaction/commands/README.i18n.yaml # packages/interaction/commands/README.zh.md # packages/plan/plan-mode/README.i18n.yaml # packages/plan/plan-mode/README.zh.md # packages/sandbox/sandbox-local/README.i18n.yaml # packages/sandbox/sandbox-local/README.zh.md # packages/session/README.i18n.yaml # packages/session/README.zh.md # packages/session/session-persistence-sqlite/README.i18n.yaml # packages/session/session-persistence-sqlite/README.zh.md # packages/session/session-projection-cache/README.i18n.yaml # packages/session/session-projection-cache/README.zh.md # packages/shell/tool-pwsh/README.i18n.yaml # packages/shell/tool-pwsh/README.zh.md # packages/subagent/subagent-codex/README.i18n.yaml # packages/subagent/subagent-codex/README.zh.md # packages/subagent/subagent/README.i18n.yaml # packages/subagent/subagent/README.zh.md # packages/web/tool-web/README.i18n.yaml # packages/web/tool-web/README.zh.md # scripts/snapshots/translation-prompt-v4/request-response.expected.json | 29 天前 | |
Merge remote-tracking branch 'origin/master' into codex/localized-chinese-doc-links # Conflicts: # .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.i18n.yaml # .agents/notes/implemented/architecture/2026-06-11-content-block-vocabulary.zh.md # .agents/notes/implemented/architecture/2026-06-18-shared-persistence-write-coordinator.i18n.yaml # .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.i18n.yaml # .agents/notes/implemented/architecture/2026-07-10-single-file-executable-sdk-runtime-distribution.zh.md # .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.i18n.yaml # .agents/notes/implemented/bug-fix/2026-07-29-pnpm-setup-runner-isolation.zh.md # .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.i18n.yaml # .agents/notes/implemented/bug-fix/2026-08-18-request-image-payload-bound.zh.md # .agents/notes/implemented/feature/2026-07-06-sandbox.i18n.yaml # .agents/notes/implemented/feature/2026-07-06-sandbox.zh.md # .agents/notes/implemented/feature/2026-07-16-persistent-pty-sessions.i18n.yaml # .agents/notes/implemented/feature/2026-07-21-cross-session-references.i18n.yaml # .agents/notes/implemented/feature/2026-07-21-cross-session-references.zh.md # .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.i18n.yaml # .agents/notes/implemented/feature/2026-07-22-web-multimodal-image-input-and-durable-attachments.zh.md # .agents/notes/implemented/feature/2026-07-27-web-subagent-conversations.i18n.yaml # .agents/notes/implemented/feature/2026-07-31-permission-default-for-new-sessions.i18n.yaml # .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.i18n.yaml # .agents/notes/implemented/feature/2026-08-03-web-search-source-scroll.zh.md # .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.i18n.yaml # .agents/notes/implemented/feature/2026-08-04-claude-code-and-codex-subagent-backends.zh.md # .agents/notes/implemented/feature/2026-08-05-agent-teams.i18n.yaml # .agents/notes/implemented/feature/2026-08-05-agent-teams.zh.md # .agents/notes/implemented/feature/2026-08-11-workspace-sidebar-order-and-folding.i18n.yaml # .agents/notes/implemented/feature/2026-08-15-product-subagent-noninteractive-permissions.i18n.yaml # .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.i18n.yaml # .agents/notes/implemented/process/2026-07-21-serial-cross-platform-ci-reference.zh.md # .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.i18n.yaml # .agents/notes/implemented/process/2026-07-22-evidence-based-larger-hosted-runners.zh.md # .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.i18n.yaml # .agents/notes/implemented/process/2026-07-23-portable-required-pull-request-ci.zh.md # .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.i18n.yaml # .agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.zh.md # .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.i18n.yaml # .agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md # .agents/notes/proposed/architecture/2026-07-27-session-projection-and-command-log.i18n.yaml # README.i18n.yaml # README.zh.md # docs/architecture.i18n.yaml # docs/architecture.zh.md # docs/development.i18n.yaml # docs/development.zh.md # docs/persistence-catalog.i18n.yaml # docs/persistence-catalog.zh.md # docs/subsystems/README.i18n.yaml # docs/subsystems/README.zh.md # docs/subsystems/agent-team.i18n.yaml # docs/subsystems/agent-team.zh.md # docs/subsystems/client-modules.i18n.yaml # docs/subsystems/client-modules.zh.md # docs/subsystems/commands.i18n.yaml # docs/subsystems/commands.zh.md # docs/subsystems/persistence.i18n.yaml # docs/subsystems/persistence.zh.md # docs/subsystems/session-reference.i18n.yaml # docs/tool-catalog.i18n.yaml # docs/tool-catalog.zh.md # docs/user/guide/providers.i18n.yaml # docs/user/guide/providers.zh.md # packages/README.i18n.yaml # packages/README.zh.md # packages/bundle/web-app/README.i18n.yaml # packages/bundle/web-app/README.zh.md # packages/client/README.i18n.yaml # packages/client/README.zh.md # packages/client/connection/README.i18n.yaml # packages/client/connection/README.zh.md # packages/client/ui-conversation/README.i18n.yaml # packages/client/ui-conversation/README.zh.md # packages/client/ui-primitives/README.i18n.yaml # packages/client/ui-primitives/README.zh.md # packages/client/ui-sidebar/README.i18n.yaml # packages/client/ui-sidebar/README.zh.md # packages/client/ui-workspace/README.i18n.yaml # packages/client/ui-workspace/README.zh.md # packages/context/README.i18n.yaml # packages/context/README.zh.md # packages/core/agent-loop/README.i18n.yaml # packages/credentials/README.i18n.yaml # packages/credentials/README.zh.md # packages/experimental/agent-team/README.i18n.yaml # packages/experimental/agent-team/README.zh.md # packages/experimental/tool-agent-team/README.i18n.yaml # packages/experimental/tool-agent-team/README.zh.md # packages/host/frontend-static/README.i18n.yaml # packages/host/frontend-static/README.zh.md # packages/host/webserver/README.i18n.yaml # packages/host/webserver/README.zh.md # packages/interaction/commands/README.i18n.yaml # packages/interaction/commands/README.zh.md # packages/plan/plan-mode/README.i18n.yaml # packages/plan/plan-mode/README.zh.md # packages/sandbox/sandbox-local/README.i18n.yaml # packages/sandbox/sandbox-local/README.zh.md # packages/session/README.i18n.yaml # packages/session/README.zh.md # packages/session/session-persistence-sqlite/README.i18n.yaml # packages/session/session-persistence-sqlite/README.zh.md # packages/session/session-projection-cache/README.i18n.yaml # packages/session/session-projection-cache/README.zh.md # packages/shell/tool-pwsh/README.i18n.yaml # packages/shell/tool-pwsh/README.zh.md # packages/subagent/subagent-codex/README.i18n.yaml # packages/subagent/subagent-codex/README.zh.md # packages/subagent/subagent/README.i18n.yaml # packages/subagent/subagent/README.zh.md # packages/web/tool-web/README.i18n.yaml # packages/web/tool-web/README.zh.md # scripts/snapshots/translation-prompt-v4/request-response.expected.json | 29 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(i18n): bind localized links to active pairs | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
feat(release): reject a module-scope load of an optional dependency A dependency in optionalDependencies, or a peer carrying peerDependenciesMeta.<name>.optional, may be absent from an installed tree — that absence is the whole promise of "optional". A static import is evaluated when the importing module loads, so one absent package stops being "this capability is unavailable" and becomes a load failure for everything that reaches the importing module. Nothing checked it, and nothing here could: the failure needs an installed tree missing that package, and a workspace install always has every package, so the unit tests, the snapshots, and the packed-install probe all pass while the published package is broken for the consumer who declined the optional peer. verify-optional-dependency-imports reads each package's own manifest for what it allows to be absent, then scans the files that ship across both compiler faces. Value-versus-type is decided against a bound Program rather than the import syntax, because verbatimModuleSyntax is off: the compiler already erases an import whose bindings resolve to types, so a syntactic rule would report four forms that emit nothing. Only the type phase erases an import — `import defer` still resolves and links its module, deferring evaluation alone — which is what phaseModifier expresses and the deprecated isTypeOnly cannot. A violation names the package, the declaration that made it optional, and the way out in order: import it as a type, or restructure so module scope does not need it. A dynamic import() only moves the failure to first use, so the gate does not offer it as the remedy. The gate runs in ci-static and ci-primary through ciSharedStaticGates and locally in hygiene; it needs no build. TypeScriptProject gained a face parameter so a repository-wide gate can seed the client aggregate, which was previously unreachable; the constraint it was built with is unchanged, a face config and never the root solution. The tree has no violation today, so this guards the rule rather than fixing a defect. The spec pins all seven import forms against what tsc emits, including the four a syntactic rule would misreport. | 1 个月前 | |
feat(studio): 集成 Harness 0.1.1-rc.2 视觉与 Files 能力 (#19) * docs(llm): anchor unified request-image management design PR * refactor(attachment): saveImage returns the canonical ref beside source facts AttachmentStore.saveImage now resolves SavedImageAttachment: the durable reference paired with the submitted raster's intrinsic facts, so a store may persist a canonical re-encoding while callers keep the source dimensions for coordinate mapping. saveImages keeps returning refs; every fake store and the cordis API catalog follow the new signature. * feat(attachment-local): store a deterministic canonical image encoding Admission now validates a wide source envelope (32MiB, 100MP, 16384px per side) and persists a canonical encoding instead of refusing large sources: EXIF orientation baked in, metadata stripped, long edge downscaled to the configured canonical target (default 2048px), PNG palette for alpha/PNG/GIF sources and a fixed JPEG quality ladder (85/75/60/45) until the canonical byte target holds (default 1MiB). In-budget PNG/JPEG/WebP passes through byte-identically so equal sources keep deduplicating to the same content address; GIF always re-encodes to the PNG of its first frame, pinning the first-frame meaning providers apply. Encoder parameters are fixed by design; only the canonical budget is deployment configuration. * feat(tool-fs): read_image reports downscaled dimensions and coordinate scale When the attachment store's canonical encoding shrinks the file on disk, the read_image envelope names the original dimensions and the multiplier that maps coordinates measured on the attached image back onto the file, and the output schema carries sourceWidth/sourceHeight for programmatic callers. * fix(attachment-local): keep reference field order stable for logged fixtures The canonical ref serializes mediaType, width, height, bytes in the order the pre-canonicalization store used, so existing session-log fixtures and logged histories keep byte-identical reference JSON. * docs(attachment): document canonical admission; pin wide-image acceptance snapshot READMEs (both languages) describe the wide source envelope, the canonical encoding and its fixed encoder parameters, and read_image's downscale envelope; tool/config catalogs regenerate for the new schema and Config fields. The read-image-dimension scenario now pins the acceptance the old 2000px admission cap refused: the 2001x1 source is admitted and stored byte-identically, so the fixture stays platform-independent. * docs(notes): record the canonical image admission decision * docs: bring the zh config catalog along; pin read_image source fields in the code-mode prompt sidecar * fix(attachment-local): exclude metadata carriers and animation from passthrough; validate the canonical budget up front Review-round hardening of canonical admission: - passthrough now requires a single-frame source free of EXIF/XMP/IPTC metadata, so location/device metadata never enters durable storage and stored dimensions always describe the perceived pixels; animated WebP joins GIF on the always-re-encode path (first frame only) - SourceImageInfo records orientation-applied dimensions, keeping source and stored raster on shared axes for coordinate mapping - validateImage runs a canonical-encoding dry run, so a validated batch can no longer be refused mid-write by the byte target (no partial writes) - read_image names per-axis multipliers when rounding splits the two ratios and maps IMAGE_TOO_LARGE to actionable downscale guidance * docs: propose attachment read quarantine * feat(images): unify master and Files request pipeline * chore(images): align merged runtime closure * fix(images): parse listed missing Files ids * docs: refresh image pipeline module graph * fix(images): address unified pipeline review * test(images): cover attachment projection edges * feat(images): expand source upload envelope * test(images): close unified pipeline coverage gaps * test(deepseek): expose Files API e2e failures * test(deepseek): print vision failure facts * refactor(image): remove region reads * refactor(attachment): normalize image storage API * test(composition): remove retired image-region tool * docs(i18n): fix rebased image note links * test(snapshot): stabilize persisted-turn coverage * Revert "Merge pull request #2608 from deepseek-harness/fix/permission-copy-and-default" This reverts commit d51f4106a2b0669d33e0f5dc1d5dcf21a764d313, reversing changes made to 69ace51625b6ac665b2f2ec1e81005d5b055f152. * test: sync reverted permission snapshot * fix(attachment): accept opaque WebP alpha omission * fix(llm-deepseek): fall back when Files resolution fails * fix(deepseek): decouple files and stream timeouts * release(dsh): 0.1.1-rc.2 * feat(studio): integrate Harness rc.2 vision runtime * fix(studio): align rc.2 source resolution and web snapshots * fix(desktop): close rc.2 packaged runtime peers * fix(desktop): harden pnpm 11 runtime staging * ci(desktop): smoke packaged Windows Sharp runtime * fix(ci): wait for packaged Sharp smoke * test(desktop): verify installed Windows V4 Vision * ci(windows): tolerate runner install variance * ci(windows): launch vision driver with pinned node * fix(desktop): move brand badge into sidebar footer * fix(release): align Studio package versions with rc.2 * fix(ci): reconcile Studio cross-platform release gates * fix(ci): isolate Studio patch from Python runtime deploy * feat(desktop): support self-hosted vision providers * chore(ci): retain Studio release ownership * feat(desktop): prepare rc.15 vision and app fixes * fix(studio): reconcile rc2 with current desktop behavior * fix(studio): preserve model switching across image history * test(studio): align visual provider fixtures * test(web): restore artifacts after HMR validation * docs(testing): record HMR artifact restoration * fix(studio): satisfy rc2 package contracts --------- Co-authored-by: creatixchu <creatixchu@deepseek.com> Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com> Co-authored-by: CreatixChu <142372241+CreatixChu@users.noreply.github.com> Co-authored-by: imccyu <cc.yu@deepseek.com> Co-authored-by: Jiutian Lecture Lab Evolver <evolver@jiutian.local> Co-authored-by: Beyondata <172011122+fufankeji@users.noreply.github.com> | 27 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(client): tighten UI ownership boundaries | 1 个月前 | |
fix(client): tighten UI ownership boundaries | 1 个月前 | |
fix(client): harden bootstrap invariants | 1 个月前 | |
fix(ci): satisfy client script quality gates | 1 个月前 | |
feat(subagent): make Claude Code provider directly installable | 1 个月前 | |
feat(subagent): make product providers directly installable | 1 个月前 | |
review fix: trim duplicate closure evidence | 1 个月前 | |
Merge pull request #2554 from deepseek-harness/feat/python-sdk-standard-agent-runtime feat(python-sdk): support bundled preset runtime dependencies | 30 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
docs(website): serve every page as raw Markdown with an llms.txt index Append .md to any published route for the page as plain Markdown: the build emits a raw-Markdown twin of every route (frontmatter dropped, home bodies kept, images beside pages) plus a manifest-generated llms.txt, the dev server serves both per request, and the post-build gate fails when either is missing. Fixes #2846. | 29 天前 | |
docs(website): serve index routes at their clean-URL .md addresses Each index route also emits a parent-level alias twin, projected over the alias route so its relative links stay correct; llms.txt and the docs now state the drop-trailing-slash convention exactly. Frontmatter failures name their page, the twin pass refuses to overwrite existing build files, the dev middleware documents the deliberate in-page fetch() divergence, and the per-locale collection order moves to one shared export. Refs #2846. | 29 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
docs: make Chinese the default README | 1 个月前 | |
docs: make Chinese the default README | 1 个月前 | |
docs: make Chinese the default README | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
feat(release): reject a module-scope load of an optional dependency A dependency in optionalDependencies, or a peer carrying peerDependenciesMeta.<name>.optional, may be absent from an installed tree — that absence is the whole promise of "optional". A static import is evaluated when the importing module loads, so one absent package stops being "this capability is unavailable" and becomes a load failure for everything that reaches the importing module. Nothing checked it, and nothing here could: the failure needs an installed tree missing that package, and a workspace install always has every package, so the unit tests, the snapshots, and the packed-install probe all pass while the published package is broken for the consumer who declined the optional peer. verify-optional-dependency-imports reads each package's own manifest for what it allows to be absent, then scans the files that ship across both compiler faces. Value-versus-type is decided against a bound Program rather than the import syntax, because verbatimModuleSyntax is off: the compiler already erases an import whose bindings resolve to types, so a syntactic rule would report four forms that emit nothing. Only the type phase erases an import — `import defer` still resolves and links its module, deferring evaluation alone — which is what phaseModifier expresses and the deprecated isTypeOnly cannot. A violation names the package, the declaration that made it optional, and the way out in order: import it as a type, or restructure so module scope does not need it. A dynamic import() only moves the failure to first use, so the gate does not offer it as the remedy. The gate runs in ci-static and ci-primary through ciSharedStaticGates and locally in hygiene; it needs no build. TypeScriptProject gained a face parameter so a repository-wide gate can seed the client aggregate, which was previously unreachable; the constraint it was built with is unchanged, a face config and never the root solution. The tree has no violation today, so this guards the rule rather than fixing a defect. The spec pins all seven import forms against what tsc emits, including the four a syntactic rule would misreport. | 1 个月前 | |
feat(release): reject a module-scope load of an optional dependency A dependency in optionalDependencies, or a peer carrying peerDependenciesMeta.<name>.optional, may be absent from an installed tree — that absence is the whole promise of "optional". A static import is evaluated when the importing module loads, so one absent package stops being "this capability is unavailable" and becomes a load failure for everything that reaches the importing module. Nothing checked it, and nothing here could: the failure needs an installed tree missing that package, and a workspace install always has every package, so the unit tests, the snapshots, and the packed-install probe all pass while the published package is broken for the consumer who declined the optional peer. verify-optional-dependency-imports reads each package's own manifest for what it allows to be absent, then scans the files that ship across both compiler faces. Value-versus-type is decided against a bound Program rather than the import syntax, because verbatimModuleSyntax is off: the compiler already erases an import whose bindings resolve to types, so a syntactic rule would report four forms that emit nothing. Only the type phase erases an import — `import defer` still resolves and links its module, deferring evaluation alone — which is what phaseModifier expresses and the deprecated isTypeOnly cannot. A violation names the package, the declaration that made it optional, and the way out in order: import it as a type, or restructure so module scope does not need it. A dynamic import() only moves the failure to first use, so the gate does not offer it as the remedy. The gate runs in ci-static and ci-primary through ciSharedStaticGates and locally in hygiene; it needs no build. TypeScriptProject gained a face parameter so a repository-wide gate can seed the client aggregate, which was previously unreachable; the constraint it was built with is unchanged, a face config and never the root solution. The tree has no violation today, so this guards the rule rather than fixing a defect. The spec pins all seven import forms against what tsc emits, including the four a syntactic rule would misreport. | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
merge: adapt DeepSeek Harness v0.1.1-rc.1 | 28 天前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(python-sdk): make runtime readiness explicit | 1 个月前 | |
fix(python-sdk): make runtime readiness explicit | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
fix(i18n): bind localized links to active pairs | 1 个月前 | |
docs: make Chinese the default README | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
chore: import 0.1.0-rc.5 handoff baseline | 1 个月前 | |
feat(studio): 集成 Harness 0.1.1-rc.2 视觉与 Files 能力 (#19) * docs(llm): anchor unified request-image management design PR * refactor(attachment): saveImage returns the canonical ref beside source facts AttachmentStore.saveImage now resolves SavedImageAttachment: the durable reference paired with the submitted raster's intrinsic facts, so a store may persist a canonical re-encoding while callers keep the source dimensions for coordinate mapping. saveImages keeps returning refs; every fake store and the cordis API catalog follow the new signature. * feat(attachment-local): store a deterministic canonical image encoding Admission now validates a wide source envelope (32MiB, 100MP, 16384px per side) and persists a canonical encoding instead of refusing large sources: EXIF orientation baked in, metadata stripped, long edge downscaled to the configured canonical target (default 2048px), PNG palette for alpha/PNG/GIF sources and a fixed JPEG quality ladder (85/75/60/45) until the canonical byte target holds (default 1MiB). In-budget PNG/JPEG/WebP passes through byte-identically so equal sources keep deduplicating to the same content address; GIF always re-encodes to the PNG of its first frame, pinning the first-frame meaning providers apply. Encoder parameters are fixed by design; only the canonical budget is deployment configuration. * feat(tool-fs): read_image reports downscaled dimensions and coordinate scale When the attachment store's canonical encoding shrinks the file on disk, the read_image envelope names the original dimensions and the multiplier that maps coordinates measured on the attached image back onto the file, and the output schema carries sourceWidth/sourceHeight for programmatic callers. * fix(attachment-local): keep reference field order stable for logged fixtures The canonical ref serializes mediaType, width, height, bytes in the order the pre-canonicalization store used, so existing session-log fixtures and logged histories keep byte-identical reference JSON. * docs(attachment): document canonical admission; pin wide-image acceptance snapshot READMEs (both languages) describe the wide source envelope, the canonical encoding and its fixed encoder parameters, and read_image's downscale envelope; tool/config catalogs regenerate for the new schema and Config fields. The read-image-dimension scenario now pins the acceptance the old 2000px admission cap refused: the 2001x1 source is admitted and stored byte-identically, so the fixture stays platform-independent. * docs(notes): record the canonical image admission decision * docs: bring the zh config catalog along; pin read_image source fields in the code-mode prompt sidecar * fix(attachment-local): exclude metadata carriers and animation from passthrough; validate the canonical budget up front Review-round hardening of canonical admission: - passthrough now requires a single-frame source free of EXIF/XMP/IPTC metadata, so location/device metadata never enters durable storage and stored dimensions always describe the perceived pixels; animated WebP joins GIF on the always-re-encode path (first frame only) - SourceImageInfo records orientation-applied dimensions, keeping source and stored raster on shared axes for coordinate mapping - validateImage runs a canonical-encoding dry run, so a validated batch can no longer be refused mid-write by the byte target (no partial writes) - read_image names per-axis multipliers when rounding splits the two ratios and maps IMAGE_TOO_LARGE to actionable downscale guidance * docs: propose attachment read quarantine * feat(images): unify master and Files request pipeline * chore(images): align merged runtime closure * fix(images): parse listed missing Files ids * docs: refresh image pipeline module graph * fix(images): address unified pipeline review * test(images): cover attachment projection edges * feat(images): expand source upload envelope * test(images): close unified pipeline coverage gaps * test(deepseek): expose Files API e2e failures * test(deepseek): print vision failure facts * refactor(image): remove region reads * refactor(attachment): normalize image storage API * test(composition): remove retired image-region tool * docs(i18n): fix rebased image note links * test(snapshot): stabilize persisted-turn coverage * Revert "Merge pull request #2608 from deepseek-harness/fix/permission-copy-and-default" This reverts commit d51f4106a2b0669d33e0f5dc1d5dcf21a764d313, reversing changes made to 69ace51625b6ac665b2f2ec1e81005d5b055f152. * test: sync reverted permission snapshot * fix(attachment): accept opaque WebP alpha omission * fix(llm-deepseek): fall back when Files resolution fails * fix(deepseek): decouple files and stream timeouts * release(dsh): 0.1.1-rc.2 * feat(studio): integrate Harness rc.2 vision runtime * fix(studio): align rc.2 source resolution and web snapshots * fix(desktop): close rc.2 packaged runtime peers * fix(desktop): harden pnpm 11 runtime staging * ci(desktop): smoke packaged Windows Sharp runtime * fix(ci): wait for packaged Sharp smoke * test(desktop): verify installed Windows V4 Vision * ci(windows): tolerate runner install variance * ci(windows): launch vision driver with pinned node * fix(desktop): move brand badge into sidebar footer * fix(release): align Studio package versions with rc.2 * fix(ci): reconcile Studio cross-platform release gates * fix(ci): isolate Studio patch from Python runtime deploy * feat(desktop): support self-hosted vision providers * chore(ci): retain Studio release ownership * feat(desktop): prepare rc.15 vision and app fixes * fix(studio): reconcile rc2 with current desktop behavior * fix(studio): preserve model switching across image history * test(studio): align visual provider fixtures * test(web): restore artifacts after HMR validation * docs(testing): record HMR artifact restoration * fix(studio): satisfy rc2 package contracts --------- Co-authored-by: creatixchu <creatixchu@deepseek.com> Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com> Co-authored-by: CreatixChu <142372241+CreatixChu@users.noreply.github.com> Co-authored-by: imccyu <cc.yu@deepseek.com> Co-authored-by: Jiutian Lecture Lab Evolver <evolver@jiutian.local> Co-authored-by: Beyondata <172011122+fufankeji@users.noreply.github.com> | 27 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 28 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 29 天前 | ||
| 27 天前 | ||
| 30 天前 | ||
| 30 天前 | ||
| 29 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 28 天前 | ||
| 29 天前 | ||
| 29 天前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 28 天前 | ||
| 30 天前 | ||
| 30 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 27 天前 |