Skip to content

docs: release notes and version scoping for v1.2.0 - #340

Merged
luisleo526 merged 2 commits into
mainfrom
rel/1.2.0-notes
Oct 5, 2026
Merged

luisleo526 merged 2 commits into
mainfrom
rel/1.2.0-notes

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

What and why

The release workflow writes only VERSION; this docs-only change gives v1.2.0 its CHANGELOG section and scopes the
version-bearing pages to the 1.2.0 pair (engine v1.2.0 with pineforge-codegen 1.2.0, hub image
ghcr.io/pineforge-4pass/pineforge-release:1.2.0).

1.2.0 is a minor release: <pineforge/pineforge.h> gains the compiled execution-capabilities extension
(PF_CAPABILITIES_API_VERSION 1, strategy_capabilities_api_version, strategy_capabilities_receipt; #332), which a
strategy generated by codegen 1.2.0 defines. PF_ABI_VERSION stays 4, the script ABI epoch stays
engine_script_run_v19, the domain tags pineforge-broker-state/v19 and pineforge-source-adapter/v4 are unchanged,
and native_c_api.h, the native C++ host headers and the frozen ABI fixtures are unchanged since v1.1.0.

Report keys

No report key changes. docker/run_json.py is byte-identical between v1.1.0 and the release's code
(git diff --quiet v1.1.0 52292db9 -- docker/run_json.py), so no key is added, removed or renamed and
EQUITY_REPORT_KEYS (metrics.equity.sharpe_tv, sortino_tv) stays; pineforge.h's diff since v1.1.0 is the
trail-rounding comment plus the capability declarations, with pf_report_t and pf_trade_t unchanged. The runner's
new outputs (#331: pineforge-live report documents, pineforge-native-report-delta/v1 ledger rows, the
pineforge-live-status/v1 status file, pineforge-redelivery-request/v1 requests) are versioned runner formats, not
run_json keys.

State hashes

Every recipe change since v1.1.0 is an addition, all in the Pine adapter's part of the broker-state hash
(src/source/pine_state_hash.cpp, +64/-0; src/engine_state_hash.cpp and src/engine_stream.cpp unchanged):

Nothing is removed, renamed or re-encoded; domain tags and epoch unchanged. scripts/check_aggregate_cpp_versions.py
("aggregate v19 ownership verified") and scripts/check_broker_state_hash_coverage.py (OK) pass at v1.1.0, 44eab7b
and #339's tree (52292db).

Verified

  • Tutorial numbers re-measured on a disposable cloud box (terminated) at 44eab7b with GCC 13.3: bash tutorial/run.sh
    prints 50 trades (17W / 33L), +569.97, best/worst +1149.00 / -1111.97, max dd -4045.15; run_advanced.py prints the
    documented rows; regenerating tutorial/macd/strategy.pine with pineforge-codegen main (48e7a13b) gives the same
    numbers, and the README's front-door commands (install, transpile, compile, scripts/run_strategy.py) print 50
    trades, net 569.97. The documented numbers stand; the session-clock change is value-identical by its own evidence,
    so 44eab7b holds for 1.2.0.
  • scripts/check_doc_anchors.py, scripts/check_doc_lint.py, scripts/check_doc_reverts.py --base origin/main and
    git diff --check origin/main pass on the final head. The merge gate's docs basis (preflight + docs) passed on this
    change before its rebase onto Session clock: read each day's occurrences once per bar; time() arguments resolved without copies #339 (it is re-run on this exact head for the statuses): ci_preflight: passed (exit 0, 44 stages, 0 advisory reported) and Doxygen warnings: 0.
  • An independent read-only fact-check of every claim against the tree and the squash bodies; its corrections (scope of
    the decimal sizing floor and of the long residual call, runner-only "unchanged" statements, the re-issue after a
    declined reversal) are in.

🤖 Generated with Claude Code

luisleo526 and others added 2 commits October 5, 2026 12:24
CHANGELOG: the Unreleased section becomes 1.2.0 (2026-10-05), a minor
release that adds the compiled execution-capabilities extension to the C
ABI (PF_CAPABILITIES_API_VERSION, strategy_capabilities_api_version,
strategy_capabilities_receipt). One bullet per change since v1.1.0 with
its PR (#328, #330, #331, #332, #333, #334, #335, #336, #337, #338 and the
session-clock change, written #VCP until its PR number exists), the
recipe additions under State hashes (#328, #330, #335; domain tags and
epoch unchanged), Report keys (docker/run_json.py is byte-identical to
v1.1.0's, so no key changes) and Migration.

Version scoping: README, install and public-contract pages name v1.2.0
and codegen 1.2.0; "since the next release" and "fixed on main" in the
capabilities guide and the runner guide become 1.2.0 and 1.1.0 (#325).
Lines that state what an earlier release shipped stay.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
- CHANGELOG: the session-clock change is #339 (merged as 52292db), in place
  of the #VCP token of 3082fbd; the "What a script author sees" bullet of
  3082fbd now states release 1.2.0's grades (registry baseline
  pineforge-parity-baseline-20261005-engine-52292db9: 7,970 excellent / 19
  strong of 7,989, none below strong) instead of the main scoreboard at
  6b77f06.
- README: the release sentence names 1.2.0 and renders releases[1.2.0], and
  the main scoreboard renders the same baseline, from pineforge-release
  facts/facts.json at 0c2f6838 (the facts export for the 1.2.0 release).
- README, LEGAL.md, docs/pages/index.md: pineforge-codegen is under the
  PineForge Source License 1.1 from its release 1.2.0; releases up to 1.1.0
  keep the PolyForm Noncommercial terms they shipped with.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@luisleo526
luisleo526 merged commit 7822260 into main Oct 5, 2026
13 checks passed
@luisleo526
luisleo526 deleted the rel/1.2.0-notes branch October 5, 2026 05:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant