PyCForge 1.3.36 — Separate Typed C Module Exports
Review build verified 2026-10-18

DELIVERED
File > Export C Modules saves a fresh Typed conversion as a ZIP archive.
The File menu and command palette expose the command; the approved toolbar
layout is unchanged. The existing matte file chooser is resizable without a
maximize button and supplies ZIP filtering and overwrite confirmation.

The archive contains one .h/.c pair per Python module, shared type declarations,
pycforge_abi.json and BUILD.txt. Function bodies and prototypes are copied from
validated emission ranges. Helpers retain static linkage and only the required
helper closure is emitted in each source. The ABI manifest supplies exact C
symbols/declarations, all parameters (including file status pointers), ownership,
dependencies, fingerprints and source/header hashes.

Save C, the Generated C viewer, ForgeLens and IDE Compile keep their single-file
workflow. No accepted Python syntax or Runtime conversion semantics changed.
README.md, matte theme artwork and dependency requirements are unchanged.

FRESHNESS AND SAVE SAFETY
Archive construction runs on the bounded I/O worker. Before atomic replacement,
the controller rechecks the result, revision, bundle and request sequence.
Pending source/identity edits retire export authority immediately, before editor
debounce. Cancel, stale results, closed workspaces, destination aliases of open
source files, build failures and failed replacements do not overwrite prior data.

VERIFICATION
- 268 distinct source tests passed after consolidating final targeted reruns;
  zero unresolved failures and zero skips in this selected suite.
- 37 new export tests: 24 API/native tests and 13 Qt/I/O tests.
- 80 distinct installed-package checks passed; two source-layout checks were
  deselected only from the installed run and passed in the source suite.
  Final File-menu-only placement was separately rechecked on the final wheel.
- All 871 installed application files byte-match the final wheel.
- Native tests compile separate C11 objects and link independent callers for
  scalar/boolean/string operations, signed floor division/modulo, fixed containers,
  records, branching, diamond dependencies, repeated function names, long/dotted
  module identities, duplicate header inclusion and a Python main function.
- File callers check owned read-buffer release, writes and missing-file status.
  Symbol inspection confirms helpers are not exported as external functions.
- Archive tests cover deterministic bytes, hashes, filename collisions, immutable
  manifests, stale/changed/Runtime results, and mutable helper-state rejection.
- Real Qt tests cover export actions, pending/modal/background edits, cancellation,
  destination aliases and atomic-write failure. Scan-result and failed-conversion
  diagnostic quick-access freshness tests passed, along with matte-theme checks.
- 28 HTML Help pages validated and opened in Qt. All 71 Python examples passed
  Python/native comparisons: 48 Runtime and 23 Typed. Those 23 Typed examples
  also passed as separately compiled exports.
- Five existing API examples, four existing C callers, two module bundles and
  three unchanged README examples passed. The new export API and separate caller
  also passed; the documented square example prints 144.
- Export dialog and new Help page visually inspected in the matte theme.

Evidence includes the original regression result and subsequent successful
contract reruns. Initial inventory expectations were updated for the new action;
BUILD guidance was made toolchain-neutral to satisfy the existing execution
boundary audit. No execution-boundary restriction was removed.

LIMITS
This is the Typed module-export milestone. Runtime exports still need a shared
context/ownership ABI. Record boundaries, binary files and automatic collection
are not part of this release. C callers must obey the existing Typed bounds,
arithmetic preconditions and ownership rules. Generated declarations do not
constitute a stable binary ABI across releases or independently converted bundles.
Regenerate and rebuild the complete export after changes; never link it together
with the single-file result defining the same functions.

Validation ran on Linux, Python 3.12.14 and GCC 13.3.0. Native Windows acceptance
was not run. Compilation retains existing single-file renderer warnings about
unused dictionary key arrays and comparison parentheses; focused strict-warning
checks exempt those two inherited warning categories. No speed claim is made.

PACKAGE
Wheel: pycforge-1.3.36-py3-none-any.whl
Bytes: 2254537
SHA-256: 76a1e1d562b0b664eb28293f6b7a3378e4bd94e7edc447ac68b727fb06a544b5
Source: pycforge-1.3.36.tar.gz (includes this report, specifications and evidence)
README SHA-256: 81408b884ec93411cd88f9734cc8cffc79bcd65751bcdfe092ea33e41addb638
Source/archive integrity is checked after packaging. The source archive cannot
include its own final checksum in this embedded report.
