Record verified source3 migration bridge and containment gates

This commit is contained in:
2026-09-12 21:51:59 -07:00
parent 0f002b4254
commit 29525d7823
31 changed files with 16757 additions and 6 deletions
+9 -6
View File
@@ -67,14 +67,17 @@ failures and corrections. Earlier authoring and allocation checkpoints remain in
## Isolated contributions and material limitations
Analysis/core source checkpoint **2c515cf3bdb3f707beee320be8fed90cffb40757**,
Analysis/core source checkpoint **6216cff4cfeb1502b8453b40547aacb74941f2b2**,
publication branch `codex/analysis-core-956atf-20260911`, is not integrated into
production. It adds source-save decode/equality containment and a private staged
expression parser. All11 parser and4 save-guard tests pass on518 unchanged inputs
in separate focused Windows runs. The full library run has98 passes and16 failures:
14 reject the unsupported source8 header and2 expose a legacy migration envelope
containing the new definitions field. Strict Clippy fails on the private parser's
enum naming. [Exact passes and failures](release-analysis-source-s0-s1-20260913.md).
expression parser, then repairs the frozen source3 lowering envelope. All4 bridge,
11 parser and4 save-guard tests and strict all-target Clippy pass on520 unchanged
inputs. [Exact bridge and syntax evidence](release-analysis-source3-bridge-20260913.md).
The earlier2c515cf full library run had98 passes and16 failures:14 rejected the
unsupported source8 header and2 exposed the now-corrected legacy bridge mismatch.
Its original failed suite and naming lint remain in
[historical evidence](release-analysis-source-s0-s1-20260913.md). No current full-suite
or complete bundle migration acceptance is established.
Its design and source reviews are preserved in that branch's
`harness/analysis-source8-20260913/`. Public source8 support remains incomplete.
At its earlier **847b1caa7e75bb82f6ce5193c45bcfc45973ad1a** base, Windows checks
@@ -0,0 +1,20 @@
# Source3 bridge Windows gate evidence
This archive follows the [failed historical S0/S1 gates](../analysis-source-s0-s1-windows-20260913/README.md), preserving those results unchanged. The private enum rename at [9ff6e7c](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/9ff6e7cf7a3b16ed42edd35a1f640b251e9b7756) passed strict all-target Clippy. The explicit source3 bridge at [6216cff](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/6216cff4cfeb1502b8453b40547aacb74941f2b2) passed its focused Windows gates and strict all-target Clippy. Source and design remain at those published commits; no source snapshots are duplicated here.
[manifest.json](manifest.json) binds 26 raw files (653,720 bytes): six completed result/log/input triples, four admission receipts, recorder and admission helpers, and two independent reviews. Each receipt retains its own original raw input manifest and absolute provenance paths. Executables and toolchains are omitted; artifact hashes remain in the original receipts. Reproduction requires the pinned source and a matching Windows toolchain/build environment, adapting recorded absolute paths.
| Gate | Source | Actual result |
| --- | --- | --- |
| Strict Clippy, all targets | 9ff6e7c | Exit 0; 518 unchanged inputs |
| Listing | 6216cff | Exit 0; 118 unique tests |
| Source3 bridge | 6216cff | Exit 0; 4 passed |
| Staged syntax | 6216cff | Exit 0; 11 passed |
| Save containment guard | 6216cff | Exit 0; 4 passed |
| Strict Clippy, all targets | 6216cff | Exit 0; 520 unchanged inputs |
All five 6216cff receipts bind 520 unchanged inputs. Archive verification matched each source's full recorded input set against immutable Git blobs, checked admission hashes, and verified that the listing is exactly the [original 114-test listing](../analysis-source-s0-s1-windows-20260913/evidence/.local/analysis-source-gates-20260913/list-2c515cf-r2.result.json) plus the four independently named bridge tests. All nineteen focused test names match their admitted selections and passed. The original listing dependency was published in root `0f002b4`; its hash is retained in this manifest rather than duplicating its bytes.
The bridge constructs the closed source3 migration envelope explicitly, retaining strict legacy-wire rejection and refusing current-only scratch data. The implementation review preserves the reserved `activity` alias finding and the subsequent `reviewed_activity` correction; source inspection at review time is distinct from the later four actual passing tests. The second review preserves the diagnosis and the boundary between this correction and complete source8 migration.
The 6216cff strict log was copied only after its final receipt and confirmed process closure (2026-09-13 04:48:59.657325 UTC). No compiler, UI, source edit or analysis-worktree mutation was performed during archiving. These passes do not establish a passing full library suite, public source8 parsing/writing, bundle migration, source save/update/reopen, resource-profile adoption or GUI behavior. No full-suite rerun is represented here; the older 98-pass/16-failure result remains historical evidence at its own pin.
@@ -0,0 +1,58 @@
"""Admit the four independently named bridge cases and retained S0/S1 cases."""
from pathlib import Path
import hashlib, json, re, subprocess, sys
base=Path(__file__).resolve().parent.parent
root=base/'.local/analysis-core-worktree-20260911'
folder=base/'.local/analysis-source-gates-20260913'
name=sys.argv[1]
assert re.fullmatch(r'[a-zA-Z0-9-]+',name)
path=folder/(name+'.result.json'); record=json.loads(path.read_bytes())
assert record['exit']==0 and not record['changed_inputs'] and record['source']==record['head_after']
assert subprocess.check_output(['git','rev-parse','HEAD'],cwd=root).decode().strip()==record['source']
inputs_path=folder/record['inputs']; inputs=json.loads(inputs_path.read_bytes())
assert inputs['source']==record['source'] and len(inputs['inputs'])==520
for entry in inputs['inputs']:
raw=(root/entry['path']).read_bytes()
assert len(raw)==entry['bytes'] and hashlib.sha256(raw).hexdigest()==entry['sha256']
assert len(record['artifacts'])==1
artifact=record['artifacts'][0]; raw=Path(artifact['path']).read_bytes()
assert len(raw)==artifact['bytes'] and hashlib.sha256(raw).hexdigest()==artifact['sha256']
log_path=folder/(name+'.log'); log=log_path.read_text(encoding='utf-8')
if record['command'][-1]=='--list':
original_path=folder/'list-2c515cf-r2.result.json'
original=json.loads(original_path.read_bytes())
admission=json.loads((folder/'list-2c515cf-r2.admission.json').read_bytes())
assert admission['result_sha256']==hashlib.sha256(original_path.read_bytes()).hexdigest()
assert len(original['listing_members'])==114
new_names={ 'language::source3_bridge::tests::'+n for n in [
'frozen_source3_and_json3_have_complete_model_and_migration_parity',
'frozen_wire_still_rejects_new_unknown_and_duplicate_fields',
'old_review_prose_survives_without_admitting_semantic_fields',
'scratch_bridge_refuses_to_discard_current_only_data'] }
names=record['listing_members']
assert len(names)==len(set(names))==118
assert set(names)==set(original['listing_members'])|new_names
assert re.findall(r'^(\d+) tests, (\d+) benchmarks\s*$',log,re.M)==[('118','0')]
mode='list'
else:
listing_name,selector=sys.argv[2:4]
listing_path=folder/(listing_name+'.result.json'); listing=json.loads(listing_path.read_bytes())
admission=json.loads((folder/(listing_name+'.admission.json')).read_bytes())
assert admission['result_sha256']==hashlib.sha256(listing_path.read_bytes()).hexdigest()
assert admission['source']==listing['source']==record['source']
assert admission['artifact']==artifact and admission['mode']=='list'
assert selector in record['command']
names=[n for n in listing['listing_members'] if selector in n]
actual=re.findall(r'^test ([^\r\n]+) \.\.\. ok\s*$',log,re.M)
assert names and len(actual)==len(set(actual)) and set(actual)==set(names)
assert re.search(rf'test result: ok\. {len(actual)} passed; 0 failed; 0 ignored;',log)
mode='focused'
receipt={'source':record['source'],'mode':mode,'artifact':artifact,'names':names,
'result_sha256':hashlib.sha256(path.read_bytes()).hexdigest(),
'inputs_sha256':hashlib.sha256(inputs_path.read_bytes()).hexdigest(),
'log_sha256':hashlib.sha256(log_path.read_bytes()).hexdigest(),
'verified_inputs':len(inputs['inputs']),
'admission_helper_sha256':hashlib.sha256(Path(__file__).read_bytes()).hexdigest()}
with (folder/(name+'.admission.json')).open('x',encoding='utf-8',newline='\n') as stream:
stream.write(json.dumps(receipt,indent=2)+'\n')
print(json.dumps({'name':name,'mode':mode,'members':len(names),'source':record['source']}))
@@ -0,0 +1,20 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"mode": "focused",
"artifact": {
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
},
"names": [
"language::source3_bridge::tests::frozen_source3_and_json3_have_complete_model_and_migration_parity",
"language::source3_bridge::tests::frozen_wire_still_rejects_new_unknown_and_duplicate_fields",
"language::source3_bridge::tests::old_review_prose_survives_without_admitting_semantic_fields",
"language::source3_bridge::tests::scratch_bridge_refuses_to_discard_current_only_data"
],
"result_sha256": "9e18625c4a5356742ce4a038f18b334c55a53087fb24ba409f024134993b348c",
"inputs_sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9",
"log_sha256": "aef3f8f339b86a41a102d3898beb16119141c1c8bd7f11da075816c8400ae9fd",
"verified_inputs": 520,
"admission_helper_sha256": "769119fb82c3a0807caba97e74bb4577236678eb6d92b00839333ff01f941365"
}
@@ -0,0 +1,11 @@
Finished `test` profile [unoptimized] target(s) in 2.92s
Running unittests src\lib.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-checked-save-target-20260913\debug\deps\oa_core-73987e0d7089bf1e.exe)
running 4 tests
test language::source3_bridge::tests::frozen_source3_and_json3_have_complete_model_and_migration_parity ... ok
test language::source3_bridge::tests::frozen_wire_still_rejects_new_unknown_and_duplicate_fields ... ok
test language::source3_bridge::tests::old_review_prose_survives_without_admitting_semantic_fields ... ok
test language::source3_bridge::tests::scratch_bridge_refuses_to_discard_current_only_data ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 114 filtered out; finished in 0.24s
@@ -0,0 +1,36 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"head_after": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"start": "2026-09-13T04:42:59.913598+00:00",
"end": "2026-09-13T04:43:04.027602+00:00",
"exit": 0,
"command": [
"cargo",
"test",
"--locked",
"-p",
"oa-core",
"--lib",
"language::source3_bridge::tests",
"--",
"--test-threads=1"
],
"inputs": "bridge-6216cff.inputs.json",
"changed_inputs": [],
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
}
],
"environment": {
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
"CARGO_BUILD_JOBS": "1",
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup"
},
"listing_members": [],
"listing_count": 0,
"listing_scope": "Names emitted by this actual Cargo test listing; focused/full runtime results have their own receipts."
}
@@ -0,0 +1,134 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"mode": "list",
"artifact": {
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
},
"names": [
"analysis::admission::meter_tests::call_key_scan_and_argument_lookup_have_separate_precharges",
"analysis::admission::meter_tests::relation_subject_resolution_charges_each_hop_and_bounds_cycles",
"analysis::admission::meter_tests::static_meter_exact_boundary_zero_charge_and_exhaustion_latch",
"analysis::admission::meter_tests::wide_expression_children_are_charged_before_they_are_queued",
"analysis::tests::affine_definitions_require_linear_matching_difference_and_valid_units",
"analysis::tests::anonymous_dimension_algebra_and_affine_rules_share_pure_runtime_helpers",
"analysis::tests::calculations_are_pure_parameters_are_scoped_and_calls_bind_exactly",
"analysis::tests::complete_real_model_roundtrips_and_exposes_explicit_effective_bindings",
"analysis::tests::deletion_requires_explicit_repairs_in_the_same_atomic_batch",
"analysis::tests::empty_lists_require_context_and_lists_are_flat_bounded_homogeneous",
"analysis::tests::equal_dimensions_do_not_create_nominal_compatibility",
"analysis::tests::every_case_is_checked_and_baseline_edits_cannot_introduce_a_case_only_cycle",
"analysis::tests::existing_transport_record_limits_count_definitions_parameters_overrides_and_nodes",
"analysis::tests::frozen_schema7_upgrades_without_interpreting_descriptive_metadata",
"analysis::tests::global_reidentify_rewrites_typed_domains_but_preserves_scoped_parameters",
"analysis::tests::layers_subject_kinds_and_display_units_are_strict",
"analysis::tests::logical_depth_and_call_depth_have_exact_boundaries",
"analysis::tests::map_key_collision_is_rejected_before_any_reference_mutation",
"analysis::tests::narrow_override_commands_preserve_missing_clear_and_history",
"analysis::tests::static_types_do_not_evaluate_domain_conditions_or_check_truth",
"analysis::tests::static_work_is_lowerable_deterministic_and_aggregated_across_cases",
"analysis::tests::stored_closure_limit_aggregates_distinct_called_definitions",
"analysis::tests::unsupported_transition_and_header_only_review_fail_explicitly",
"analysis::tests::unused_branches_still_reject_wrong_types_references_and_cycles",
"analysis::tests::wire_contract_rejects_unknown_imports_duplicates_missing_fields_and_noncanonical_exact",
"analysis_numeric::tests::affine_conversion_rejects_a_wider_stage_even_when_the_final_value_would_fit",
"analysis_numeric::tests::affine_point_and_difference_arithmetic_has_distinct_kinds",
"analysis_numeric::tests::anonymous_product_then_quotient_closes_and_preserves_scaling",
"analysis_numeric::tests::arithmetic_matches_independent_small_integer_oracle",
"analysis_numeric::tests::both_reduced_component_overflows_are_reported",
"analysis_numeric::tests::c1_expanded_call_witness_terminates_at_dynamic_limit",
"analysis_numeric::tests::canonical_wire_rejects_both_component_noncanonical_forms",
"analysis_numeric::tests::cross_products_cancel_before_reduced_component_limit",
"analysis_numeric::tests::decimals_are_exact_and_source_ratios_reduce",
"analysis_numeric::tests::dimensions_use_checked_seven_axis_integer_algebra",
"analysis_numeric::tests::duration_unit_coordinates_are_exact_and_nominal",
"analysis_numeric::tests::exact_accounting_boundary_and_terminal_failure_are_stable",
"analysis_numeric::tests::full_8193_bit_sum_intermediate_can_reduce_to_admitted_value",
"analysis_numeric::tests::full_independent_r7_packets_round_trip_as_literals_and_wire",
"analysis_numeric::tests::literal_reader_does_not_fold_expression_unary_minus",
"analysis_numeric::tests::literal_syntax_and_decimal_exponent_are_bounded",
"analysis_numeric::tests::multiple_targets_share_one_aggregate_meter",
"analysis_numeric::tests::nominal_kinds_survive_comparison_but_explicit_quotients_can_erase_dimension",
"analysis_numeric::tests::numeric_precharge_precedes_big_integer_result_allocation",
"analysis_numeric::tests::numerical_power_types_and_dimension_overflow_are_checked",
"analysis_numeric::tests::powers_and_signs_have_explicit_domains",
"analysis_numeric::tests::provisional_limits_and_effective_limits_round_trip",
"analysis_numeric::tests::r6_anonymous_compound_energy_needs_one_outer_assertion",
"analysis_numeric::tests::serde_uses_closed_canonical_string_wire",
"analysis_numeric::tests::wire_rejects_4097_bits_before_gcd_can_reduce_them",
"analysis_numeric::tests::zero_cost_and_maximum_reservation_do_not_underflow_or_reactivate",
"language::analysis_source::tests::budgets_aggregate_across_fragments_and_latch_numeric_exhaustion",
"language::analysis_source::tests::byte_token_frame_logical_and_list_boundaries_have_nearby_successes",
"language::analysis_source::tests::every_expression_shape_and_exact_constructor_arity_is_represented",
"language::analysis_source::tests::flat_binary_depth_and_malformed_constructor_retain_bounded_completed_children",
"language::analysis_source::tests::mixed_precedence_and_grouping_have_independent_expected_child_topology",
"language::analysis_source::tests::partial_wide_and_deep_input_cleanup_does_not_poison_a_fresh_parse",
"language::analysis_source::tests::public_source_headers_and_existing_numeric_token_controls_are_unchanged",
"language::analysis_source::tests::raw_numeric_lexing_preserves_exact_atoms_and_operator_boundaries",
"language::analysis_source::tests::repeated_call_argument_occurrences_have_distinct_original_spans",
"language::analysis_source::tests::significant_ratio_and_quantity_trivia_preserve_original_spans",
"language::analysis_source::tests::unary_literals_precedence_and_comparison_children_keep_distinct_trees",
"language::nesting_tests::checked_in_example_supports_cross_file_reparent_without_changing_allocations",
"language::nesting_tests::checked_in_nested_example_has_stable_ids_typed_exchanges_and_three_clear_views",
"language::nesting_tests::containment_validation_rejects_allocation_like_or_cross_layer_nesting",
"language::nesting_tests::declarations_are_preorder_occurrences_with_real_own_field_and_body_spans",
"language::nesting_tests::deep_declaration_parsing_and_positions_use_a_bounded_rust_stack",
"language::nesting_tests::matching_explicit_parent_is_accepted_but_none_or_another_owner_is_located",
"language::nesting_tests::nested_aliases_remain_global_and_forward_references_remain_legal",
"language::nesting_tests::nested_elements_infer_only_parent_and_keep_typed_fields_and_allocations_explicit",
"language::nesting_tests::nested_fragment_id_stabilization_preserves_comments_and_indexes_real_bytes",
"language::nesting_tests::nested_record_admission_precedes_resolution_and_typed_depth_stays_bounded",
"language::nesting_tests::non_elements_includes_and_declarations_inside_typed_values_are_rejected",
"language::nesting_tests::normative_nested_ownership_example_compiles_as_a_source_fragment",
"language::nesting_tests::syntax_edit_positions_retain_duplicate_identity_occurrences_during_a_command",
"language::nesting_tests::tolerant_nested_analysis_retains_closed_children_before_an_unfinished_sibling",
"language::source3_bridge::tests::frozen_source3_and_json3_have_complete_model_and_migration_parity",
"language::source3_bridge::tests::frozen_wire_still_rejects_new_unknown_and_duplicate_fields",
"language::source3_bridge::tests::old_review_prose_survives_without_admitting_semantic_fields",
"language::source3_bridge::tests::scratch_bridge_refuses_to_discard_current_only_data",
"persistence::json_codec::tests::codec_lifecycle_subprocess",
"persistence::json_codec::tests::json_profile_does_not_contract_declared_cli_collection_counts",
"persistence::json_codec::tests::production_save_always_reopens_with_its_reader_profile",
"persistence::json_codec::tests::remote_serde_keeps_each_existing_expression_variant",
"persistence::json_codec::tests::resource_preflight_has_exact_lowerable_boundaries",
"persistence::json_codec::tests::scanner_is_not_a_parallel_json_grammar",
"persistence::source_save_tests::equal_project_from_generated_legacy_source_still_rejects_migration",
"persistence::source_save_tests::generated_source_admission_checks_final_newline_under_the_effective_byte_limit",
"persistence::source_save_tests::malformed_generated_source_rejects_before_any_filesystem_staging",
"persistence::source_save_tests::parseable_source_omitting_a_definition_cannot_replace_the_whole_project",
"semantic::catalog::coverage::every_current_payload_field_has_a_closed_typed_capture_and_write_scope",
"source_files::transaction_tests::interrupted_publication_without_write_marker_never_rolls_back_external_matching_bytes",
"source_files::transaction_tests::interrupted_save_and_interrupted_recovery_can_both_be_resumed",
"source_files::transaction_tests::journal_publication_does_not_replace_empty_target_created_after_precheck",
"source_files::transaction_tests::journal_publication_exhaustion_and_permanent_errors_keep_stage_and_report_original_path",
"source_files::transaction_tests::journal_publication_never_replaces_another_journal_that_appears_during_retry",
"source_files::transaction_tests::journal_publication_retries_only_transient_windows_errors_before_transferring_ownership",
"source_files::transaction_tests::malformed_v2_write_marker_refuses_recovery_without_changing_source_bytes",
"source_files::transaction_tests::partial_save_failures_restore_every_original_and_write_entry_last",
"source_files::transaction_tests::recovery_before_any_write_accepts_v2_marker_and_keeps_v1_rollback_compatibility",
"source_files::transaction_tests::recovery_rechecks_external_changes_between_restorations",
"source_files::transaction_tests::recovery_rejects_untrusted_escape_paths_before_touching_files",
"source_files::transaction_tests::rollback_refuses_external_edits_even_in_an_unchanged_dependency",
"source_files::transaction_tests::rollback_removes_only_our_new_file_and_retains_detached_files",
"source_files::transaction_tests::unwritten_journal_never_rolls_back_a_completed_writer_with_identical_after_bytes",
"topology_context::analysis::tests::edge_work_budget_stops_repeated_expansion_not_just_output_storage",
"topology_context::analysis::tests::exact_edge_budget_includes_reference_boundaries_and_node_abort_has_no_bypass",
"topology_context::analysis::tests::unresolved_authored_edges_consume_work_budget_without_stored_output",
"validation::coverage::tests::malformed_self_reuse_is_bounded_even_without_structural_gate",
"view_options::tests::global_behavior_coverage_and_chosen_context_are_independent_intersecting_predicates",
"view_options::tests::hidden_identity_survives_label_and_category_changes_without_mutating_the_model",
"view_options::tests::no_lines_and_explicit_trace_selection_include_actual_trace_identities",
"view_options::tests::omission_reasons_distinguish_missing_placements_folded_edges_and_explicit_hides",
"view_options::tests::persisted_empty_selectors_and_lifecycle_never_widen_to_all",
"view_options::tests::reusable_sequences_and_nested_scenarios_use_listed_contributions_in_both_layers",
"view_options::tests::separate_category_families_obey_all_any_empty_and_union_truth_table",
"view_options::tests::traceability_defaults_preserve_both_layers_and_explicit_selectors_still_apply",
"view_options::tests::wrong_family_layer_and_unknown_references_reject_and_draft_filters_fail_closed"
],
"result_sha256": "0a03e438210d20f2295a0c4021c26eb1bc5ce4fe845309ea25a393113657f827",
"inputs_sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9",
"log_sha256": "4994cd9e4c6172b44b1ab22fa0d98160df6febe1f0e71a217c136191a0628feb",
"verified_inputs": 520,
"admission_helper_sha256": "769119fb82c3a0807caba97e74bb4577236678eb6d92b00839333ff01f941365"
}
@@ -0,0 +1,123 @@
Compiling oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-core-worktree-20260911\crates\oa-core)
Finished `test` profile [unoptimized] target(s) in 3m 20s
Running unittests src\lib.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-checked-save-target-20260913\debug\deps\oa_core-73987e0d7089bf1e.exe)
analysis::admission::meter_tests::call_key_scan_and_argument_lookup_have_separate_precharges: test
analysis::admission::meter_tests::relation_subject_resolution_charges_each_hop_and_bounds_cycles: test
analysis::admission::meter_tests::static_meter_exact_boundary_zero_charge_and_exhaustion_latch: test
analysis::admission::meter_tests::wide_expression_children_are_charged_before_they_are_queued: test
analysis::tests::affine_definitions_require_linear_matching_difference_and_valid_units: test
analysis::tests::anonymous_dimension_algebra_and_affine_rules_share_pure_runtime_helpers: test
analysis::tests::calculations_are_pure_parameters_are_scoped_and_calls_bind_exactly: test
analysis::tests::complete_real_model_roundtrips_and_exposes_explicit_effective_bindings: test
analysis::tests::deletion_requires_explicit_repairs_in_the_same_atomic_batch: test
analysis::tests::empty_lists_require_context_and_lists_are_flat_bounded_homogeneous: test
analysis::tests::equal_dimensions_do_not_create_nominal_compatibility: test
analysis::tests::every_case_is_checked_and_baseline_edits_cannot_introduce_a_case_only_cycle: test
analysis::tests::existing_transport_record_limits_count_definitions_parameters_overrides_and_nodes: test
analysis::tests::frozen_schema7_upgrades_without_interpreting_descriptive_metadata: test
analysis::tests::global_reidentify_rewrites_typed_domains_but_preserves_scoped_parameters: test
analysis::tests::layers_subject_kinds_and_display_units_are_strict: test
analysis::tests::logical_depth_and_call_depth_have_exact_boundaries: test
analysis::tests::map_key_collision_is_rejected_before_any_reference_mutation: test
analysis::tests::narrow_override_commands_preserve_missing_clear_and_history: test
analysis::tests::static_types_do_not_evaluate_domain_conditions_or_check_truth: test
analysis::tests::static_work_is_lowerable_deterministic_and_aggregated_across_cases: test
analysis::tests::stored_closure_limit_aggregates_distinct_called_definitions: test
analysis::tests::unsupported_transition_and_header_only_review_fail_explicitly: test
analysis::tests::unused_branches_still_reject_wrong_types_references_and_cycles: test
analysis::tests::wire_contract_rejects_unknown_imports_duplicates_missing_fields_and_noncanonical_exact: test
analysis_numeric::tests::affine_conversion_rejects_a_wider_stage_even_when_the_final_value_would_fit: test
analysis_numeric::tests::affine_point_and_difference_arithmetic_has_distinct_kinds: test
analysis_numeric::tests::anonymous_product_then_quotient_closes_and_preserves_scaling: test
analysis_numeric::tests::arithmetic_matches_independent_small_integer_oracle: test
analysis_numeric::tests::both_reduced_component_overflows_are_reported: test
analysis_numeric::tests::c1_expanded_call_witness_terminates_at_dynamic_limit: test
analysis_numeric::tests::canonical_wire_rejects_both_component_noncanonical_forms: test
analysis_numeric::tests::cross_products_cancel_before_reduced_component_limit: test
analysis_numeric::tests::decimals_are_exact_and_source_ratios_reduce: test
analysis_numeric::tests::dimensions_use_checked_seven_axis_integer_algebra: test
analysis_numeric::tests::duration_unit_coordinates_are_exact_and_nominal: test
analysis_numeric::tests::exact_accounting_boundary_and_terminal_failure_are_stable: test
analysis_numeric::tests::full_8193_bit_sum_intermediate_can_reduce_to_admitted_value: test
analysis_numeric::tests::full_independent_r7_packets_round_trip_as_literals_and_wire: test
analysis_numeric::tests::literal_reader_does_not_fold_expression_unary_minus: test
analysis_numeric::tests::literal_syntax_and_decimal_exponent_are_bounded: test
analysis_numeric::tests::multiple_targets_share_one_aggregate_meter: test
analysis_numeric::tests::nominal_kinds_survive_comparison_but_explicit_quotients_can_erase_dimension: test
analysis_numeric::tests::numeric_precharge_precedes_big_integer_result_allocation: test
analysis_numeric::tests::numerical_power_types_and_dimension_overflow_are_checked: test
analysis_numeric::tests::powers_and_signs_have_explicit_domains: test
analysis_numeric::tests::provisional_limits_and_effective_limits_round_trip: test
analysis_numeric::tests::r6_anonymous_compound_energy_needs_one_outer_assertion: test
analysis_numeric::tests::serde_uses_closed_canonical_string_wire: test
analysis_numeric::tests::wire_rejects_4097_bits_before_gcd_can_reduce_them: test
analysis_numeric::tests::zero_cost_and_maximum_reservation_do_not_underflow_or_reactivate: test
language::analysis_source::tests::budgets_aggregate_across_fragments_and_latch_numeric_exhaustion: test
language::analysis_source::tests::byte_token_frame_logical_and_list_boundaries_have_nearby_successes: test
language::analysis_source::tests::every_expression_shape_and_exact_constructor_arity_is_represented: test
language::analysis_source::tests::flat_binary_depth_and_malformed_constructor_retain_bounded_completed_children: test
language::analysis_source::tests::mixed_precedence_and_grouping_have_independent_expected_child_topology: test
language::analysis_source::tests::partial_wide_and_deep_input_cleanup_does_not_poison_a_fresh_parse: test
language::analysis_source::tests::public_source_headers_and_existing_numeric_token_controls_are_unchanged: test
language::analysis_source::tests::raw_numeric_lexing_preserves_exact_atoms_and_operator_boundaries: test
language::analysis_source::tests::repeated_call_argument_occurrences_have_distinct_original_spans: test
language::analysis_source::tests::significant_ratio_and_quantity_trivia_preserve_original_spans: test
language::analysis_source::tests::unary_literals_precedence_and_comparison_children_keep_distinct_trees: test
language::nesting_tests::checked_in_example_supports_cross_file_reparent_without_changing_allocations: test
language::nesting_tests::checked_in_nested_example_has_stable_ids_typed_exchanges_and_three_clear_views: test
language::nesting_tests::containment_validation_rejects_allocation_like_or_cross_layer_nesting: test
language::nesting_tests::declarations_are_preorder_occurrences_with_real_own_field_and_body_spans: test
language::nesting_tests::deep_declaration_parsing_and_positions_use_a_bounded_rust_stack: test
language::nesting_tests::matching_explicit_parent_is_accepted_but_none_or_another_owner_is_located: test
language::nesting_tests::nested_aliases_remain_global_and_forward_references_remain_legal: test
language::nesting_tests::nested_elements_infer_only_parent_and_keep_typed_fields_and_allocations_explicit: test
language::nesting_tests::nested_fragment_id_stabilization_preserves_comments_and_indexes_real_bytes: test
language::nesting_tests::nested_record_admission_precedes_resolution_and_typed_depth_stays_bounded: test
language::nesting_tests::non_elements_includes_and_declarations_inside_typed_values_are_rejected: test
language::nesting_tests::normative_nested_ownership_example_compiles_as_a_source_fragment: test
language::nesting_tests::syntax_edit_positions_retain_duplicate_identity_occurrences_during_a_command: test
language::nesting_tests::tolerant_nested_analysis_retains_closed_children_before_an_unfinished_sibling: test
language::source3_bridge::tests::frozen_source3_and_json3_have_complete_model_and_migration_parity: test
language::source3_bridge::tests::frozen_wire_still_rejects_new_unknown_and_duplicate_fields: test
language::source3_bridge::tests::old_review_prose_survives_without_admitting_semantic_fields: test
language::source3_bridge::tests::scratch_bridge_refuses_to_discard_current_only_data: test
persistence::json_codec::tests::codec_lifecycle_subprocess: test
persistence::json_codec::tests::json_profile_does_not_contract_declared_cli_collection_counts: test
persistence::json_codec::tests::production_save_always_reopens_with_its_reader_profile: test
persistence::json_codec::tests::remote_serde_keeps_each_existing_expression_variant: test
persistence::json_codec::tests::resource_preflight_has_exact_lowerable_boundaries: test
persistence::json_codec::tests::scanner_is_not_a_parallel_json_grammar: test
persistence::source_save_tests::equal_project_from_generated_legacy_source_still_rejects_migration: test
persistence::source_save_tests::generated_source_admission_checks_final_newline_under_the_effective_byte_limit: test
persistence::source_save_tests::malformed_generated_source_rejects_before_any_filesystem_staging: test
persistence::source_save_tests::parseable_source_omitting_a_definition_cannot_replace_the_whole_project: test
semantic::catalog::coverage::every_current_payload_field_has_a_closed_typed_capture_and_write_scope: test
source_files::transaction_tests::interrupted_publication_without_write_marker_never_rolls_back_external_matching_bytes: test
source_files::transaction_tests::interrupted_save_and_interrupted_recovery_can_both_be_resumed: test
source_files::transaction_tests::journal_publication_does_not_replace_empty_target_created_after_precheck: test
source_files::transaction_tests::journal_publication_exhaustion_and_permanent_errors_keep_stage_and_report_original_path: test
source_files::transaction_tests::journal_publication_never_replaces_another_journal_that_appears_during_retry: test
source_files::transaction_tests::journal_publication_retries_only_transient_windows_errors_before_transferring_ownership: test
source_files::transaction_tests::malformed_v2_write_marker_refuses_recovery_without_changing_source_bytes: test
source_files::transaction_tests::partial_save_failures_restore_every_original_and_write_entry_last: test
source_files::transaction_tests::recovery_before_any_write_accepts_v2_marker_and_keeps_v1_rollback_compatibility: test
source_files::transaction_tests::recovery_rechecks_external_changes_between_restorations: test
source_files::transaction_tests::recovery_rejects_untrusted_escape_paths_before_touching_files: test
source_files::transaction_tests::rollback_refuses_external_edits_even_in_an_unchanged_dependency: test
source_files::transaction_tests::rollback_removes_only_our_new_file_and_retains_detached_files: test
source_files::transaction_tests::unwritten_journal_never_rolls_back_a_completed_writer_with_identical_after_bytes: test
topology_context::analysis::tests::edge_work_budget_stops_repeated_expansion_not_just_output_storage: test
topology_context::analysis::tests::exact_edge_budget_includes_reference_boundaries_and_node_abort_has_no_bypass: test
topology_context::analysis::tests::unresolved_authored_edges_consume_work_budget_without_stored_output: test
validation::coverage::tests::malformed_self_reuse_is_bounded_even_without_structural_gate: test
view_options::tests::global_behavior_coverage_and_chosen_context_are_independent_intersecting_predicates: test
view_options::tests::hidden_identity_survives_label_and_category_changes_without_mutating_the_model: test
view_options::tests::no_lines_and_explicit_trace_selection_include_actual_trace_identities: test
view_options::tests::omission_reasons_distinguish_missing_placements_folded_edges_and_explicit_hides: test
view_options::tests::persisted_empty_selectors_and_lifecycle_never_widen_to_all: test
view_options::tests::reusable_sequences_and_nested_scenarios_use_listed_contributions_in_both_layers: test
view_options::tests::separate_category_families_obey_all_any_empty_and_union_truth_table: test
view_options::tests::traceability_defaults_preserve_both_layers_and_explicit_selectors_still_apply: test
view_options::tests::wrong_family_layer_and_unknown_references_reject_and_draft_filters_fail_closed: test
118 tests, 0 benchmarks
@@ -0,0 +1,154 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"head_after": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"start": "2026-09-13T04:38:38.926624+00:00",
"end": "2026-09-13T04:42:01.628680+00:00",
"exit": 0,
"command": [
"cargo",
"test",
"--locked",
"-p",
"oa-core",
"--lib",
"--",
"--list"
],
"inputs": "list-6216cff.inputs.json",
"changed_inputs": [],
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
}
],
"environment": {
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
"CARGO_BUILD_JOBS": "1",
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup"
},
"listing_members": [
"analysis::admission::meter_tests::call_key_scan_and_argument_lookup_have_separate_precharges",
"analysis::admission::meter_tests::relation_subject_resolution_charges_each_hop_and_bounds_cycles",
"analysis::admission::meter_tests::static_meter_exact_boundary_zero_charge_and_exhaustion_latch",
"analysis::admission::meter_tests::wide_expression_children_are_charged_before_they_are_queued",
"analysis::tests::affine_definitions_require_linear_matching_difference_and_valid_units",
"analysis::tests::anonymous_dimension_algebra_and_affine_rules_share_pure_runtime_helpers",
"analysis::tests::calculations_are_pure_parameters_are_scoped_and_calls_bind_exactly",
"analysis::tests::complete_real_model_roundtrips_and_exposes_explicit_effective_bindings",
"analysis::tests::deletion_requires_explicit_repairs_in_the_same_atomic_batch",
"analysis::tests::empty_lists_require_context_and_lists_are_flat_bounded_homogeneous",
"analysis::tests::equal_dimensions_do_not_create_nominal_compatibility",
"analysis::tests::every_case_is_checked_and_baseline_edits_cannot_introduce_a_case_only_cycle",
"analysis::tests::existing_transport_record_limits_count_definitions_parameters_overrides_and_nodes",
"analysis::tests::frozen_schema7_upgrades_without_interpreting_descriptive_metadata",
"analysis::tests::global_reidentify_rewrites_typed_domains_but_preserves_scoped_parameters",
"analysis::tests::layers_subject_kinds_and_display_units_are_strict",
"analysis::tests::logical_depth_and_call_depth_have_exact_boundaries",
"analysis::tests::map_key_collision_is_rejected_before_any_reference_mutation",
"analysis::tests::narrow_override_commands_preserve_missing_clear_and_history",
"analysis::tests::static_types_do_not_evaluate_domain_conditions_or_check_truth",
"analysis::tests::static_work_is_lowerable_deterministic_and_aggregated_across_cases",
"analysis::tests::stored_closure_limit_aggregates_distinct_called_definitions",
"analysis::tests::unsupported_transition_and_header_only_review_fail_explicitly",
"analysis::tests::unused_branches_still_reject_wrong_types_references_and_cycles",
"analysis::tests::wire_contract_rejects_unknown_imports_duplicates_missing_fields_and_noncanonical_exact",
"analysis_numeric::tests::affine_conversion_rejects_a_wider_stage_even_when_the_final_value_would_fit",
"analysis_numeric::tests::affine_point_and_difference_arithmetic_has_distinct_kinds",
"analysis_numeric::tests::anonymous_product_then_quotient_closes_and_preserves_scaling",
"analysis_numeric::tests::arithmetic_matches_independent_small_integer_oracle",
"analysis_numeric::tests::both_reduced_component_overflows_are_reported",
"analysis_numeric::tests::c1_expanded_call_witness_terminates_at_dynamic_limit",
"analysis_numeric::tests::canonical_wire_rejects_both_component_noncanonical_forms",
"analysis_numeric::tests::cross_products_cancel_before_reduced_component_limit",
"analysis_numeric::tests::decimals_are_exact_and_source_ratios_reduce",
"analysis_numeric::tests::dimensions_use_checked_seven_axis_integer_algebra",
"analysis_numeric::tests::duration_unit_coordinates_are_exact_and_nominal",
"analysis_numeric::tests::exact_accounting_boundary_and_terminal_failure_are_stable",
"analysis_numeric::tests::full_8193_bit_sum_intermediate_can_reduce_to_admitted_value",
"analysis_numeric::tests::full_independent_r7_packets_round_trip_as_literals_and_wire",
"analysis_numeric::tests::literal_reader_does_not_fold_expression_unary_minus",
"analysis_numeric::tests::literal_syntax_and_decimal_exponent_are_bounded",
"analysis_numeric::tests::multiple_targets_share_one_aggregate_meter",
"analysis_numeric::tests::nominal_kinds_survive_comparison_but_explicit_quotients_can_erase_dimension",
"analysis_numeric::tests::numeric_precharge_precedes_big_integer_result_allocation",
"analysis_numeric::tests::numerical_power_types_and_dimension_overflow_are_checked",
"analysis_numeric::tests::powers_and_signs_have_explicit_domains",
"analysis_numeric::tests::provisional_limits_and_effective_limits_round_trip",
"analysis_numeric::tests::r6_anonymous_compound_energy_needs_one_outer_assertion",
"analysis_numeric::tests::serde_uses_closed_canonical_string_wire",
"analysis_numeric::tests::wire_rejects_4097_bits_before_gcd_can_reduce_them",
"analysis_numeric::tests::zero_cost_and_maximum_reservation_do_not_underflow_or_reactivate",
"language::analysis_source::tests::budgets_aggregate_across_fragments_and_latch_numeric_exhaustion",
"language::analysis_source::tests::byte_token_frame_logical_and_list_boundaries_have_nearby_successes",
"language::analysis_source::tests::every_expression_shape_and_exact_constructor_arity_is_represented",
"language::analysis_source::tests::flat_binary_depth_and_malformed_constructor_retain_bounded_completed_children",
"language::analysis_source::tests::mixed_precedence_and_grouping_have_independent_expected_child_topology",
"language::analysis_source::tests::partial_wide_and_deep_input_cleanup_does_not_poison_a_fresh_parse",
"language::analysis_source::tests::public_source_headers_and_existing_numeric_token_controls_are_unchanged",
"language::analysis_source::tests::raw_numeric_lexing_preserves_exact_atoms_and_operator_boundaries",
"language::analysis_source::tests::repeated_call_argument_occurrences_have_distinct_original_spans",
"language::analysis_source::tests::significant_ratio_and_quantity_trivia_preserve_original_spans",
"language::analysis_source::tests::unary_literals_precedence_and_comparison_children_keep_distinct_trees",
"language::nesting_tests::checked_in_example_supports_cross_file_reparent_without_changing_allocations",
"language::nesting_tests::checked_in_nested_example_has_stable_ids_typed_exchanges_and_three_clear_views",
"language::nesting_tests::containment_validation_rejects_allocation_like_or_cross_layer_nesting",
"language::nesting_tests::declarations_are_preorder_occurrences_with_real_own_field_and_body_spans",
"language::nesting_tests::deep_declaration_parsing_and_positions_use_a_bounded_rust_stack",
"language::nesting_tests::matching_explicit_parent_is_accepted_but_none_or_another_owner_is_located",
"language::nesting_tests::nested_aliases_remain_global_and_forward_references_remain_legal",
"language::nesting_tests::nested_elements_infer_only_parent_and_keep_typed_fields_and_allocations_explicit",
"language::nesting_tests::nested_fragment_id_stabilization_preserves_comments_and_indexes_real_bytes",
"language::nesting_tests::nested_record_admission_precedes_resolution_and_typed_depth_stays_bounded",
"language::nesting_tests::non_elements_includes_and_declarations_inside_typed_values_are_rejected",
"language::nesting_tests::normative_nested_ownership_example_compiles_as_a_source_fragment",
"language::nesting_tests::syntax_edit_positions_retain_duplicate_identity_occurrences_during_a_command",
"language::nesting_tests::tolerant_nested_analysis_retains_closed_children_before_an_unfinished_sibling",
"language::source3_bridge::tests::frozen_source3_and_json3_have_complete_model_and_migration_parity",
"language::source3_bridge::tests::frozen_wire_still_rejects_new_unknown_and_duplicate_fields",
"language::source3_bridge::tests::old_review_prose_survives_without_admitting_semantic_fields",
"language::source3_bridge::tests::scratch_bridge_refuses_to_discard_current_only_data",
"persistence::json_codec::tests::codec_lifecycle_subprocess",
"persistence::json_codec::tests::json_profile_does_not_contract_declared_cli_collection_counts",
"persistence::json_codec::tests::production_save_always_reopens_with_its_reader_profile",
"persistence::json_codec::tests::remote_serde_keeps_each_existing_expression_variant",
"persistence::json_codec::tests::resource_preflight_has_exact_lowerable_boundaries",
"persistence::json_codec::tests::scanner_is_not_a_parallel_json_grammar",
"persistence::source_save_tests::equal_project_from_generated_legacy_source_still_rejects_migration",
"persistence::source_save_tests::generated_source_admission_checks_final_newline_under_the_effective_byte_limit",
"persistence::source_save_tests::malformed_generated_source_rejects_before_any_filesystem_staging",
"persistence::source_save_tests::parseable_source_omitting_a_definition_cannot_replace_the_whole_project",
"semantic::catalog::coverage::every_current_payload_field_has_a_closed_typed_capture_and_write_scope",
"source_files::transaction_tests::interrupted_publication_without_write_marker_never_rolls_back_external_matching_bytes",
"source_files::transaction_tests::interrupted_save_and_interrupted_recovery_can_both_be_resumed",
"source_files::transaction_tests::journal_publication_does_not_replace_empty_target_created_after_precheck",
"source_files::transaction_tests::journal_publication_exhaustion_and_permanent_errors_keep_stage_and_report_original_path",
"source_files::transaction_tests::journal_publication_never_replaces_another_journal_that_appears_during_retry",
"source_files::transaction_tests::journal_publication_retries_only_transient_windows_errors_before_transferring_ownership",
"source_files::transaction_tests::malformed_v2_write_marker_refuses_recovery_without_changing_source_bytes",
"source_files::transaction_tests::partial_save_failures_restore_every_original_and_write_entry_last",
"source_files::transaction_tests::recovery_before_any_write_accepts_v2_marker_and_keeps_v1_rollback_compatibility",
"source_files::transaction_tests::recovery_rechecks_external_changes_between_restorations",
"source_files::transaction_tests::recovery_rejects_untrusted_escape_paths_before_touching_files",
"source_files::transaction_tests::rollback_refuses_external_edits_even_in_an_unchanged_dependency",
"source_files::transaction_tests::rollback_removes_only_our_new_file_and_retains_detached_files",
"source_files::transaction_tests::unwritten_journal_never_rolls_back_a_completed_writer_with_identical_after_bytes",
"topology_context::analysis::tests::edge_work_budget_stops_repeated_expansion_not_just_output_storage",
"topology_context::analysis::tests::exact_edge_budget_includes_reference_boundaries_and_node_abort_has_no_bypass",
"topology_context::analysis::tests::unresolved_authored_edges_consume_work_budget_without_stored_output",
"validation::coverage::tests::malformed_self_reuse_is_bounded_even_without_structural_gate",
"view_options::tests::global_behavior_coverage_and_chosen_context_are_independent_intersecting_predicates",
"view_options::tests::hidden_identity_survives_label_and_category_changes_without_mutating_the_model",
"view_options::tests::no_lines_and_explicit_trace_selection_include_actual_trace_identities",
"view_options::tests::omission_reasons_distinguish_missing_placements_folded_edges_and_explicit_hides",
"view_options::tests::persisted_empty_selectors_and_lifecycle_never_widen_to_all",
"view_options::tests::reusable_sequences_and_nested_scenarios_use_listed_contributions_in_both_layers",
"view_options::tests::separate_category_families_obey_all_any_empty_and_union_truth_table",
"view_options::tests::traceability_defaults_preserve_both_layers_and_explicit_selectors_still_apply",
"view_options::tests::wrong_family_layer_and_unknown_references_reject_and_draft_filters_fail_closed"
],
"listing_count": 118,
"listing_scope": "Names emitted by this actual Cargo test listing; focused/full runtime results have their own receipts."
}
@@ -0,0 +1,20 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"mode": "focused",
"artifact": {
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
},
"names": [
"persistence::source_save_tests::equal_project_from_generated_legacy_source_still_rejects_migration",
"persistence::source_save_tests::generated_source_admission_checks_final_newline_under_the_effective_byte_limit",
"persistence::source_save_tests::malformed_generated_source_rejects_before_any_filesystem_staging",
"persistence::source_save_tests::parseable_source_omitting_a_definition_cannot_replace_the_whole_project"
],
"result_sha256": "56d364bc87c3d62de2182c96e452d8f334e8502469617728603f05268157a42f",
"inputs_sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9",
"log_sha256": "f33b47ad23784e1997a2e410818a8d5d05167badd0e818e0f9856df427e4f3a6",
"verified_inputs": 520,
"admission_helper_sha256": "769119fb82c3a0807caba97e74bb4577236678eb6d92b00839333ff01f941365"
}
@@ -0,0 +1,11 @@
Finished `test` profile [unoptimized] target(s) in 2.97s
Running unittests src\lib.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-checked-save-target-20260913\debug\deps\oa_core-73987e0d7089bf1e.exe)
running 4 tests
test persistence::source_save_tests::equal_project_from_generated_legacy_source_still_rejects_migration ... ok
test persistence::source_save_tests::generated_source_admission_checks_final_newline_under_the_effective_byte_limit ... ok
test persistence::source_save_tests::malformed_generated_source_rejects_before_any_filesystem_staging ... ok
test persistence::source_save_tests::parseable_source_omitting_a_definition_cannot_replace_the_whole_project ... ok
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 114 filtered out; finished in 0.47s
@@ -0,0 +1,36 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"head_after": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"start": "2026-09-13T04:44:29.924388+00:00",
"end": "2026-09-13T04:44:35.226219+00:00",
"exit": 0,
"command": [
"cargo",
"test",
"--locked",
"-p",
"oa-core",
"--lib",
"persistence::source_save_tests",
"--",
"--test-threads=1"
],
"inputs": "save-guard-6216cff.inputs.json",
"changed_inputs": [],
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
}
],
"environment": {
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
"CARGO_BUILD_JOBS": "1",
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup"
},
"listing_members": [],
"listing_count": 0,
"listing_scope": "Names emitted by this actual Cargo test listing; focused/full runtime results have their own receipts."
}
@@ -0,0 +1,2 @@
Checking oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-core-worktree-20260911\crates\oa-core)
Finished `dev` profile [unoptimized] target(s) in 3m 28s
@@ -0,0 +1,30 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"head_after": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"start": "2026-09-13T04:45:29.575052+00:00",
"end": "2026-09-13T04:48:59.657325+00:00",
"exit": 0,
"command": [
"cargo",
"clippy",
"--locked",
"-p",
"oa-core",
"--all-targets",
"--",
"-D",
"warnings"
],
"inputs": "strict-6216cff.inputs.json",
"changed_inputs": [],
"artifacts": [],
"environment": {
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
"CARGO_BUILD_JOBS": "1",
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup"
},
"listing_members": [],
"listing_count": 0,
"listing_scope": "Names emitted by this actual Cargo test listing; focused/full runtime results have their own receipts."
}
@@ -0,0 +1,2 @@
Checking oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-core-worktree-20260911\crates\oa-core)
Finished `dev` profile [unoptimized] target(s) in 4m 03s
@@ -0,0 +1,30 @@
{
"source": "9ff6e7cf7a3b16ed42edd35a1f640b251e9b7756",
"head_after": "9ff6e7cf7a3b16ed42edd35a1f640b251e9b7756",
"start": "2026-09-13T04:32:50.095018+00:00",
"end": "2026-09-13T04:36:58.830378+00:00",
"exit": 0,
"command": [
"cargo",
"clippy",
"--locked",
"-p",
"oa-core",
"--all-targets",
"--",
"-D",
"warnings"
],
"inputs": "strict-9ff6e7c.inputs.json",
"changed_inputs": [],
"artifacts": [],
"environment": {
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
"CARGO_BUILD_JOBS": "1",
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup"
},
"listing_members": [],
"listing_count": 0,
"listing_scope": "Names emitted by this actual Cargo test listing; focused/full runtime results have their own receipts."
}
@@ -0,0 +1,27 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"mode": "focused",
"artifact": {
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
},
"names": [
"language::analysis_source::tests::budgets_aggregate_across_fragments_and_latch_numeric_exhaustion",
"language::analysis_source::tests::byte_token_frame_logical_and_list_boundaries_have_nearby_successes",
"language::analysis_source::tests::every_expression_shape_and_exact_constructor_arity_is_represented",
"language::analysis_source::tests::flat_binary_depth_and_malformed_constructor_retain_bounded_completed_children",
"language::analysis_source::tests::mixed_precedence_and_grouping_have_independent_expected_child_topology",
"language::analysis_source::tests::partial_wide_and_deep_input_cleanup_does_not_poison_a_fresh_parse",
"language::analysis_source::tests::public_source_headers_and_existing_numeric_token_controls_are_unchanged",
"language::analysis_source::tests::raw_numeric_lexing_preserves_exact_atoms_and_operator_boundaries",
"language::analysis_source::tests::repeated_call_argument_occurrences_have_distinct_original_spans",
"language::analysis_source::tests::significant_ratio_and_quantity_trivia_preserve_original_spans",
"language::analysis_source::tests::unary_literals_precedence_and_comparison_children_keep_distinct_trees"
],
"result_sha256": "1352b2c4405e782dc4281d3f8a374360461293bf43855236901533a55797fe92",
"inputs_sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9",
"log_sha256": "21df0ec0768a23a21cd4fb515d06c30407cc5fe5bd62cf7bb8de6175492f7fc4",
"verified_inputs": 520,
"admission_helper_sha256": "769119fb82c3a0807caba97e74bb4577236678eb6d92b00839333ff01f941365"
}
@@ -0,0 +1,18 @@
Finished `test` profile [unoptimized] target(s) in 2.65s
Running unittests src\lib.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\analysis-checked-save-target-20260913\debug\deps\oa_core-73987e0d7089bf1e.exe)
running 11 tests
test language::analysis_source::tests::budgets_aggregate_across_fragments_and_latch_numeric_exhaustion ... ok
test language::analysis_source::tests::byte_token_frame_logical_and_list_boundaries_have_nearby_successes ... ok
test language::analysis_source::tests::every_expression_shape_and_exact_constructor_arity_is_represented ... ok
test language::analysis_source::tests::flat_binary_depth_and_malformed_constructor_retain_bounded_completed_children ... ok
test language::analysis_source::tests::mixed_precedence_and_grouping_have_independent_expected_child_topology ... ok
test language::analysis_source::tests::partial_wide_and_deep_input_cleanup_does_not_poison_a_fresh_parse ... ok
test language::analysis_source::tests::public_source_headers_and_existing_numeric_token_controls_are_unchanged ... ok
test language::analysis_source::tests::raw_numeric_lexing_preserves_exact_atoms_and_operator_boundaries ... ok
test language::analysis_source::tests::repeated_call_argument_occurrences_have_distinct_original_spans ... ok
test language::analysis_source::tests::significant_ratio_and_quantity_trivia_preserve_original_spans ... ok
test language::analysis_source::tests::unary_literals_precedence_and_comparison_children_keep_distinct_trees ... ok
test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 107 filtered out; finished in 0.74s
@@ -0,0 +1,36 @@
{
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"head_after": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"start": "2026-09-13T04:43:47.590943+00:00",
"end": "2026-09-13T04:43:52.389037+00:00",
"exit": 0,
"command": [
"cargo",
"test",
"--locked",
"-p",
"oa-core",
"--lib",
"language::analysis_source::tests",
"--",
"--test-threads=1"
],
"inputs": "syntax-6216cff.inputs.json",
"changed_inputs": [],
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-73987e0d7089bf1e.exe",
"bytes": 35508224,
"sha256": "7e43a1d608a372a60389baba21949631003e63a73996531ddf52f615d1faf42d"
}
],
"environment": {
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913",
"CARGO_BUILD_JOBS": "1",
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup"
},
"listing_members": [],
"listing_count": 0,
"listing_scope": "Names emitted by this actual Cargo test listing; focused/full runtime results have their own receipts."
}
@@ -0,0 +1,40 @@
# Source3 bridge correction review
2026-09-13. Codex-956atf `/root/source8_syntax_review`, GPT-6 Astra. Source diagnosis at immutable `2c515cf3bdb3f707beee320be8fed90cffb40757`, using git blobs plus the parent's `.local/analysis-source-gates-20260913/full-2c515cf.log`. No source edits, compilation, tests, GUI or Gitea operations. Root owns S4 and integration; this is a bounded correction proposal.
## Finding and boundary
`language.rs:1838` serializes the **current** Project as JSON, replaces its elements with the source3 payload map, then deserializes that value into the frozen `persistence::v3::Project3`. Current `model.rs::Project` always serializes its `definitions` field, even when empty. `migration_v3/mod.rs:10–28` correctly has a closed Project3 envelope with no such field. The log's two checked-in nesting/example failures are therefore expected at this intermediate conversion: `unknown field definitions` before actual v3 migration. The other fourteen reported lib failures stop at unsupported source8 and are a separate unfinished adapter boundary.
Recommend an **explicit source-only construction of Project3**, preserving the frozen JSON decoder unchanged. Do not remove `deny_unknown_fields`, add defaults/ignored fields, strip new fields from arbitrary external JSON, or rebrand the internal current Project as a schema3 wire object. Old input rejection is correct; the trusted source lowering bridge chose the wrong envelope.
The bridge alone will not make the two checked-in bundle tests pass. `source_project.rs::compile_bundle` calls `source_migration::upgrade`, whose token update emits SCHEMA_VERSION (8), calls `compile_once` again and compares the entire Project. That final header remains intentionally rejected at this pin. Fixing the bridge should expose that later boundary, not bypass recompile/equality, emit a false source7 version or enable source8 prematurely.
## Smallest principled implementation
Keep the change private to `language.rs` (or a small private helper called only from the `legacy == schema_version == 3` branch), leaving `v3::migrate`, JSON decoding and the source-token migration route intact.
1. Exhaustively destructure the current temporary Project **without `..`**. Preserve schema_version/id/alias/name/description and every applicable map. This forces future top-level fields to receive an explicit bridge decision.
2. Reject a nonempty `definitions` map and a nonempty current `elements` map before constructing the frozen envelope. The source3 parser cannot populate definitions, and its elements live exclusively in `legacy_elements`; these are source-lowering invariants, not permission to discard real data. Use an ordinary typed error, not only debug assertions. A private bridge test can deliberately violate both invariants.
3. Construct `v3::Project3` directly. Decode the existing `Value::Object(legacy_elements)` into the frozen `BTreeMap<Id, Element3>`. Convert the already typed relations to `Relation3` without omitting fields (either existing localized serialize/deserialize or explicit unchanged header+serialized body construction). Move diagrams and artifact_links directly because Project3 already shares those exact types.
4. Convert traces through the frozen `Trace4` contract, preserving all prose/history. A localized `serde_json::to_value(traces)` then `from_value::<BTreeMap<Id, Trace4>>` is a small strict conversion and keeps rejection of unexpected semantic content. Alternatively retain the parsed Trace4 values before `Trace::from` in the existing trace branch, but that adds a second temporary map and need not be part of this fix. Avoid a blanket reverse `From<Trace>` that silently throws away semantic history.
5. Call the existing `v3::migrate(old, limits)` and retain the existing error mapping to declaration/field spans and kind/layer verification. Preserve the same ParseLimits and allocation/reference checks. No generic public current-to-legacy exporter is needed.
The nested conversions in steps3–4 keep their existing strict shape checks while removing only the erroneous whole-current-Project envelope round trip. They need not add a new persistent model, schema or migration path. If retaining a local helper improves direct invariant testing, its name and documentation should explicitly say it consumes **source3 lowering scratch state**, not arbitrary accepted current Projects.
Important corrected observation: `TraceBaseline.semantic` in `model.rs` has `skip_serializing_if = Option::is_none`. Thus an ordinary nonempty legacy baseline does **not** currently leak `semantic: null`; the observed defect is definitions. Trace preservation remains a valuable discriminator for the replacement bridge, not a second reproduced defect. Explicit authored `semantic none` must still reject: `language/semantic_source.rs::resolve_baseline` checks the field's presence before interpreting null for source versions below5.
## Tests that distinguish the boundary
Add focused regressions that can pass before public source8 exists; keep the existing end-to-end tests unchanged as later S4 gates.
1. **Genuine source3 lowering equals frozen JSON migration.** Reuse `tests/fixtures/v3-data-contract.arcadia` and `.json`; call `language::parse_with_report` and `persistence::decode_with_report` directly, compare complete Project **and** MigrationReport, assert definitions empty and from_schema3/to_schemaSCHEMA_VERSION. Assert deterministic generated allocation IDs, ordered protocol defaults and retained message expression/ambiguity. The first half of `r6_migration::genuine_v3_preserves_typed_ports_and_allocates_deterministic_relationships` already defines this oracle, but its later canonical source8 reopen cannot pass yet. Add a separate targeted test rather than weakening that test or counting its partial progress as a pass.
2. **No new fields laundered from old wire.** Starting from the frozen `.json` fixture (not serialization of a current Project), add top-level `definitions` separately as `{}`, `null`, and a populated object. Every input must fail public decode with an error identifying the unknown definitions field. Include an arbitrary unknown top-level field and duplicate raw JSON field/map-key controls; build duplicate examples from strings because serde_json::Value would erase the distinction before the public decoder. Retain `Project3`'s deny_unknown_fields, `unique_id_map` and `strict_value` unchanged.
3. **Prose baseline preserved; explicit semantic field rejected.** Create a small independently authored source3/JSON3 pair with OA Activity, SA Function and a valid Refinement trace whose nonempty old baseline names/descriptions differ from the live records, including newline/Unicode prose. Check full source/JSON migration equality and exact old prose, `baseline.semantic.is_none()`, and the review-default report. Then add `semantic none` to the source baseline and `"semantic": null` to the old JSON baseline; both reject, as do populated semantic values. Do not just change the version on the existing v4-reviewed-prose fixture: its bounded DataType/default/unit payloads are not valid source3. Existing `r3_migration::older_headers_cannot_admit_new_semantic_baselines` supplies related populated-field controls.
4. **Scratch-state omission invariants.** If a private helper is introduced, supply source3 scratch state with a real definition, with a current element outside legacy_elements, and with semantic trace content. Each must fail rather than produce a reduced Project3. Ordinary empty scratch state succeeds. These tests protect against a future caller treating the adapter as a lossy downgrade.
5. **Source-version and authored-field rejection remain exact.** Retain the staged test that source8 headers reject. Add/retain source3 failures for `quantity_kind`, short analysis declaration words, a top-level definitions field, source4-only `mechanism`/new relation constructors, and old explicit semantic fields. Assert the pertinent diagnostic, not just any error, so the former definitions leak cannot make every malformed source appear covered.
6. **Comments and bundle migration are S4 completion gates.** Reuse unchanged `r6_source::authored_v3_bundle_upgrade_preserves_includes_nested_ownership_comments_and_identity`, `omitted_ids_are_stabilized_before_allocation_identity_generation`, `inferring_a_legacy_path_keeps_rationale_inside_its_argument`, and the two logged checked-in nesting tests once the complete source8 path is composed. Keep exact untouched file bytes, IDs/owners, interface allocation placement, argument comments, and whole-model reopen equality. The bridge does not modify source bytes and should not change this token-preserving implementation merely to obtain a green intermediate test.
## Acceptance recommendation
Authorize this narrowly scoped bridge correction as source-level S4 preparation, subject to immutable review and the parent's compiler lease. A focused direct source3/JSON3 parity test plus strict old-wire/source negative controls is the useful immediate gate. Continued unsupported8 failures in canonical reopen/bundle migration are expected until the complete typed adapter is integrated; report them separately. Do not claim checked-save or migration completion from the bridge fix alone.
@@ -0,0 +1,28 @@
# Source3 bridge implementation review
2026-09-13. Reviewer Codex-956atf `/root/source8_syntax_review`, GPT-6 Astra. Read-only source review of `.local/a3-bridge-20260913`, branch `codex/analysis-source3-bridge-956atf`, base `2c515cf3bdb3f707beee320be8fed90cffb40757` plus the uncommitted bridge delta. Read applicable AGENTS.md and the two language.rs hunks, new bridge and four tests. No compiler, test execution, source edit, GUI or Gitea operation. Root owns correction and integration.
Reviewed initial bytes (SHA256): `language.rs` `806dc09bf643c2bce867afccad1b890e28718f5fae15fea883126458623d9c17`; `language/source3_bridge.rs` `e3a76cfdacf6d85ce3086dc9031aeab5115496786ddf197510939ac0e0c5310c`; `language/source3_bridge/tests.rs` `e649dcae26873091ff6378d14a36e876e6333bf0d5674915ee2682445c125a6f`. `git diff --check` produced no errors. Findings below refer to these bytes, even if the root fixes them during review.
## Finding requiring correction before the test gate
**P2 — Reserved alias makes the independent prose fixture invalid and blocks two new tests.** `source3_bridge/tests.rs:10` declares `oa_activity activity`, line13 references `@activity`, and `prose_json()` gives the OA record alias `activity`. `model.rs:1702–1738::reserved_alias` explicitly reserves `activity`. `language.rs:1225–1232::identifier` rejects this declaration with `Invalid or reserved alias 'activity'.`; public JSON decoding reaches `validation.rs:222` and rejects the same alias. Therefore `old_review_prose_survives_without_admitting_semantic_fields` fails at its initial positive-control unwrap, and `scratch_bridge_refuses_to_discard_current_only_data` fails when it decodes prose_json before reaching the current-element/semantic-content guards. The malformed semantic examples would also be masked by the earlier alias error if those positive unwraps were removed.
**Fix:** use an allowed alias such as `reviewed_activity` in both independent fixtures and the source trace reference; retain the UUID, display name, typed body and baseline prose. Do not relax reserved_alias or parser/validation checks. After correction, run all four bridge tests under the parent's compiler lease. The existing independent fixture construction is otherwise appropriate.
## Reviewed behavior without another source finding
- `source3_bridge.rs:13–49` exhaustively destructures Project without `..`, validates version3, refuses nonempty definitions/current elements, and constructs the actual closed Project3 envelope. Every remaining field is moved or converted through its existing nested frozen contract. No definition is removed from external JSON, no frozen DTO changes, and no public source8/version-policy change is present.
- Existing `legacy_elements` remain authoritative for source3 bodies. Relations still undergo a complete conversion to Relation3; old constructor validation remains in v3::migrate. Traces retain strict Trace4 decoding, so Some semantic history cannot disappear through a lossy reverse conversion. Diagram/artifact map types are the shared Project3 types. The language call site retains its original migration, limits, located error mapping and final body-kind checks.
- The frozen source/JSON parity test compares complete model and migration report without invoking the unfinished canonical source8 reader. Existing definitions{} / null / populated and arbitrary-unknown JSON controls reach the unchanged Project3 deny_unknown_fields path. The raw duplicate-schema replacement matches the checked-in fixture spelling and asserts that replacement occurred; json_codec's Version visitor uses serde's duplicate_field error, supporting the lowercase `duplicate` assertion.
- After the alias fix, the prose pair's OA Activity and SA Function unit constructors match model serde shapes and `validation::trace_permits` permits their Refinement trace. Both fixtures have matching stable IDs, aliases, empty descriptions, live names and old baseline prose, including newline/Unicode data. The baseline's historical names intentionally differ from live names. None semantic history is omitted on serialization by the existing model attribute; explicit source `semantic none` and populated semantic content are rejected before null interpretation for versions below5. The expected `require schema/source5` substring matches the current diagnostic.
- `SemanticBaseline { facets: Vec::new() }` is a valid Rust construction of the actual public struct (`semantic/types.rs:258`). The scratch test uses Some of it solely to verify that the frozen Trace4 conversion refuses the semantic field; semantic evaluation/validation is not needed to reach that rejection. Clearing elements before this particular guard avoids the earlier current-elements check, as intended.
- Fixture include paths resolve from `src/language/source3_bridge/tests.rs` to `crates/oa-core/tests/fixtures`. No test setup compiler defect was found by inspection. Compilation remains unperformed.
## Limits of this review
The bridge implementation has no additional identified production-source defect within this bounded review. Correcting the fixture alias is required before claiming four executable tests pass. This bridge does not repair canonical source8 output/reopening or bundle upgrade's final schema8 recompile; the existing end-to-end source/migration/checked-save gates must remain unchanged. No runtime or memory result is claimed.
## Correction follow-up
The root corrected all three OA alias spellings to `reviewed_activity` during review. Inspected updated test bytes SHA256 `b680e743554f995618473760b10ca0df509c88c1cdf8bf4cfe3edd95b4e3ce6f`: source declaration, source reference and independent JSON alias now agree, with the same UUIDs/names/prose. This addresses the identified fixture defect by source inspection. `function` is absent from the complete `model.rs::reserved_alias` list, has valid identifier characters, and is not a declaration word (`sa_function` is); it requires no rename. No additional finding remains on the reviewed corrected source. Compiler/runtime verification is still pending.
@@ -0,0 +1,69 @@
"""Bind one isolated analysis source gate to committed inputs and actual output."""
from pathlib import Path
from datetime import datetime, timezone
import hashlib
import json
import os
import re
import subprocess
import sys
base = Path(__file__).resolve().parent.parent
root = base / '.local/analysis-core-worktree-20260911'
source, name, mode = sys.argv[1:4]
assert re.fullmatch(r'[a-zA-Z0-9-]+', name)
assert subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=root).decode().strip() == source
out = base / '.local/analysis-source-gates-20260913'
out.mkdir(exist_ok=True)
assert not any((out / (name + s)).exists() for s in ('.inputs.json', '.log', '.result.json'))
prefix = ['cargo', 'test', '--locked', '-p', 'oa-core', '--lib']
commands = {
'list': prefix + ['--', '--list'],
'focused': prefix + [sys.argv[4] if len(sys.argv) > 4 else 'analysis_source', '--', '--test-threads=1'],
'full': prefix + ['--', '--test-threads=1'],
'clippy': ['cargo', 'clippy', '--locked', '-p', 'oa-core', '--all-targets', '--', '-D', 'warnings'],
}
command = commands[mode]
paths = subprocess.check_output(['git', 'ls-tree', '-r', '--name-only', source, 'Cargo.toml', 'Cargo.lock', 'rust-toolchain.toml', '.cargo', 'build', 'crates', 'assets', 'docs', 'examples', 'harness/fixtures'], cwd=root).decode().splitlines()
blobs = subprocess.check_output(['git', 'cat-file', '--batch'], cwd=root,
input=''.join(f'{source}:{p}\n' for p in paths).encode())
offset, inputs = 0, []
for path in paths:
end = blobs.index(b'\n', offset)
_, kind, size = blobs[offset:end].split()
assert kind == b'blob'
size = int(size)
raw = blobs[end + 1:end + 1 + size]
assert (root / path).read_bytes() == raw, path
inputs.append({'path': path, 'bytes': size, 'sha256': hashlib.sha256(raw).hexdigest()})
offset = end + size + 2
assert offset == len(blobs)
manifest = out / (name + '.inputs.json')
manifest.write_text(json.dumps({'source': source, 'inputs': inputs}, indent=2) + '\n', encoding='utf-8', newline='\n')
started = datetime.now(timezone.utc).isoformat()
print(json.dumps({'start': started, 'command': command, 'source': source, 'inputs': len(inputs)}), flush=True)
log_path = out / (name + '.log')
with log_path.open('xb') as stream:
run = subprocess.run(command, cwd=root, stdout=stream, stderr=subprocess.STDOUT)
ended = datetime.now(timezone.utc).isoformat()
changed = [i['path'] for i in inputs if hashlib.sha256((root / i['path']).read_bytes()).hexdigest() != i['sha256']]
head_after = subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=root).decode().strip()
log = log_path.read_text(encoding='utf-8', errors='replace')
members = re.findall(r'^([^\r\n]+): test\r?$', log, re.M) if mode == 'list' else []
artifacts = []
for match in re.findall(r'Running unittests [^\r\n]+ \(([^\r\n]+\.exe)\)', log):
path = Path(match)
if not path.is_absolute():
path = root / path
raw = path.read_bytes()
artifacts.append({'path': str(path), 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()})
record = {'source': source, 'head_after': head_after, 'start': started, 'end': ended,
'exit': run.returncode, 'command': command, 'inputs': manifest.name,
'changed_inputs': changed, 'artifacts': artifacts,
'environment': {k: os.environ.get(k) for k in ['CARGO_TARGET_DIR', 'CARGO_BUILD_JOBS', 'CARGO_HOME', 'RUSTUP_HOME']},
'listing_members': members, 'listing_count': len(members),
'listing_scope': 'Names emitted by this actual Cargo test listing; focused/full runtime results have their own receipts.'}
(out / (name + '.result.json')).write_text(json.dumps(record, indent=2) + '\n', encoding='utf-8', newline='\n')
print(log[-14000:])
print(json.dumps({k:v for k,v in record.items() if k != 'listing_members'}))
sys.exit(run.returncode or int(bool(changed) or head_after != source))
@@ -0,0 +1,215 @@
{
"scope": "Historical Windows private-enum lint repair and source3 bridge gates; not full-suite or public source8 acceptance. Raw provenance preserved. Binaries/tools excluded.",
"files": [
{
"path": "evidence/.local/admit-analysis-bridge-gate.py",
"original_path": ".local/admit-analysis-bridge-gate.py",
"bytes": 3661,
"sha256": "769119fb82c3a0807caba97e74bb4577236678eb6d92b00839333ff01f941365"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/bridge-6216cff.admission.json",
"original_path": ".local/analysis-source-gates-20260913/bridge-6216cff.admission.json",
"bytes": 1153,
"sha256": "5804e4b5a34d9247ce102c4a356ee91abfdc9eff0abfed3f59f2732e9d88d486"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/bridge-6216cff.inputs.json",
"original_path": ".local/analysis-source-gates-20260913/bridge-6216cff.inputs.json",
"bytes": 96729,
"sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/bridge-6216cff.log",
"original_path": ".local/analysis-source-gates-20260913/bridge-6216cff.log",
"bytes": 757,
"sha256": "aef3f8f339b86a41a102d3898beb16119141c1c8bd7f11da075816c8400ae9fd"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/bridge-6216cff.result.json",
"original_path": ".local/analysis-source-gates-20260913/bridge-6216cff.result.json",
"bytes": 1296,
"sha256": "9e18625c4a5356742ce4a038f18b334c55a53087fb24ba409f024134993b348c"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/list-6216cff.admission.json",
"original_path": ".local/analysis-source-gates-20260913/list-6216cff.admission.json",
"bytes": 12355,
"sha256": "483bdc1c3be24327334186c96c2b9f16c3d11a1415a5bd1ee1899a605f34db92"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/list-6216cff.inputs.json",
"original_path": ".local/analysis-source-gates-20260913/list-6216cff.inputs.json",
"bytes": 96729,
"sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/list-6216cff.log",
"original_path": ".local/analysis-source-gates-20260913/list-6216cff.log",
"bytes": 11862,
"sha256": "4994cd9e4c6172b44b1ab22fa0d98160df6febe1f0e71a217c136191a0628feb"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/list-6216cff.result.json",
"original_path": ".local/analysis-source-gates-20260913/list-6216cff.result.json",
"bytes": 12851,
"sha256": "0a03e438210d20f2295a0c4021c26eb1bc5ce4fe845309ea25a393113657f827"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/save-guard-6216cff.admission.json",
"original_path": ".local/analysis-source-gates-20260913/save-guard-6216cff.admission.json",
"bytes": 1195,
"sha256": "0558b42748012158ff98b67ba09e94a15599568cc3f9f0b4df01f61f0d350d62"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/save-guard-6216cff.inputs.json",
"original_path": ".local/analysis-source-gates-20260913/save-guard-6216cff.inputs.json",
"bytes": 96729,
"sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/save-guard-6216cff.log",
"original_path": ".local/analysis-source-gates-20260913/save-guard-6216cff.log",
"bytes": 799,
"sha256": "f33b47ad23784e1997a2e410818a8d5d05167badd0e818e0f9856df427e4f3a6"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/save-guard-6216cff.result.json",
"original_path": ".local/analysis-source-gates-20260913/save-guard-6216cff.result.json",
"bytes": 1299,
"sha256": "56d364bc87c3d62de2182c96e452d8f334e8502469617728603f05268157a42f"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/strict-6216cff.inputs.json",
"original_path": ".local/analysis-source-gates-20260913/strict-6216cff.inputs.json",
"bytes": 96729,
"sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/strict-6216cff.log",
"original_path": ".local/analysis-source-gates-20260913/strict-6216cff.log",
"bytes": 188,
"sha256": "00cc2e949d9c2f5669a1a5defc464fba2f99e58c69c21ccb47e8c9ed7ed94027"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/strict-6216cff.result.json",
"original_path": ".local/analysis-source-gates-20260913/strict-6216cff.result.json",
"bytes": 991,
"sha256": "03de7c202e7bf64b41669709ad389f10b95f7d77ff28af8ce2c22725a6952fb7"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/strict-9ff6e7c.inputs.json",
"original_path": ".local/analysis-source-gates-20260913/strict-9ff6e7c.inputs.json",
"bytes": 96363,
"sha256": "96d00855dd87402af5a86299c787fdd3a7615b08de379f554f71b934250a31d2"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/strict-9ff6e7c.log",
"original_path": ".local/analysis-source-gates-20260913/strict-9ff6e7c.log",
"bytes": 188,
"sha256": "309479389b77afc6c2ede09999590df2b5e491c4cb0b4141b15c7e561d7db1a1"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/strict-9ff6e7c.result.json",
"original_path": ".local/analysis-source-gates-20260913/strict-9ff6e7c.result.json",
"bytes": 991,
"sha256": "19fdc951a53cc513f1011182156db945d061ad45c348763ecf4b73321aed446c"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/syntax-6216cff.admission.json",
"original_path": ".local/analysis-source-gates-20260913/syntax-6216cff.admission.json",
"bytes": 1952,
"sha256": "67b750c971a18ec02913999c393b1096d33de64c099666f972472836a7765d7c"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/syntax-6216cff.inputs.json",
"original_path": ".local/analysis-source-gates-20260913/syntax-6216cff.inputs.json",
"bytes": 96729,
"sha256": "ab10852a62745296709729f8a3e6331d0cfc8ac59ad174687a773e66b4dcf4b9"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/syntax-6216cff.log",
"original_path": ".local/analysis-source-gates-20260913/syntax-6216cff.log",
"bytes": 1593,
"sha256": "21df0ec0768a23a21cd4fb515d06c30407cc5fe5bd62cf7bb8de6175492f7fc4"
},
{
"path": "evidence/.local/analysis-source-gates-20260913/syntax-6216cff.result.json",
"original_path": ".local/analysis-source-gates-20260913/syntax-6216cff.result.json",
"bytes": 1297,
"sha256": "1352b2c4405e782dc4281d3f8a374360461293bf43855236901533a55797fe92"
},
{
"path": "evidence/.local/analysis-source-legacy-bridge-review-20260913.md",
"original_path": ".local/analysis-source-legacy-bridge-review-20260913.md",
"bytes": 9307,
"sha256": "191f8299017cb98a4c19f5944fd9160f5dfe8db3da25e90b40720d7fd6b3d9a4"
},
{
"path": "evidence/.local/analysis-source3-bridge-implementation-review-20260913.md",
"original_path": ".local/analysis-source3-bridge-implementation-review-20260913.md",
"bytes": 6112,
"sha256": "8926e4c0926d77d5cad74c5d166cad9ca916a851bddc69222502e14dd4dc7ae7"
},
{
"path": "evidence/.local/run-analysis-source-gate.py",
"original_path": ".local/run-analysis-source-gate.py",
"bytes": 3865,
"sha256": "d8d9c1c9e9dc94fdd43afb4118ebc491c8eb6d89082f8441f8395b9d4265b068"
}
],
"verification": [
{
"name": "strict-9ff6e7c",
"source": "9ff6e7cf7a3b16ed42edd35a1f640b251e9b7756",
"exit": 0,
"unchanged_inputs": 518,
"passed_tests": 0
},
{
"name": "list-6216cff",
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"exit": 0,
"unchanged_inputs": 520,
"passed_tests": 0
},
{
"name": "bridge-6216cff",
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"exit": 0,
"unchanged_inputs": 520,
"passed_tests": 4
},
{
"name": "syntax-6216cff",
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"exit": 0,
"unchanged_inputs": 520,
"passed_tests": 11
},
{
"name": "save-guard-6216cff",
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"exit": 0,
"unchanged_inputs": 520,
"passed_tests": 4
},
{
"name": "strict-6216cff",
"source": "6216cff4cfeb1502b8453b40547aacb74941f2b2",
"exit": 0,
"unchanged_inputs": 520,
"passed_tests": 0
}
],
"listing_membership": "118 = original114 + four independently named bridge tests",
"original_listing": {
"path": "harness/experiments/analysis-source-s0-s1-windows-20260913/evidence/.local/analysis-source-gates-20260913/list-2c515cf-r2.result.json",
"sha256": "478ca437f0904c1d2561f41e93c00646595b676530f0cd975f40f9e835e93df5",
"published_root": "0f002b4"
},
"immutable_source_inputs_verified": {
"9ff6e7cf7a3b16ed42edd35a1f640b251e9b7756": 518,
"6216cff4cfeb1502b8453b40547aacb74941f2b2": 520
}
}
@@ -0,0 +1,7 @@
# Analysis source3 bridge Windows evidence — 2026-09-13
The [gate archive](experiments/analysis-source3-bridge-windows-20260913/README.md) records successful strict Clippy after the private enum rename at [9ff6e7c](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/9ff6e7cf7a3b16ed42edd35a1f640b251e9b7756), followed by the source3 bridge at [6216cff](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/6216cff4cfeb1502b8453b40547aacb74941f2b2).
At 6216cff, four bridge tests, eleven staged syntax tests and four save-containment tests passed; strict all-target Clippy also passed. The listing contains exactly the previous 114 names plus four bridge tests. All five current receipts bind 520 unchanged inputs, verified against immutable Git blobs; the earlier strict receipt binds 518. Raw logs, separate input manifests, admission hashes, helpers and reviews are preserved, including the reserved-alias fixture finding and correction.
This is bounded Windows evidence, not a published release or full source8 acceptance. The [earlier failed suite and strict results](release-analysis-source-s0-s1-20260913.md) remain unchanged at their original source pin. No current full-suite result, public source8 save/read/update/reopen, complete bundle migration or GUI acceptance is claimed. Executables and toolchains are omitted from this source/evidence archive.