Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions packages/tool-registry-publish/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,18 @@ for how a pin resolves through it).
- Any workflow definition or `DEFAULT_WORKFLOWS` — this package knows
which tool packages to publish, never which workflows pin them.

## CL-7587 end state

This package stays pack + explicit publish: no boot-time publish (the
hub only reads the registry; `seedTenant` never packs), no daemon or
freshness loop (freshness is a `check:structural` gate and a publish
precondition, never a background task), no registry table (the registry
is a `package-registry` asset, not a SQL row), and pins resolve on
immutable `name@version` tarball filenames. Full deletion is blocked
until `@corbits/seeding`, `@workbench/onboarding`, and
`scripts/checks/tool-package-freshness` migrate off this package's
library entry (their lanes own those moves).

## Running tests

```sh
Expand Down
1 change: 0 additions & 1 deletion packages/tool-registry-publish/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ export {
sha512Integrity,
fetchRegistryTarballSource,
installRegistryTarball,
TarballVersionCollisionError,
EmptyRegistryPublishError,
type ApiCall,
type ApiResult,
Expand Down
19 changes: 0 additions & 19 deletions packages/tool-registry-publish/src/publish.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,25 +144,6 @@ const TarballSummary = type({
});
const TarballListResponse = TarballSummary.array();

/**
* Thrown when a tarball whose filename (hence its `name@version`) is
* already published to the registry would be overwritten with
* different bytes. Republishing under an unchanged version is the
* exact failure mode that leaves running agents on stale tool code —
* the resolver and sidecar caches key on `name@version`, not on
* content, so a same-version overwrite never reaches an already
* -launched or freshly-materialized run. Bumping the package's
* `version` is the only supported way to ship new tool-package bytes.
*/
export class TarballVersionCollisionError extends Error {
constructor(filename: string) {
super(
`publishCorbitsToolsRegistry: ${filename} is already published with different content; bump the package's version before republishing. Tool-package resolution keys on name@version, so overwriting an unchanged version never reaches a running or freshly-launched agent.`,
);
this.name = "TarballVersionCollisionError";
}
}

/**
* Thrown when a publish run leaves `corbits-tools` without the required
* seed tarballs (`@corbits/memory-tools`). Covers both zero uploads onto
Expand Down
Loading