| fix(desktop): tolerate BOM in profile manifests | 4 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| fix(desktop): replace preview installs without old uninstaller | 9 天前 |
| fix(desktop): tolerate BOM in profile manifests | 4 天前 |
| merge: integrate DeepSeek Harness rc8 upstream | 16 天前 |
| 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> | 14 天前 |
| 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> | 14 天前 |
| fix(desktop): tolerate BOM in profile manifests | 4 天前 |
| merge: integrate DeepSeek Harness rc8 upstream | 16 天前 |
| 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> | 14 天前 |
| 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> | 14 天前 |
| 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> | 14 天前 |
| 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> | 14 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| fix(llm-wiki): track frontend source libraries | 9 天前 |
| Support MCP in packaged Python runtime | 18 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| 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> | 14 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| docs: split brand guidelines into bilingual pair | 17 天前 |
| docs: split brand guidelines into bilingual pair | 17 天前 |
| docs: split brand guidelines into bilingual pair | 17 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| feat(desktop): expand community plugin discovery (#14) * feat(desktop): expand community plugin discovery * fix(desktop): harden catalog retry semantics * fix(build): include bundled wiki host types --------- Co-authored-by: Hsail <hsail@HsaildeMac-mini.local> Co-authored-by: Beyondata <172011122+fufankeji@users.noreply.github.com> | 17 天前 |
| docs: rebrand GitHub project as Studio | 21 天前 |
| chore(desktop): prepare rc.19 preview | 11 天前 |
| chore(desktop): prepare rc.19 preview | 11 天前 |
| merge: integrate DeepSeek Harness rc8 upstream | 16 天前 |
| feat(desktop): integrate Harness rc8 visual routing | 16 天前 |
| 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> | 14 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| 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> | 14 天前 |
| 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> | 14 天前 |
| merge: integrate DeepSeek Harness rc8 upstream | 16 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| feat(client): inject public build environment | 17 天前 |
| 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> | 14 天前 |
| merge: integrate DeepSeek Harness rc8 upstream | 16 天前 |
| merge: adapt DeepSeek Harness v0.1.1-rc.1 | 15 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| merge: integrate DeepSeek Harness rc8 upstream | 16 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |
| perf(ci): parallelize coverage and web snapshots in-job | 18 天前 |
| chore: import 0.1.0-rc.5 handoff baseline | 21 天前 |