PyCForge 1.3.59 — Modularity and Failure Cleanup Verification
Prepared: 2026-10-27
Status: verified, unpublished release handoff for CC.

IMPLEMENTED SCOPE

Both conversion routes now consume shared, headless module and dependency
services under pycforge.crucible. ModuleCatalog owns immutable module/symbol
declarations, explicit alias following and qualified lookup. DependencyGraph
owns lexical dependency ordering, cyclic components and source-ordered cycle
witnesses. Traversals are iterative and expose cancellation checkpoints.
The typed IR and runtime AST adapters retain their existing syntax profiles,
eligibility, source locations, diagnostics, lowering and publication checks.

The provisional API remains 0.1. Describing a symbol does not approve its
conversion. Catalogue fingerprints identify metadata, not source code or
extension safety. Checkpoint callbacks and Python API implementations are
trusted in-process code. There is no Python import fallback or source execution.

Window title controls and the file icon provider now have dedicated presentation
components. AST comparisons confirm that all three extracted classes retain
their original implementations. Compatibility imports remain in place.

This is the next executable modularization increment. New math/NumPy coverage,
external extension activation and the separate PySide6 SDK remain subsequent
work; this release makes no new library-coverage claim.

COMPLETED VERIFICATION

Full source suite, 3200 collected tests:
3128 passed, 72 skipped, 2 warnings, 4877 subtests passed in 1514.53s (0:25:14)

Installed wheel, conversion/native/GUI/save/release checks:
205 passed, 177 subtests passed in 79.93s (0:01:19)
All 307 loaded pycforge modules originated in the installed wheel.
The new public API also imports with python -S without Qt/NumPy/Numba.

Existing foundation replay: 84/84 cases identical to 1.3.58. Its 82 ordinary
cases run twice; two cancellation cases run once. Generated C, semantic results,
decision traces, stage artifacts, status and complete diagnostics match.

Additional module replay: 58/58 cases identical to 1.3.58, each run twice.
Aliases, qualified imports, diamonds, companion reorderings, records, constants,
shadowing, missing imports/members, package restrictions, cycles and resource
limits retain their earlier results. A repeat with PYTHONHASHSEED=728 also
matches, as does the existing 84-case capture under that seed.

Focused shared-module/typed tests:
45 passed, 11 subtests passed in 3.65s
These include independent enumeration of all 512 directed three-node graphs,
1,500-node dependency/alias chains, cancellation, actual frontend service calls,
missing host-library imports and contract failure with no generated C.
Existing native differential/reference tests pass in the installed-wheel run.

FAILURE RESOLUTION

All 19 outstanding reports from the final 1.3.58 handoff are resolved and
covered by passing results in the full suite:
- 13 stale active-package identity checks now use maintained project metadata.
  Historical converter/workspace identities and sealed hashes remain exact.
  Negative tests still reject package and project identity mismatches.
- Four module-size subtest reports are resolved through component extraction,
  without raising the existing limits. Window chrome is 314 lines, title
  controls 333, file dialogs 954 and file icon support 118.
- Two save-workflow expectations now exercise behavior established in 1.3.53,
  including external links, suggested Save As destinations and automatic
  bundle synchronization. Original file bytes and restart state remain checked.

No skip/xfail markers were added to suppress these reports. Existing conditional
skips and their reasons are retained in skip-reasons.json. Exact baseline IDs,
corrections and current outcomes are recorded in failure-triage.json.

An initial internal wheel-staging copy omitted the application's build package,
causing five test-collection errors. The staging copy was corrected and the
wheel rebuilt; the complete installed check above passes on the final wheel.
That incomplete internal build is not part of the handoff.

SOURCE AND DISTRIBUTION CUSTODY

Baseline: pycforge-1.3.58.tar.gz
SHA256: 6cb4146530f3677d0933c194c0bbf854d17af6b9fc98db9370b9735489c949ab

The baseline archive and all 913 package files are verified unchanged.
The new source has 916 package files: three additions, seven modifications and
no removals. New files are the namespace service, dependency service and title
controls. Modified files are the version, Crucible exports, the two module
adapters, window chrome, file dialogs and file icons. Numerical semantics,
runtime headers, project/save/session implementations and build code are
unchanged. Exact paths are recorded in package-delta.json.

The wheel retains every prior packaged file and adds the three new modules:
910 package files, all byte-identical to maintained source. The same six
maintenance-only .tingspec.json declarations remain source-only, as in 1.3.58.
Dependencies, entry points and licenses are unchanged.

README changes are limited to the top version. Its prose, four approved images,
image order and banner widths are preserved. The renderer check passes.
AGENTS.md, PyCForge-README-Guidelines.txt and both README/distribution verifier
implementations remain byte-identical to the baseline.

ENVIRONMENT AND LIMITS

Python: 3.12.14
Platform: Linux-6.18.55-x86_64-with-glibc2.39
Compiler: gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Qt: offscreen; PySide6 6.12.0
Source-suite hash seed: 1; installed/repeat hash seed: 728.

Linux source and installed execution are verified for the recorded cases.
Windows/macOS native desktop execution and PCFC11 compilation were not performed.
Recorded tests do not establish arbitrary Python/library correctness or
cross-platform bitwise floating-point guarantees. No performance claim follows
from timings measured during concurrent qualification.

REPRODUCTION AND EVIDENCE

Architecture, API example, frontend responsibilities and remaining SDK/library
gates: specifications/modularity_1_3_59.md.
Logs, semantic captures, JUnit, per-test reports, failure triage, source/wheel
parity and installed module origins: evidence/modularity_1_3_59.

Use an interpreter with the declared runtime dependencies available to isolated
child interpreters, pytest, a C compiler and the pinned build backend.
  QT_QPA_PLATFORM=offscreen PYTHONHASHSEED=1 python -m pytest -q --tb=short
  python tools/qualify_module_services.py --source-root /path/to/1.3.58 --output baseline.json
  python tools/qualify_module_services.py --source-root . --output current.json --compare baseline.json
  python -m tools.verify_pypi_readme
  python -m tools.verify_public_distribution /path/to/dist-pair
  python -m twine check --strict /path/to/dist-pair/*.whl /path/to/dist-pair/*.tar.gz

This embedded report records source and execution verification. The external
report adds final archive sizes, SHA256 values and exact-pair packaging results
after building, avoiding a self-referential source-archive hash. CC alone
decides and performs publication; no release was published from this session.
