chore: demote the stale duplicate connector manifests to named seed fixtures - #153
Merged
Conversation
…tures/seed-manifests/ packages/polyfill-connectors/manifests/ is the canonical, actively maintained connector manifest set: production seeds its DB from it via reconcilePolyfillManifests(), and the console's catalog is served transitively from those DB rows. reference-implementation/manifests/ looked like a second, competing manifest set for the same connector IDs (github, reddit, spotify), but it is never registered into the catalog — it exists only to (a) back the deterministic `pdpp seed` demo connector and (b) supply fingerprints for a narrow fixture-to-polyfill transition heuristic in polyfill-manifest-reconcile.ts. That produced a real divergence: two different manifests on disk for the same connector, with no naming to say one was a fixture. This rename makes that explicit without changing any runtime behavior. git mv reference-implementation/manifests -> reference-implementation/fixtures/seed-manifests, then updated every real path dependent (verified by exhaustive repo grep, including a rerun with `grep -a` after discovering `grep -rn` silently treats one large scanner helper as binary and skips it): - Production runtime code: runtime/controller.ts's REFERENCE_MANIFESTS_DIR, cli/commands/seed.ts's MANIFESTS_DIR (the real `pdpp seed` command), scripts/generate-connector-registry.ts and scripts/compact-record-history.ts. - The fingerprint source itself: polyfill-manifest-reconcile.ts's defaultReferenceFixturesDir(). - CI gating: scripts/ci-mode.ts's CONNECTOR_SURFACE_PATH_PREFIXES (a real path-prefix match, not just documentation) and .github/workflows/polyfill-connectors.yml's path triggers. - Generated/checked docs: regenerated connector-registry.generated.ts and stream-evidence-inventory.md via their producing scripts (diffs are header-text-only; derived content is unchanged). - ~30 test files with real (non-comment) path dependencies: three independent MANIFEST_ROOTS constants in the zero-connector-knowledge scanner helpers, dozens of `join(REFERENCE_IMPL_DIR, "manifests", ...)` call sites across owner-connection/-diagnostics/-schedule/etc. test suites, and literal relative-import strings inside synthetic production-file fixtures in ri-zero-connector-knowledge-conformance.test.ts (these resolve relative to reference-implementation/server/, so they needed `../fixtures/seed-manifests/...`, not a straight string swap). - Doc/comment references and one live openspec spec file (openspec/specs/reference-implementation-architecture/spec.md). Historical openspec/changes/* proposals and archived design docs were left untouched as point-in-time records. Scope note: the source plan for this change estimated two reference sites to update after the rename. The actual count was over 40 files. The plan's own read-only audit of runtime dependencies (which manifest set production loads, why reference-implementation/manifests/ is a fixture not canonical) held up under verification, but its estimate of the mechanical rename's blast radius did not — worth factoring in when trusting a prior audit's scope estimate over a fresh repo-wide grep. Verified: reconcile-related test suites (polyfill-manifest-reconcile- invalidation, github-manifest-connector-parity, connector-path- resolution, ri-zero-connector-knowledge-conformance, connector-registry- manifest-derivation, and ~15 owner-connection/-diagnostics suites) pass individually. Full reference-implementation and polyfill-connectors typecheck passes. A real server boot with PDPP_RECONCILE_POLYFILL_MANIFESTS=1 reconciles all 20 first-party manifests from packages/polyfill-connectors/manifests/ with no errors referencing the renamed fixtures path. Two pre-existing failures (scripts/ci-mode.test.ts's nested dynamic-import subprocess test, and cli:connect-smoke's local-connect flow) reproduce identically on the unmodified engine-split-slice2 checkout and are unrelated to this change. Assisted-by: AI Signed-off-by: Tim Nunamaker <tnunamak@gmail.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…ures/seed-manifests/ 27f6eb6 renamed reference-implementation/manifests/ to fixtures/seed-manifests/ but only updated the readers built on the REFERENCE_IMPL_DIR + templated filename pattern. ~50 other test files resolved fixture manifests via join(__dirname, "../manifests/...") or new URL("../manifests/...", import.meta.url), which still pointed at the removed directory and threw ENOENT — the root cause of both the typecheck+full-test-suite and pr89-seam-receipt CI failures on this branch. Signed-off-by: Tim Nunamaker <tnunamak@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The same connector had two different manifest files in this repository — for example github existed as version 1.1.0 under
reference-implementation/manifests/and as version 0.5.0 (with a full credential-capture section) underpackages/polyfill-connectors/manifests/— and nothing kept them coherent, so any reader or tool could pick the wrong one. Tracing the deployed server's loading code settled which is real: at boot it seeds its connector database exclusively frompackages/polyfill-connectors/manifests/(the production image hard-enables this), and the four files underreference-implementation/manifests/are never registered — they exist only to feed a fingerprint comparison that invalidates stale seed records.This PR makes the file layout say what the code does: the four stale files move (history-preserving) to
reference-implementation/fixtures/seed-manifests/, so their path now states they are fixtures, not a second source of truth. The original cleanup plan predicted two code references to update; searching found ten-plus live ones — a CI path-prefix list, a doc-generation script, a smoke test, a content-parsing parity test, and test fixtures — all updated here, path-string changes only, no behavior changes.Verified: full TypeScript compile checks of the server and connector packages are clean; the manifest-related test suites pass (75/75 validation, 68/68 parity/derivation); and a real server boot with reconciliation enabled registered all 20 canonical manifests with no reference to the old path.
Stacked on #152; merges into that branch, then up the stack to main. Merge commits only — the move's file history must survive.
Assisted-by: AI