Implementation plan¶
- Reproduce automatic creation of a typo parameter through
create_modeland confirm the absence of structured diagnostics. Completed before changes. - Add immutable diagnostic values, a context-local grouped collector, and an exception snapshot. Instrument checked native failures and existing loss recorders without replacing current grouped logs.
- Record implicit parameter creation for initial assignments and variable rules. In strict scope, leave the unknown symbol undeclared and reject the completed construction before writing.
- Expose diagnostics and the opt-in strict flag through the factory. Document the distinction from serialized validation and the precise coverage limits.
- Add public-path regression tests for losses, strict authoring, preservation of an existing destination, grouping, and nested/concurrent isolation.
- Run targeted tests, then the offline suite, lint, formatting, type checking, and documentation build. Record actual results after implementation.
Completed validation¶
Implemented steps 1-6 with permissive defaults and opt-in strict construction.
- Offline suite: 1,801 passed, 44 skipped, 1,819 deselected (48.33 seconds). Live network, slow, and SBML test-suite sweeps were excluded.
- Factory/validation suite: 399 passed on both the primary environment and Python 3.12 with minimum dependencies using current source.
- After the broad run, the final annotation preservation test brought the new regression file to 10 passing tests.
- Ruff lint and formatting, ty type checking, documentation build, and diff whitespace checks passed.