Move the hook scripts to @celilo/capabilities 2.0.0 #22

Merged
forgejo-admin merged 1 commit from caps2-tango-nexus into main 2026-08-17 21:28:55 +00:00

celilo v1.0.0 made withdrawal the provider's job, so the consumer-facing removal methods came off the capability surface. This module called none of them, so this is a bundled dependency bump rather than a rewrite.

What changed

  • scripts/package.json: @celilo/capabilities ^0.9.0^2.0.0, lockfile refreshed with bun install.
  • scripts/tsconfig.json: new. The module had .ts files but no tsconfig, so celilo module check was skipping the typecheck entirely and the hooks had never been checked against @celilo types. Inlines modules/tsconfig.scripts.base.json from the celilo repo, which this standalone repo has no way to extend.
  • scripts/on_install.ts: drops RegistryPublishCapability and SourceForgeCapability, two type imports the new typecheck turned up as unused.
  • .changeset/capabilities-2.md: minor bump, 0.7.0 → 0.8.0.

Verification

Removed methods (unregister_routes, unregisterRoutes, unexposeService, withdrawTrustedSource) have zero call sites here. The hooks use publishStaticSite, mintScopedToken and registerRepo, none of which changed in 2.0.0.

Rather than trust a grep, the new typecheck was proved to bite: adding a call to web.unregister_routes(...) makes tsc fail with TS2551: Property 'unregister_routes' does not exist on type 'PublicWebCapability'. Reverted, and the real tree is clean.

The four capability contract versions the manifest pins — external_web 1.0.0, public_web 3.1.0, source_forge 1.0.0, registry_publish 1.0.0 — are all unchanged in CAPABILITY_CONTRACT_VERSIONS at 2.0.0, so the manifest needs no edit. Worth noting celilo module check reports "no known-capability claims" for this module: it does not appear to validate versions declared under optional.capabilities, only provides/requires. That gap is celilo's, not this repo's.

Gates: bun test 9 pass / 0 fail, tsc --noEmit clean, celilo module check 6 ok / 0 fail.

Note on the bump level

minor. Per .changeset/README.md the level describes blast radius, not a compatibility claim. The site's content and URLs are untouched, which rules out major; swapping the runtime capability library for a new major is more than the copy edit that patch describes.

Release path

Merging this opens the automated "Version Packages" PR; merging that publishes 0.8.0 to celilo-registry. Deploy to tangonexus.com/nexus is a separate step.

🤖 Generated with Claude Code

celilo v1.0.0 made withdrawal the provider's job, so the consumer-facing removal methods came off the capability surface. This module called none of them, so this is a bundled dependency bump rather than a rewrite. ## What changed - `scripts/package.json`: `@celilo/capabilities` `^0.9.0` → `^2.0.0`, lockfile refreshed with `bun install`. - `scripts/tsconfig.json`: **new**. The module had `.ts` files but no tsconfig, so `celilo module check` was skipping the typecheck entirely and the hooks had never been checked against `@celilo` types. Inlines `modules/tsconfig.scripts.base.json` from the celilo repo, which this standalone repo has no way to extend. - `scripts/on_install.ts`: drops `RegistryPublishCapability` and `SourceForgeCapability`, two type imports the new typecheck turned up as unused. - `.changeset/capabilities-2.md`: **minor** bump, 0.7.0 → 0.8.0. ## Verification Removed methods (`unregister_routes`, `unregisterRoutes`, `unexposeService`, `withdrawTrustedSource`) have zero call sites here. The hooks use `publishStaticSite`, `mintScopedToken` and `registerRepo`, none of which changed in 2.0.0. Rather than trust a grep, the new typecheck was proved to bite: adding a call to `web.unregister_routes(...)` makes `tsc` fail with `TS2551: Property 'unregister_routes' does not exist on type 'PublicWebCapability'`. Reverted, and the real tree is clean. The four capability contract versions the manifest pins — `external_web` 1.0.0, `public_web` 3.1.0, `source_forge` 1.0.0, `registry_publish` 1.0.0 — are all unchanged in `CAPABILITY_CONTRACT_VERSIONS` at 2.0.0, so the manifest needs no edit. Worth noting `celilo module check` reports "no known-capability claims" for this module: it does not appear to validate versions declared under `optional.capabilities`, only `provides`/`requires`. That gap is celilo's, not this repo's. Gates: `bun test` 9 pass / 0 fail, `tsc --noEmit` clean, `celilo module check` 6 ok / 0 fail. ## Note on the bump level `minor`. Per `.changeset/README.md` the level describes blast radius, not a compatibility claim. The site's content and URLs are untouched, which rules out `major`; swapping the runtime capability library for a new major is more than the copy edit that `patch` describes. ## Release path Merging this opens the automated "Version Packages" PR; merging that publishes 0.8.0 to celilo-registry. Deploy to tangonexus.com/nexus is a separate step. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
celilo v1.0.0 made withdrawal the provider's job: removing a consumer now
dispatches on_consumer_removed to each provider, so the consumer-facing
removal methods came off the capability surface (unregister_routes,
unregisterRoutes, unexposeService, withdrawTrustedSource).

This module called none of them. It publishes with publishStaticSite and
registers CI with mintScopedToken/registerRepo, none of which changed, so
this is a bundled dependency bump rather than a rewrite.

Add scripts/tsconfig.json so that claim is checked rather than asserted --
the module had .ts files but no tsconfig, so the hooks had never been
typechecked against @celilo types at all. Verified the gate bites by
calling a removed method and watching tsc reject it. Inlines celilo's
modules/tsconfig.scripts.base.json, which this standalone repo cannot
extend, and drops two type imports it turned up as unused.

The four capability contract versions the manifest pins (external_web
1.0.0, public_web 3.1.0, source_forge 1.0.0, registry_publish 1.0.0) are
all unchanged in capabilities 2.0.0, so the manifest needs no edit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
celilo/tango-nexus!22
No description provided.