Files
ARCADIA-Studio/harness/ordinary-source8-compatibility-contract-20260925.md
T

72 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Restore ordinary current-schema source round trips
Baseline `edf096cd33350865ecfc3c65ec266a6c0d3c4000`. The public model and writers
already use schema8, while the ordinary public reader admits only3–7. Six nested
source tests and ten disk-transaction tests stop at that version rejection. The
selected immediate outcome restores existing ordinary OA/SA workflows without
claiming the private mixed analysis pipeline is publicly integrated.
## Decision and boundaries
Select ordinary source8 compatibility before broad mixed read/edit adoption.
Independent [mapping](ordinary-source8-design-20260925/ADOPTION-MAP.md) and
[critique](ordinary-source8-design-20260925/ADOPTION-CRITIQUE.md) identify the
writer→reader mismatch and the coupled public compilation callers. Existing
compile_bundle performs identity stabilization, source migration and indexing;
updates, checked save, history and server preparation depend on that complete
result. A private AcceptedRename cannot replace it with an incomplete index.
Admit current schema8 through the existing supported ordinary grammar and model
admission. Preserve version3–7 migration, caller limits, exact locations, omitted
UUID stabilization, lexical ownership, source index and unchanged-input refusal
semantics. Preserve future-version rejection with an accurate supported-version
diagnostic. Current-schema input must report no migration; old migrated output
must recompile idempotently at the current schema.
Keep explicit analysis-record refusal in ordinary conversion and refusal of short
typed declaration syntax. Do not promote cfg(test) mixed hooks, invent an empty
typed index, add unchecked constructors, change formatters, or silently accept
unsupported analysis payloads. The public formatter's missing typed definitions
and generic analysis payload output remain separate integration limitations.
Existing complete-model checks must still reject lossy checked-save output before
filesystem staging. Ordinary acceptance is not full source8 language support.
Do not change generic value depth64, typed logical depth128, parser/storage limits,
DEPTH_128_VALIDATED=false, codec platform qualification, or the separately recorded
full-pipeline stack limitation. Source and JSON checked-save paths must both be
exercised when the formerly first-failing source path begins to work; this does
not qualify depth128 or waive user-deferred Linux work.
## Finite acceptance
- Preserve all292 existing core tests. The16 named schema-refusal failures must
run their actual nested/migration/update/transaction assertions. Investigate any
newly reached failure at its own layer; neither changing an expected outcome
nor observing a different failure closes it.
- Add a focused direct ordinary current-schema formatter→parser and bundle
formatter→compile→compile regression. Check whole OA/SA models and actual source
identities, current no-migration behavior and old3–7 migration/idempotence.
Reuse substantial existing fixtures rather than creating a second model writer.
- Verify included/nested ordinary declarations with omitted IDs, Unicode/CRLF,
comment preservation, historical fields, exact warning/error attribution and
stabilized index spans in the returned bytes. Existing relevant integration
tests may supply this evidence when actually run on the candidate.
- Assert both short typed syntax and long ordinary analysis constructors remain
rejected through public entry points. Keep malformed/future headers rejected;
retain existing overbudget, stale compiled input and lossy-save safeguards.
- Run the core library suite, relevant existing source-project/identity/migration/
checked-save/disk-transaction integration tests, strict core all-target Clippy
and format disposition. Inventory test names before selecting focused commands
so a zero-test invocation cannot count. Prior private acceptance and stack
controls remain required regressions.
- Build a non-test consumer and exercise a real CLI source check and rename
preview over an ordinary multi-file input. Assert expected report/model/bytes
and that check/preview leaves every input unchanged. Use existing CLI semantics;
do not bypass discovery or perform a disk write merely to prove preview.
Keep source fixes and new evaluator expectations separate in the evidence. Record
initial failures, source/artifact identities and the precise tests that now reach
previously masked behavior. Root owns compilation, integration acceptance and
publication; bounded workers may implement and independently review. The remote
publication/comment failure does not turn local commits into shared handoffs.