Files
ARCADIA-Studio/harness/experiments/analysis-output-acceptance-20260925/WARNING-FIX-ORACLE.md
T

4.9 KiB
Raw Blame History

Independent correction: rich/four-file retained warnings

Initial4872141 focused evidence reports9 passes and two failing empty-warning expectations. These are evaluator errors; my precompile review also missed them. Preserve that attempt, original reviewed hash and failed assertions. This correction is derived from validator/mapper source and independently authored expected output literals, not from runtime diagnostic contents. No parser/test/compiler executed for the oracle.

Exactly two ordered warnings

Both fixture families contain one unallocated leaf Work, ID00000000-0000-0000-0000-000000000002, with no same-kind child, allocation, process/chain or scenario inclusion. Rich SA additionally contains a system, so missing_system does not apply. All names are nonempty; calculations/properties do not introduce another work element; no capabilities/missions/exchanges/scenarios exist. Diagrams do not count as behavior inclusion.

validation.rs:434–445 emits the ordinary leaf allocation warning. Then, after successful structural validation, validation.rs:1043–1045 invokes coverage.validate. validation/coverage.rs:65–77 emits the advisory behavior-context warning for the same ungrouped/unincluded work. This second warning must not be omitted. validation.rs:30–33 converts its empty field argument to None. Existing project/tests.rs:167+ independently retains both warnings for these same work-model semantics, corroborating rather than replacing this source derivation.

Expected warning array order:

Position code field exact message
0 unallocated_leaf Some("allocation") Allocate leaf 'Work' to a performer.
1 work_without_behavior_context None Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.

Both have severityWarning, object_idSome(ID2), empty related, and the same complete ordinary Work declaration location listed below. They are not sorted alphabetically. Mapper field_span falls back to owner.span because allocation is not authored; None also uses owner.span (mixed/project.rs:668–687). The ordinary span includes the closing brace, but excludes following line ending. Renaming aliases does not change the warning's display-name Work.

Exact output locations

Expected literal family path span line column
Rich OA LF main.arcadia 338..403 6 1
Rich SA LF main.arcadia 338..403 6 1
Rich OA Unicode/CRLF main.arcadia 351..416 7 1
Rich SA Unicode/CRLF main.arcadia 351..416 7 1
Four-file cross-family swap b.arcadia 25..90 2 1

Rich work line is exactly oa_activity p "Work" id "00000000-0000-0000-0000-000000000002" {} or the equal-length sa_function variant. Unicode mode prepends // 雨\r\n (8 UTF-8 bytes) and converts every LF toCRLF. Five preceding LF replacements plus the8-byte prefix shift the work start by13 and line by1. Four-file b begins // f and w are comments\r\n (25 bytes), followed by the65-byte activity declaration with aliasf, thenCRLF. Positions were independently checked by raw-byte substring arithmetic on the expected literals, not a production token scanner.

Exact W and final O+W

First warning: code16 + field10 + message36 =62 bytes before path. Second: code29 + field0 + message112 =141 bytes before path. Each owns its own path string, even though both paths are equal.

  • Rich: path12 each; W.text=(12+62)+(12+141)=227, W.entries2, occurrences0.
  • Four-file: path9 each; W.text=(9+62)+(9+141)=221, W.entries2, occurrences0.
Family Existing actual output O New expected final accepted O+W
OA LF (3,0,942)=900+42 text (5,0,1169)
OA Unicode/CRLF (3,0,985)=943+42 (5,0,1212)
SA LF (3,0,1016)=974+42 (5,0,1243)
SA Unicode/CRLF (3,0,1059)=1017+42 (5,0,1286)
Four files (4,0,526) (6,0,747)

These are destination retained counts, not resolver/equality peaks. Roomy inherited policies in these tests already distinguish this content correction from a new boundary selection. No production change or cap increase is justified by empty-warning assertion failures.

Required test correction

Replace emptiness assertions with the entire ordered two-element SourceDiagnostic array, including every owned/scalar field and exact literal locations. Update final retained counts by W above. Keep full expected bundle/model/source preservation assertions unchanged, and preserve the initial9/2 attempt. Do not merely assert warning count/code or use actual validator output to build expected warnings. A helper may construct these two independently authored records from fixed path/span/line arguments.

The first proposed one-warning correction would still be incomplete: it would omit coverage's second advisory diagnostic and undercount each destination by one entry plus153 rich/150 four-file bytes. This oracle explicitly rejects that alternative before any repair run.