Repository navigation
refactor(contracts): move telephony input parsing out of device-rotation - #3812
Merged
thymikee merged 1 commit intoOct 19, 2026
Merged
Conversation
The telephony constants, TelephonyEventInput, and its parsers lived in device-rotation.ts only to keep the CLI and session-journal eager closures flat when telephony was added. Now that the code is on main, moving it to its own module is a pure split that the eager-closure no-growth rule tolerates, so telephony-input.ts owns it. Callers of @agent-device/contracts/device are unchanged.
Member
|
The code in 959bd6a looks good to me. The change is a clean move of the telephony input parsing out of device-rotation, and I found nothing to fix. CI is still pending: all checks were queued or in progress when I looked, so there is no failure to attribute yet. I did not run typecheck or tests locally, and I did not run the eager-closure budget guard. The removed comment said a separate module would grow the CLI and session-journal import closures, and this PR treats that growth as acceptable. That stays unverified until Repo Guards passes, since this diff adds one module to that graph. I know of no conflicts. Before merge, Repo Guards & Compatibility (the eager-closure budget) and the other in-progress checks must pass. |
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.
Summary
Moves the telephony input parsing out of
packages/contracts/src/device-rotation.tsinto a newpackages/contracts/src/telephony-input.ts. That coversTELEPHONY_ACTIONS,TELEPHONY_CALL_ACTIONS,TELEPHONY_USAGE,TelephonyEventInput, and the parsersparseTelephonyEventInput,parseTelephonyPositionals, andtelephonyPositionals.#3724 put this code in
device-rotation.tsbecause a new module would have grown the CLI and session-journal eager closures pastscripts/__tests__/eager-closure-budgets.ts. That was true while the code was new. Now that it is onmain, the move is a pure split, and the split tolerance inclosure-growth-rule.tsaccepts it: the closure gains one new module, and the statement weight stays flat. The comment explaining the old placement is removed.7 files touched.
@agent-device/contracts/deviceexports the same names, so no callers outsidecontractschange.device-rotation-telephony.test.tsis renamed totelephony-input.test.ts. There is no behavior change.Validation
Tested SHA
98be21d(same tree as head959bd6a, which only changes the author).pnpm check:affected --run --head HEAD: format, lint, typecheck, layering, fallow, and build passed. vitest-related ran 5,239 tests with 3 failures:app-log-session-resource.test.ts› unwritable tombstone plus rejecting cleanup blocks same-process replacementdaemon-session-idle-expiry.test.ts› a held-back settle leaves a repair transaction uncommitted…daemon-session-idle-expiry.test.ts› a settle that cannot confirm the claim gone keeps the session record standingThe same 3 fail on base
eef1a3fin the same container, which runs as root.eager-closure-budgets.test.tspassed. No device run, because no dispatch, capture, interaction, or console code changed.