Repository navigation
refactor(test-kit): host the target classification capture fixture - #3691
Conversation
…to test-kit Pure git mv; imports, exports and manifests follow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Size Report
Startup median (7 runs, lower is better):
|
|
…it from replay-port and daemon bottomTabsRealCaptureFixture and recordArticleEvidence become test-kit named exports; the local toSnapshotNodes folds into test-kit's buildNodes. recordArticleEvidence takes the evidence function as a parameter, so test-kit does not depend on selectors. replay-port declares test-kit as a devDependency and drops its target-classification-fixtures export. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ace5d2e to
99f3a6f
Compare
|
This PR is ready to merge at 99f3a6f. The code looks right, and all 23 checks are green. I did not run the tests or the build myself. The 19/6/6 parity table and the gate results come from the PR body and the green CI. I also did not read attachRefs, so the claim that buildNodes differs from toSnapshotNodes only by setting kind is unchecked, though the unchanged assertions passing in CI support it. I checked for cycles by reading each package.json's workspace dependencies, and I checked tsconfig references only for replay-port and test-kit. There are no conflicts. Not blocking, and fine to take or leave: repair-hint.test.ts still has a local toSnapshotNodes copy that could use buildNodes from @agent-device/test-kit as a follow-up; recordArticleEvidence takes computeTargetEvidence as a hand-written structural type that could drift, so |
…ctions-1 * origin/main: feat(react-devtools): inspect React components and profile renders through the Metro inspector (#3613) refactor(daemon-contracts): drop the registration and claims fixture exports (#3689) refactor(test-kit): drop the daemon-contracts dependency (#3686) refactor(test-kit): drop command-registry by making the replay-script generator a root fixture (#3687) fix(ios): handle delayed launch confirmations without stopping XCTest (#3682) refactor(test-kit): move the dispatch-disclosure harness out of contracts (#3690) refactor(test-kit): host the target classification capture fixture (#3691) ci: fold six CI jobs into four with parallel and background steps; cancel superseded and closed-PR runs (#3658) build(typescript): move root project references into tsconfig.typecheck.json (#3688) chore(daemon): declare @agent-device/proxy as a devDependency, since only a test imports it (#3685) refactor(settings): declare settings once and admit them per setting (#3662) # Conflicts: # packages/platform-android/src/alert.ts # website/docs/docs/limrun.md
What
replay-port/target-classification-fixtures(the bottom-tabs real-capture snapshot and the Article-tab target evidence) moves into test-kit as two named exports, and the export is dropped (replay-port exports 31 → 30). replay-port declares test-kit as a devDependency (manifest + tsconfig reference).Fixture decision
bottomTabsRealCaptureFixture,recordArticleEvidencetarget-classification.test.ts), daemon 2 (session-replay-repair-empty-tail,session-replay-dispatch-selector-miss)recordArticleEvidencetakes the evidence function as a parameter (recordArticleEvidence(computeTargetEvidence)), so test-kit does not depend on selectors; each of the three consumers importscomputeTargetEvidencefrom@agent-device/selectors/target-evidenceitself.toSnapshotNodesbuildNodestoSnapshotNodesonly mintede<n>refs;buildNodesisattachRefs, which mints the same refs and additionally setskind. All three files pass unchanged assertions with it.Manifest walk (workspace
dependencies+devDependencies, transitive): test-kit gains no dependency in this PR. Today its reach is capture-kit, command-registry, contracts, daemon-contracts, host-kit, kernel, plus ad-script and selectors transitively through command-registry and daemon-contracts. With #3686 (drops daemon-contracts) and #3687 (drops command-registry) both landed, its reach is capture-kit, contracts, host-kit and kernel only: it excludes selectors and replay-port, so replay-port → test-kit closes no cycle and selectors can later declare test-kit.Commits
git mv packages/replay-port/src/target-classification.fixtures.ts packages/test-kit/src/target-classification-fixtures.ts(pure).toSnapshotNodes, importer specifiers/identifiers in three files (await recordArticleEvidence()→recordArticleEvidence(computeTargetEvidence), plus the selectors import in the two daemon files), replay-port manifest + tsconfig reference + lockfile, delete the replay-port export.Test-count parity (
vitest run … --reporter=json)origin/maintarget-classification.test.tssession-replay-repair-empty-tail.test.tssession-replay-dispatch-selector-miss.test.tsNo
vi.mockin any of the three. The fixture file itself is not a test; the destination project collects nothing new.Surface
replay-port exports 31 → 30; no new subpath anywhere; test-kit adds two named exports from its one entry; no barrels or
export *. replay-port gainsdevDependencies: @agent-device/test-kitand the tsconfig reference.Gates (on the pushed head)
check:quick,check:layering,check:fallow,check:gate-manifest,pnpm format,check:affected --run: clean.🤖 Generated with Claude Code