Repository navigation
refactor(translate): organize output IR ownership - #707
Merged
Merged
Conversation
Separate output construction, records, accumulation, lifecycle and path operations. Name output model types explicitly and share JSON and text-range shapes through their owners. Move protocol fixtures and assertions out of output IR tests. Let unit queues own their links and remove dead builder and path-query APIs. Preserve configured choice limits and native SSE, error and sidecar behavior. Validate with 612 focused tests, 67 baseline differential probes, 39 logical correspondences, scoped lint and the owning TypeScript project.
Menci
force-pushed
the
refactor/translate-protocol-lint
branch
from
November 11, 2026 20:57
b2eb939 to
c94b6c4
Compare
Use directional events modules and read/write entrypoints for the seven native output adapters, and mirror those owners in their tests. Move the unchanged source writer options shape to its shared owner. Finish schema phantom, absent-string and type-equality names so the input work has no remaining output-only naming migration. Preserve native behavior with 622 named tests, 67 controlled main/final wire and replay probes, 66 runtime/declaration/test-body correspondences, 98 scoped lint targets and the translate TypeScript project.
Keep output validation diagnostics, type refinements and reviewed comments with their output owner. Preserve configured choice limits and gap filling while narrowing relative paths to strings and explicit path arrays. Give completion-aware JSON parsing its own module and mirrored tests. Reuse the existing structural record guard from the JSON owner in native writers. Retain the reviewed sentinel and write-validation rationale. Validate 625 tests in 43 named files, 68 controlled main/final differential probes, 89 runtime/declaration/test correspondences, 101 scoped lint targets and the translate TypeScript project. Track diagnostic terminology changes explicitly while comparing complete wire, digest and native replay values.
Move the existing three immutable error identity cases together under their protocol ownership file, retaining every test body and assertion.
2 tasks done
Remove the duplicate structural guard and import isJsonObject from protocols/common. Keep tool-argument and IR-specific object validation at the translation boundary.
Menci
marked this pull request as ready for review
November 12, 2026 11:36
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.
Separate output IR construction, record consumption, schema, lifecycle and unit ownership, and give the model and event adapters their final names. Remove unused output helpers while preserving main wire, error, cardinality and replay behavior.
Validated with 41 named files (622 tests), 67 controlled main-versus-refactor probes, 66 logical correspondence checks, translate TypeScript and scoped lint. Independent prerequisite for #673.
Protocol package ownership:
The duplicate structural JSON-object guard has been removed. Source event writers reuse
isJsonObjectfrom@floway-dev/protocols/common; IR/tool-argument-specific validation remains in translate.