Skip to content

feat: add Effect-free pipeline runtime and provider-local ladder policy (ENG-17075) - #46

Merged
kamescg merged 4 commits into
feat/atom-runtime-packagesfrom
feat/pipeline-runtime-and-ladder-policy
Oct 22, 2026
Merged

kamescg merged 4 commits into
feat/atom-runtime-packagesfrom
feat/pipeline-runtime-and-ladder-policy

Conversation

@kamescg

@kamescg kamescg commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Provide the runtime and identity-policy prerequisites for the next atom-package reconciliation. Adds Effect-free @0xintuition/pipeline-runtime and an opt-in provider-local handle policy to @0xintuition/iid-ladder, so consumers can preserve existing app identities while retaining spec-conforming defaults.

Stacked onto feat/atom-runtime-packages. Tracks ENG-17075.

Package impact

Package Change
@0xintuition/pipeline-runtime New package: copied provider utilities, Promise concurrency and circuit breaking, cancellation, outcome helpers, and metrics testing utilities
@0xintuition/iid-ladder Adds providerLocalHandles: 'reject' | 'mint' and createLadder; defaults to 'reject'
@0xintuition/iid-spec Non-normative implementation note and fixture-validator file-URL handling; normative specification unchanged
Release tooling / CI Registers the runtime package, fixes paths containing spaces, and extends Node/Bun/declaration tarball checks

packages/atom-* and the reference app checkout are unchanged. No Effect dependency is added.

Target versions

  • pipeline-runtime: 0.1.0-alpha.0, public alpha tag.
  • iid-ladder: 0.1.0-alpha.1.
  • iid-spec: unchanged 0.1.0-alpha.0.
  • No workspace manifests currently depend on iid-ladder, so no dependent exact pins require updates. Release-plan versions and package registration are updated.

Identity impact

Identity impact: none — existing golden bytes unchanged.

The default ladder remains unchanged. Opting into 'mint' reproduces the app's existing int:<iidPrefix><value> strings, grammar/length checks, precedence, and alias-only decisions. These remain application-local identifiers; this option does not admit schemes into the normative registry or confer anchor eligibility.

Fixture impact

Adds packages/iid-ladder/__tests__/fixtures/provider-local-handles.json, generated from the unmodified app at 7fc0c82b4 with provenance and a reproducible generator. Contains 532 known-answer vectors: 172 handle cases, 180 precedence cases, and 180 rung-conversion cases. Covers 43 distinct corpus inputs plus supplemental grammar/length cases across all 28 provider-local prefixes. Existing conformance fixtures are unchanged.

Contract artifact

n/a — no ABI, bytecode, or generated contract-type changes.

Rollout notes

Publish pipeline-runtime before atom-parser when the release is authorized. No packages have been published by this change. The follow-up atom reconciliation can consume these prerequisites.

Consumers can replace the app's provider-handles implementation with:

export const { projectIdentifierLadder, iidForIdentityRung } = createLadder({
  providerLocalHandles: 'mint',
});

Effect integrations stay in the consumer: services, retry, Effect compatibility internals, executeEffect, and forEachBoundedEffect. The app's outcome.ts transitively imports Effect; this package retains the plain outcome union but supplies Promise-based helpers rather than accepting Effect/Exit/Cause values. Letterboxd and TMDB retain their existing subpath names as provider host policies.

Validation

  • bun install --frozen-lockfile: passed.
  • bun run build, bun run typecheck, bun run check: 21, 21, and 22 tasks passed respectively.
  • bun run test: 4,211 passed, 0 failed; the promtool-backed tests skip wherever promtool is absent, including CI.
  • bun run registry:check: 20 packages passed.
  • bun run registry:test: 8 passed; bun run release:registry:test: 9 passed.
  • bun run conformance:check: 1,281 passed, 0 failed.
  • bun run guard:supply-chain: passed.
  • bun run pack:dry-run and bun run smoke:tarballs: all 20 packages passed, including isolated Node/Bun parity and TypeScript declaration checks.
  • The app's provider-handles tests passed both against its original implementation and the built ladder dist: 7 tests / 19 assertions each, without modifying the app.
  • biome check --write ran on edited supported files; final check applied no fixes.

Full-suite verification used a temporary checkout without spaces because existing atom-enrichment fixture loaders fail on the original worktree path. The atom packages were left unchanged as required. The temporary checkout was removed. CI workflow setup was updated afterward; hosted CI results will be reported by GitHub.

Review fix-ups (2026-10-22)

cf1c95e on top of the three reviewed commits:

Validation on cf1c95e in a space-free worktree: frozen install, build 21/21, typecheck 21/21, check 22/22, bun run test all tasks passed, registry check 20 packages, registry tests, release registry tests, supply-chain guard, conformance 1281/0, pack dry-run and clean-room tarball smoke all passed.

🤖 Generated with Claude Code

kamescg and others added 3 commits October 22, 2026 09:59
Port provider utilities and Promise execution without Effect; preserve app provider-local identities behind an opt-in ladder policy with pinned oracle vectors.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Decode file URLs in release tooling, cover registry CLI execution in spaced and symlinked paths, and smoke-test pipeline subpaths and the bound ladder policy on Node and Bun.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The copied app tests require promtool when CI is set. Install the Ubuntu Prometheus tools before running the workspace tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@linear

linear Bot commented Oct 22, 2026

Copy link
Copy Markdown

ENG-17075

…s, make promtool optional (ENG-17075)

Stop emitting .d.ts.map from pipeline-runtime so the repo-wide tarball smoke
check (no dangling declaration maps) passes once both prerequisite branches
merge. Reword the metrics contract comments without references to private
repositories or internal worker names. Remove the unpinned apt install from
CI and let the promtool-backed tests skip wherever promtool is absent; the
pure exposition checks still run everywhere. Give createLadder a named
Ladder return type, tighten the README wording on minted handles, and list
the app modules that need an Effect adapter against this package.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@kamescg
kamescg merged commit 5e57da1 into feat/atom-runtime-packages Oct 22, 2026
1 check passed
@kamescg
kamescg deleted the feat/pipeline-runtime-and-ladder-policy branch October 22, 2026 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant