deepseek-harness/scripts
imccyu 8d6f5164ab fix(release): make publication retry, space out, and skip what landed
A landlock publication failed with `E409 Failed to save packument` on the
second of three packages. The registry answers a write it could not commit that
way, and publishing several packages back to back is what provokes it.

Neither publish path could recover. The native sequence published from a shell
loop of bare `npm publish` calls: no retry, and no way to resume, because the
registry rejects a repeat of an existing version permanently — so a failure
partway through left the release stuck. publish.ts skipped versions already
present, which made a re-run safe, but had no retry either.

Both paths now attempt a tarball up to four times, space writes at least two
seconds apart, and back off 2s/4s/8s between attempts. Every retry re-reads the
registry first, because a reported failure can answer a write that landed
anyway: a version that now exists with this tarball's integrity counts as
published rather than as one to place again. That same re-read is what turns a
mid-run `E403 cannot publish over the previously published versions` into a
skip when the bytes match, and leaves it a hard failure when they do not.

The native sequence gets the registry comparison publish.ts already had, through
its own script rather than shared code — the two sequences keep separate
publication paths. Its publish job now checks out the repository, which the
shell loop did not need.

Verified against a scripted registry: a clean publish, one E409 then success, an
E409 whose write landed anyway, E409 on every attempt (fails after four), and a
version already present with matching integrity (publishes nothing).
2026-08-13 15:31:09 +08:00
..
fixtures/translation-prompt
release fix(release): make publication retry, space out, and skip what landed 2026-08-13 15:31:09 +08:00
snapshots docs: capitalize Service Provider across repository 2026-08-13 13:31:30 +08:00
agent-note-tree.ts
AGENTS.md docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
archived-agent-notes.spec.ts
archived-agent-notes.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
attribute-chunk-bytes.mjs build(web): react-free vendor list for the incremental markdown pipeline, npmPackageOf scoped guard, chunk audit script 2026-08-06 16:38:25 +08:00
build-exe-for-python-sdk.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
build-python-release.py Adopt MIT for DSH packages 2026-08-13 13:07:24 +08:00
change-scope.spec.ts test(windows): budget instrumented integration waits 2026-08-09 16:39:41 +08:00
change-scope.ts
check-expected-filenames.sh
check-macos-deployment-target.py fix: address Python release review feedback 2026-08-11 20:09:33 +08:00
check-vendor-manifest.sh
check-workspace-constraints.ts build(release): publish the vendored framework and the native packages publicly 2026-08-13 14:05:48 +08:00
ci-workflow.spec.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
clean.spec.ts fix(clean): remove native build state (review round 3) 2026-08-06 11:11:57 +08:00
clean.ts fix(clean): remove native build state (review round 3) 2026-08-06 11:11:57 +08:00
client-bundle-css.spec.ts build: order Host and Client compilation faces 2026-08-08 04:20:39 +08:00
client-bundle-purity.spec.ts refactor: nest client manifest metadata under dsh 2026-08-10 21:11:09 +08:00
client-tsconfig.spec.ts fix: rebase 3 2026-08-13 02:29:17 +08:00
cordis-config-files.spec.ts
cordis-config-files.ts
cordis-core-api.spec.ts docs: generate each subsystem's cordis surface into its own page; delete the flat catalogs 2026-08-09 01:31:57 +08:00
cordis-core-api.ts refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
cordis-walk.ts build(vendor): rescope the vendored Cordis packages into @deepseek-ai 2026-08-10 22:04:13 +08:00
coverage-exempt.spec.ts fix(ci): review follow-ups for the coverage lane split 2026-07-31 02:55:37 +08:00
coverage-exempt.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
coverage-uncovered-locations.cjs ci: print exact uncovered locations when the coverage gate fails 2026-08-06 03:18:17 +08:00
demo-code-mode.mjs fix(cli): close shared config review gaps 2026-07-30 14:56:39 +08:00
demo-cordis.mjs feat(cli)!: dsh boots profiles; plugin subcommand manages them via pnpm 2026-08-06 06:29:06 +08:00
dev-web.spec.ts refactor: nest client manifest metadata under dsh 2026-08-10 21:11:09 +08:00
dev-web.ts refactor(web): remove --dev; mount the reload chain unconditionally 2026-08-11 18:01:25 +08:00
doc-budgets.manifest.json Merge remote-tracking branch 'origin/master' into worktree/schedule-conversational-after 2026-08-11 19:05:13 +08:00
doc-typecheck-paths.spec.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
doc-typecheck-paths.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
doc-typecheck.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
gen-client-catalog.spec.ts fix: ci 2026-08-13 01:33:31 +08:00
gen-client-catalog.ts fix: ci and static 2026-08-13 01:34:55 +08:00
gen-config-catalog.ts docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
gen-cordis-api.ts refactor(cordis): generate catalogs from Typert models 2026-07-29 23:55:12 +08:00
gen-cordis-catalog-partition.spec.ts build(vendor): rescope the vendored Cordis packages into @deepseek-ai 2026-08-10 22:04:13 +08:00
gen-cordis-catalog-record.spec.ts docs: generate each subsystem's cordis surface into its own page; delete the flat catalogs 2026-08-09 01:31:57 +08:00
gen-cordis-catalog.ts fix(session-query): rename session log export package 2026-08-13 05:02:00 +08:00
gen-cordis-inspect-catalog.ts • feat(self-modification): add dynamic Cordis plugin runtime and UI 2026-08-13 01:29:36 +08:00
gen-doc-graphs.spec.ts fix(scripts): share package-source selection to clear the jscpd clone 2026-07-30 19:57:17 +08:00
gen-doc-graphs.ts fix: test/docs 2026-08-13 01:30:49 +08:00
gen-module-graph.ts
gen-persistence-catalog.ts docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
gen-scoped-events.ts build(vendor): rescope the vendored Cordis packages into @deepseek-ai 2026-08-10 22:04:13 +08:00
gen-third-party-notices.spec.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
gen-third-party-notices.ts Adopt MIT for DSH packages 2026-08-13 13:07:24 +08:00
gen-tool-catalog.ts docs: fix release smoke test failures 2026-08-13 14:20:09 +08:00
gen-translation-brief.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
install-lefthook.mjs fix(i18n): preserve merge conflicts without runtime 2026-08-09 00:37:46 +08:00
install-lefthook.spec.ts fix: Windows-native CI findings on latest master 2026-08-13 15:16:11 +08:00
jsdoc.ts refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
lint-rule-fingerprint.spec.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
markdown.ts
merge-translation-pairing-driver.sh fix(i18n): preserve merge conflicts without runtime 2026-08-09 00:37:46 +08:00
merge-translation-pairing.ts fix(i18n): preserve merge conflicts without runtime 2026-08-09 00:37:46 +08:00
migrate-packed-session-fixtures.ts
oxlint-contract.spec.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
package-graph.ts
package-invariants.spec.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
package-invariants.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
paired-markdown-derivatives.spec.ts
paired-markdown-derivatives.ts
prepare-ci-bubblewrap.sh fix(ci): tolerate platform-specific coverage and curl retries 2026-08-10 04:52:07 -07:00
project-doc-site.spec.ts docs(website): name the Python SDK group SDK 2026-08-12 14:08:18 +08:00
project-doc-site.ts docs: fix reference sidebar ordering and group the subsystem pages 2026-08-12 13:52:27 +08:00
project-reference-faces.spec.ts build: enforce split project reference faces 2026-08-08 12:25:41 +08:00
project-reference-faces.ts build: enforce split project reference faces 2026-08-08 12:25:41 +08:00
publication-payload.spec.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
publication-payload.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
publint-all.spec.ts
publint-all.ts
publish-npm-baseline.ts Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui 2026-08-12 10:43:23 +08:00
repo-files.ts
rescope-vendor.spec.ts build(vendor): add the @deepseek-ai rescope codemod, its mapping doc, and its Agent Note 2026-08-10 22:04:10 +08:00
rescope-vendor.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
run-gates.spec.ts Adopt MIT for DSH packages 2026-08-13 13:07:24 +08:00
run-gates.ts docs: address fragment review feedback 2026-08-13 14:30:17 +08:00
run-oxlint.spec.ts refactor: centralize Oxlint worker bounds 2026-07-29 23:39:49 +08:00
run-oxlint.ts refactor: make lint workflows Oxlint-only 2026-08-09 14:55:15 +08:00
session-fixture-layout.snapshot.ts
session-fixture-layout.spec.ts
session-fixture-layout.ts
slot-walk.ts • feat(self-modification): add dynamic Cordis plugin runtime and UI 2026-08-13 01:29:36 +08:00
smoke-python-runtime.py fix: rebase 4 2026-08-13 02:38:16 +08:00
test-fixture-cleanup.ts fix(scripts): widen fixture-cleanup EPERM retry window 2026-08-13 15:16:12 +08:00
test-invariants.spec.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
test-invariants.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
translation-brief.spec.ts
translation-brief.ts docs: purge chain-of-thought leakage from prose 2026-08-09 21:10:59 +08:00
translation-pairing-git.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
translation-pairing-merge.spec.ts fix: Windows-native CI findings on latest master 2026-08-13 15:16:11 +08:00
translation-pairing-merge.ts fix: address Python release review feedback 2026-08-11 20:09:33 +08:00
translation-pairing-record.ts feat(i18n): compose pairing records during merges 2026-08-08 21:11:59 +08:00
translation-pairing.manifest.json docs: complete Chinese proofreading and generated reference pairing 2026-08-09 11:02:16 +08:00
translation-pairing.spec.ts fix: address Python release review feedback 2026-08-11 20:09:33 +08:00
translation-pairing.ts fix: address Python release review feedback 2026-08-11 20:09:33 +08:00
translation-prompt.snapshot.ts
translation-prompt.spec.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
translation-prompt.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
ts-project.ts
type-equiv.manifest.json refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
verify-agent-note-classification.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
verify-agent-note-format.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
verify-archived-agent-notes.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
verify-built-package-invariants.mjs
verify-built-package-invariants.spec.ts
verify-client-domain-graph.ts refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
verify-config-source-ownership.spec.ts fix(config): cover shipped bundle source ownership 2026-08-07 23:26:39 +08:00
verify-config-source-ownership.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
verify-cordis-config.spec.ts refactor(loader): tighten the disabled gate and rehome the note 2026-08-11 18:52:52 +08:00
verify-cordis-config.ts refactor: apply repository naming contract 2026-08-13 00:54:38 +08:00
verify-doc-budgets.ts
verify-doc-refs.ts
verify-doc-site-fragments.spec.ts docs: address fragment review feedback 2026-08-13 14:30:17 +08:00
verify-doc-site-fragments.ts docs: address fragment review feedback 2026-08-13 14:30:17 +08:00
verify-dsh-package-licenses.spec.ts Adopt MIT for DSH packages 2026-08-13 13:07:24 +08:00
verify-dsh-package-licenses.ts Adopt MIT for DSH packages 2026-08-13 13:07:24 +08:00
verify-export-jsdoc.ts refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
verify-md-links.spec.ts fix(doc-gates): review findings — GitHub-slugger parity and the surviving old-rule prose 2026-08-09 10:56:43 +08:00
verify-md-links.ts chore: remove remaining SDK toolchain residue 2026-08-11 16:37:29 +08:00
verify-md-wrap.ts
verify-mermaid.ts Merge origin/master into worktree/web-plugin-config, adapting to ctx.remote.$on 2026-08-11 19:52:34 +08:00
verify-node-next-types.ts refactor: replace overloaded surface terminology 2026-08-11 15:23:05 +08:00
verify-package-invariants.ts docs: make technical prose concrete 2026-08-10 16:34:20 +08:00
verify-package-paths.ts chore: remove remaining SDK toolchain residue 2026-08-11 16:37:29 +08:00
verify-package-readme-limitations.ts
verify-package-readme-model-experience.ts • feat(self-modification): add dynamic Cordis plugin runtime and UI 2026-08-13 01:29:36 +08:00
verify-public-repository-links.spec.ts docs: replace nonexistent repository references 2026-08-11 12:35:38 +08:00
verify-public-repository-links.ts docs: replace nonexistent repository references 2026-08-11 12:35:38 +08:00
verify-runtime-closure.ts
verify-skill-invocation-metadata.spec.ts fix(skill): enforce manual invocation policy 2026-08-10 18:04:26 +08:00
verify-skill-invocation-metadata.ts fix(skill): enforce manual invocation policy 2026-08-10 18:04:26 +08:00
verify-translation-pairing.ts fix: address Python release review feedback 2026-08-11 20:09:33 +08:00
verify-translation-prompt.ts
verify-type-equiv.ts
verify-vendored-links.ts fix(review): label host-preparation failures and gate vendored lockfile links 2026-08-02 01:25:01 +08:00
vitest-environment.compat.spec.ts fix(test): isolate jsdom storage on Node 26 2026-07-30 21:49:33 +08:00
wine-windows-gates.sh ci: keep Wine required, add failover to native Windows, enable serial-windows standby 2026-08-11 01:48:37 +08:00