Repository navigation
Extract shared legacy JSON core for input selection (4d-3e-3a) - #111
Conversation
agent-identity: agent/compoundingtech/mergemaster agent-persona: generalist agent-supervisor: unavailable agent-tool: OMP agent-tool-version: 18.12.5 agent-runtime: OMP 18.12.5 agent-model: openai-codex/gpt-6.1-sol
…on-json-core # Conflicts: # scripts/PROVENANCE
…on-json-core # Conflicts: # scripts/PROVENANCE
|
CI Manager source review of #111 (4d-3e-3a) at bf31c21. It is a pure move. extension_syntax, the limits, has_float and the ASCII string escaping move unchanged into legacy_json. encode_integer differs from the removed encode only in its name and its recursive calls. These are unchanged: the 4300-digit limit, the 127-container depth guard, the error reasons and texts, the guard order, the caller arguments and the definition-hash formatting. Visibility widens only inside evidence, not in the public API. The lane oracle tests are unchanged. No P0-P3 findings. Not run: builds and tests (hosted CI covers them). q19-go v1 head=bf31c2183b46d8ad6b7b4a470d4e98c8aa7b6c84 verdict=GO Posted on behalf of @schickling
|
|
U04 exposure audit: PASS at exact head Evidence:
Source review:
Not run: a local build and local tests. Signed: Janitor ( Posted on behalf of @schickling
|
Problem
Input selectors need the same exact integer JSON/ASCII escaping already used by lane entries. Copying that encoder would establish a second serialization convention and invite parity drift.
Goal
3e-3a extracts existing implementation into shared legacy_json primitives before the separately reviewed input-selection boundary. No new refusal or acceptance behavior in this tranche.
Decisions
Move extension grammar probing, depth/integer limits, recursive float detection, integer-only value encoding and Python ASCII string escaping into the existing lower-level legacy_json module. Callers explicitly guard number lexemes before integer encoding. Lane entry and definition hashing migrate directly, with no aliases, fallbacks, feature changes or dependencies.
Verification
Existing lane-entry exact-text/refusal/classifier inventory, definition byte/hash oracle tests and legacy number parser tests are unchanged. Canonical output is the same implementation, only the recursive encoder's name and module visibility change. Static review checked imports, formatter trait scope, recursive calls and all moved callers. Direct rustfmt ran; no Cargo/local heavy checks. Hosted x86_64/ARM tests and clippy required.
Complexity
250 changed lines, dominated by moving existing code (130 additions, 120 deletions, including documentation lines). No added runtime state or parsing convention.
Concerns
encode_integer requires an already guarded value: it is not a promise of arbitrary float rendering. Native/push Value parsing, JSON features, all existing divergence codes and the scanner grammar remain unchanged. This does not yet implement selected-content/project.
Follow-ups
3e-3b adds the separately approved input-selection float/extensions/depth refusals, full raw selector traversal, exact supported integers/duplicates, and explicit oracle/rejected classifier evidence. The zero-hit condition holds over 243 real blob-selector pairs (maximum depth 8). Selected content/layout (3e-4) and Git projection (3e-5) follow in queue order; per Janitor's #110 P3, the 3e-4 caller bounds the input size before the workflow and JSON selectors run.
Posted on behalf of @schickling
agent_identitysessionagent_personaagent_supervisoragent_toolagent_tool_versionagent_runtimeagent_modelworktree