Skip to content

refactor(test-kit): drop the daemon-contracts dependency - #3686

Merged
thymikee merged 2 commits into
mainfrom
refactor/test-kit-drop-daemon-contracts
Oct 16, 2026
Merged

thymikee merged 2 commits into
mainfrom
refactor/test-kit-drop-daemon-contracts

Conversation

@thymikee

@thymikee thymikee commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

What

spawnLegacyDaemonFixture was test-kit's only use of @agent-device/daemon-contracts, and root src/__tests__/daemon-registration-owner.test.ts was its only importer. It moves beside that test, and test-kit drops the daemon-contracts dependency and tsconfig reference. daemon-contracts (and any package that depended on it) is then free to declare test-kit as a devDependency without a project-reference cycle.

Graph check (workspace dependencies + devDependencies, transitive)

test-kit reach before after
direct deps capture-kit, command-registry, contracts, daemon-contracts, host-kit, kernel capture-kit, command-registry, contracts, host-kit, kernel
transitive + ad-script, selectors + ad-script, selectors

Packages that can never declare test-kit (they sit under it): capture-kit, command-registry, contracts, host-kit, kernel, ad-script, selectors. daemon-contracts leaves that set. Nothing in test-kit's src imported daemon-contracts besides this fixture (git grep clean after the move).

Commits

  1. git mv packages/test-kit/src/legacy-daemon-fixture.ts src/__tests__/daemon-registration-owner.fixtures.ts — 100% similarity, named for the one test that uses it.
  2. Entry export, importer specifier, manifest, tsconfig reference and lockfile; the fixture's two repo-root new URL(…) hops lose one ../ for the shallower directory (the test exercises both, 47/0).

Parity

src/__tests__/daemon-registration-owner.test.ts: 47 passed / 0 failed on origin/main, 47 / 0 on this head. It stays under src/**/*.test.ts (unit-core). No vi.mock in the moved file. test-kit exports: still the single . entry; named exports 67 → 66 (spawnLegacyDaemonFixture removed).

Gates

check:layering, check:gate-manifest, check:fallow, pnpm format: clean. check:quick/check:affected --run fail on main's own typecheck errors (fixed by #3684); with #3684's commits cherry-picked locally on a throwaway branch, check:affected --run passes (1828 files, 15474 tests). Rebase after #3684 merges.

🤖 Generated with Claude Code

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 6 files

View guided diff | Turn on auto-fix | Re-trigger cubic

@thymikee
thymikee force-pushed the refactor/test-kit-drop-daemon-contracts branch from 6c69048 to 3c7e428 Compare October 15, 2026 17:59
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://callstack.github.io/agent-device/pr-preview/pr-3686/

Built to branch gh-pages at 2026-10-15 19:05 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Size Report

Metric Base Current Diff
Installed (including dependencies) 5.24 MB 5.24 MB -5.9 kB
Package (unpacked) 5.24 MB 5.24 MB -5.9 kB
Package (download) 1.58 MB 1.57 MB -1.6 kB

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 19.0 ms 20.4 ms +1.4 ms
CLI --help 51.8 ms 55.0 ms +3.1 ms

thymikee and others added 2 commits October 15, 2026 20:38
…nsumer

Pure git mv, named for the one test that uses it; the entry, importer and manifest follow in the
next commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
spawnLegacyDaemonFixture was test-kit's only use of daemon-contracts, which now leaves the
packages test-kit builds on free to declare test-kit as a devDependency. The fixture's repo-root
URLs follow it one directory up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thymikee

Copy link
Copy Markdown
Member Author

I found nothing to change at 25e3183. The PR drops the daemon-contracts dependency from test-kit as described, and the code looks right.

CI is green, with 23 checks and none failing. There are no conflicts, and nothing else stands between this and merge.

I did not run the tests or the typecheck myself. I also did not check whether the legacy daemon path the fixture models is slated for deletion. The test still exercises that path, so the fixture is not dead code.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Oct 15, 2026
@thymikee
thymikee merged commit 7bce534 into main Oct 16, 2026
23 checks passed
@thymikee
thymikee deleted the refactor/test-kit-drop-daemon-contracts branch October 16, 2026 06:03
thymikee added a commit that referenced this pull request Oct 16, 2026
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant