PyCForge 1.3.60 — Math Conversion Import, Registration and SDK API Catalogue
Prepared: 2026-10-28
Status: verified, unpublished release handoff for CC.

IMPLEMENTED SCOPE

Register Conversion Imports opens from Tools and from a direct icon beside
Tools. The icon has no dropdown. Both paths reuse one modeless dialog showing
Import, Namespace, Version, Author, Date and Status. Register File and Register
Folder add explicit packages; Enable/Disable, Remove and Refresh manage them.
Details show the original file and available description/license/report data.
Unusable files stay visible as Cannot use with the reason and SDK guidance.
The bundled math import is listed immediately and can be disabled.

PyCForge performs bounded format, metadata, API/profile, integrity and conflict
admission. It reads the supplied verification statement; it does not run the
SDK's semantic/native test workflow. Failed replacements preserve working
registrations. Original author files are not modified or deleted. Admitted
bytes are copied into an immutable local store; an atomic index chooses the
active entries. Register a rebuilt file to update it. Each conversion freezes
one registry snapshot. GUI registration changes retire prior generated C and
are disabled while conversion is active. Local updates assume one writer.

The first .pcfplugin format is data-only: manifest.json and conversion.json in
a bounded ZIP. Metadata includes package identity, namespace, author, ISO date,
version, description, license, engine/extension API, target/profile, payload
hash and verification producer/status. No package is extracted or executed.
Verification metadata is a publisher/SDK statement, not a signed certificate.

The bundled math provider declares six functions: fabs, sqrt, copysign,
isfinite, isinf, isnan; and pi, e, tau, inf, nan. Select it with:
  *import math as m
in the module preamble, then use direct positional calls such as m.sqrt(4).
Runtime mode supports this first profile. Typed mode gives an explicit
unsupported-route diagnostic. Ordinary import math retains source-bundle
meaning. Unsupported members, call forms, namespace shadowing/rebinding and
namespace/function re-exports are rejected. Run Python blocks actual *import
declarations at the UI and launch boundaries, including customized commands.
Comments and string contents are not treated as declarations. This preflight
uses saved source and explicitly supplied companions, not dynamic discovery.

Public frozen ScalarFunction, ScalarConstant, ScalarExtension and
ExtensionRegistry declarations feed generic native lowering. Operation names
are not a per-library engine whitelist. Evaluation is once, left to right;
the profile specifies representation, ownership, arity, results and guards.
PythonToCConverter(extension_registry=candidate) supports testing unregistered
work without first claiming it is verified. Such output carries PYC4708 and
explicit unverified authoring metadata. Qualification demonstrates a separate
cbrt extension: author, convert, compile/reference-test, package, register, then
convert and execute through public interfaces without changing engine code.

SDK UPDATE MATERIAL INCLUDED WITH SOURCE AND INSTALLED PACKAGE

The selected engine exposes its catalogue with:
  SELECTED_PYTHON -m pycforge --format json sdk-api
Its installed crucible/landscape folder contains index.json, api.xml, api.xsd,
guide.txt, scalar_template.py, requirements.txt, registration.txt and
sdk-update.txt. The catalogue describes 77 actual public methods/constructors,
signatures, operations, route/ownership decisions, pack metadata and limits.
The engine exports these resources; conversion does not parse the XML.

The separate stdlib-only tools/sdk_catalogue_client.py demonstrates discovery,
complete byte/hash inventory checks, bounded closed-schema XML reading,
additive method refresh, atomic cache switching and stale-identity rejection.
Failed/incompatible refresh preserves the previous valid snapshot for OFFLINE
display. Refresh never executes templates or extension code. Tests demonstrate
an unchanged reader accepting a compatible method addition. The native XSD is
also validated independently with lxml. Export tools have --check drift checks.

The source specifications include the original API requirements and SDK roadmap
plus the current registration and update contracts. The latest user requirement
is authoritative: SDK verification and PyCForge admission are separate roles.
The future PySide6 SDK and headless SDK are to share the same update service.
No SDK GUI or automatic software downloader is claimed by this release.

COMPLETED VERIFICATION

Full source suite: 3286 collected; 3214 passed,
72 skipped, 4882 subtests passed; no failures.
Four disjoint file groups cover every collected node ID exactly once. Each
selected test completed teardown. Per-group JUnit, phase reports, selection,
exit codes and summary are included; package hashes did not change during
these passing runs. Existing conditional skips and reasons are recorded.

Final installed wheel: 371 passed, 302 subtests passed in 113.86s (0:01:53)
All 324 loaded pycforge modules came from the installed wheel.
The separate selected-engine reader connected using an isolated interpreter
and discovered the installed catalogue, including all 77 public methods.

Ordinary-source replay: 84/84 foundation cases and 58/58 module cases remain
identical to 1.3.59. Semantic results, generated C, diagnostics, decision traces,
stage artifacts and cancellation outcomes match. Repeated conversions and
hash-seed variants (728 and 913) preserve the recorded results.

New native checks compile C11 with GCC, optimization and undefined-behavior
sanitization, then compare execution with independent CPython math results.
Cases include numeric boundaries, subnormals, signed zero, infinity, NaN,
TypeError/ValueError and argument evaluation order. Fast-math is rejected.
The separate cbrt package also compiles and executes. The Windows support
header is exercised on the binary64 Linux host; this is not Windows execution.

Qt checks cover both dialog access paths, no dropdown on the direct button,
metadata/error rows, original-file preservation, stale-C invalidation,
registered-package use by an isolated conversion worker, and narrow-window
menu/title/control geometry. Existing Tools popup and keyboard behavior pass.

The Run Python audit fingerprint was renewed after review of the added bounded
preflight. AST comparison confirms that all three Popen calls, terminal
discovery and other existing functions are unchanged. Mutation-rejection
checks continue to reject an altered launcher. The new gate tests assert that
blocked input never reaches Popen, including edits between preparation/run.

Preliminary qualification found and corrected a replacement-identity bug,
menu mnemonic and narrow-layout conflicts, stale action/CLI/audit inventories,
an intermittent file-selection restore bug and a live-tree hash test affected
by concurrent evidence writes. File restoration now sets current/selected row
state atomically with explicit selection flags, independent of view input
commands. Its test presents the dialog and checks restoration while Control
is held, with a bounded wait for the asynchronous file model. No test was skipped or disabled to hide these.
The hash test now uses a stable fixture and also proves that changing included
content changes the digest while changing the fingerprint itself does not.
Earlier interrupted/superseded logs are retained for provenance; only the
final-shard reports and final installed-wheel results establish this handoff.

SOURCE AND DISTRIBUTION CUSTODY

Baseline: pycforge-1.3.59.tar.gz
SHA256: 3e8d35d9973a6e4dd1e3fcdc59a7a8d2fa106cfbc35f26d6a244e36ad7b25ba4

Package source: 916 to 934 files,
18 additions, 25 modifications, no removals.
Exact paths and final SHA256 inventory are recorded. The wheel contains
928 package files, each byte-identical to maintained source.
The same six maintenance-only .tingspec.json files remain source-only.
Dependencies, entry points and license declarations are retained.

README changes are limited to the release heading and practical math/import
usage. Its four approved image URLs, order, sizes and subtitle remain intact.
AGENTS.md, README guidelines and the README verifier are unchanged. The public
distribution verifier additionally requires seven exact extension/catalogue
resource paths and their source bytes; existing checks remain in force.

ENVIRONMENT AND LIMITS

Python 3.12.14; Linux x86_64/glibc 2.39; GCC 13.3.0; PySide6 6.12.0/offscreen.
Detailed dependency versions are in environment-host.json. Source suite seed 1;
final installed suite seed 728. Concurrent timings are not performance claims.

API, extension API, catalogue schema and discovery protocol remain provisional
0.1. This is a scalar Runtime profile, not full math or NumPy coverage. It uses
bool/int64/float64, binary64 C double, C11 math.h/libm, default rounding and no
fast-math. NaN payload identity and cross-platform libm bit equality are not
promised. Arbitrary-precision integers, custom Python numeric objects, general
native dependencies/resource ownership and Python entrypoint packages remain
outside this profile. Actual Windows/macOS native execution and Python 3.11/3.13
execution were not performed. Existing Runtime preview limitations still apply.

REPRODUCTION

Use the declared runtime dependencies plus pytest, lxml, a C compiler, build,
twine and the pinned setuptools backend. From the maintained source:
  QT_QPA_PLATFORM=offscreen PYTHONHASHSEED=1 python -m pytest -q --tb=short
  python -m tools.export_math_import --check
  python -m tools.export_sdk_landscape --check
  python -m tools.verify_pypi_readme
  python -m tools.verify_public_distribution /path/to/final-pair-only
  python -m twine check --strict /path/to/final-pair-only/*
The evidence folder also includes the complete four-group plan and runner.

This embedded report records completed source and installed execution checks.
The external verification report adds exact final artifact hashes and sizes
after archive creation, avoiding a self-referential archive hash. CC alone
publishes to PyPI; no release was published from this session.
