Skip to content

Live runner: admit proven confirmed-bar request shapes and standalone varip - #342

Merged
luisleo526 merged 11 commits into
mainfrom
lv/fu12-admit-proven
Oct 5, 2026
Merged

luisleo526 merged 11 commits into
mainfrom
lv/fu12-admit-proven

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

Summary

The native live runner now admits exactly the confirmed-bar stream shapes that have proof that stream output equals the batch backtest, and keeps refusing everything else by name before any ledger exists.

Admitted when the library carries the new confirmed-bar receipt (pineforge-4pass/pineforge-codegen-oss#173), for confirmed one-minute input with UTC/24x7 source settings:

  • same-chart request.security close at 5, 60 and D;
  • SMA(4) at 15;
  • EMA(3) with gaps at 60;
  • previous close at timeframe.period;
  • Heikin-Ashi close at 5;

each only on its tested script clocks. Standalone close-only varip is also admitted.

Still refused:

  • process_orders_on_close=true, for every order shape and every request composition;
  • multiple requests, and request plus varip;
  • other clocks, expressions and merge policies;
  • foreign feeds, including symbol "";
  • lower-timeframe arrays, observed ticks, and unpinned or unresolved requests.

The timeframe rule is now an allowlist of tested clocks, replacing the earlier denylist.

Compatibility: a library with only the original capability receipt keeps its previous refusals. A library with no receipt still warns and runs, unchanged. Old and new runners and libraries were checked in all 18 combinations.

Availability: unreleased (after 1.2.0). Merge the codegen PR first.

Evidence

  • Equivalence rows: each admitted shape has one, comparing stream and batch trades and reports bit-for-bit. Each also has a generated-strategy runner end-to-end test.
  • Refusals: 362 named refusals are asserted, sharded so that every shard runs well within its timeout under the sanitizers.
  • Engine source: no engine-library or kernel source change; the src/ and include/ diff is empty. Corpus trade parity is 312/312 with 0 moved.
  • Verification: native and live-sanitizer profiles, plus the engine verification bundle, on this head (see the pineforge/verify and pineforge/parity statuses).

Retained process_orders_on_close equivalence rows are tests for a future admission, not admitted shapes.

🤖 Generated with Claude Code

@luisleo526
luisleo526 force-pushed the lv/fu12-admit-proven branch from ce9ff0c to d576827 Compare October 5, 2026 11:22
luisleo526 and others added 11 commits October 5, 2026 20:04
Replace the request and process_orders_on_close refusals documented by f3bf9f0 with the confirmed-bar proof allowlist. Preserve the old receipt policy for libraries without the new versioned extension.
Replace the five-minute POOC admission documented by c03e06b0: its reports match batch, but its physical action timestamps do not. Add a nonvacuous same-clock request control instead of crossing a close with itself, and retain named POOC refusal before durable startup.
Address the independent review, including public terminology introduced by f3bf9f0, without changing source-layer trading code.

Narrow the POOC admission sentence to exact proven order-family sets. Explicitly withdraw: POOC admits market, stop and limit entries, market closes and short stop/limit brackets on script clock `1` only.
Narrow the settings description; omitted codegen settings are not Pine fixed-quantity defaults. Explicitly withdraw: POOC settings are limited to the default sizing/slippage/account profile, plus the separately proven market-only 100%-equity/15-tick-slippage profile.
Withdraw the closing-order admission text from c968245, 563ba41, 6a01de7 and 58fab97. Keep requests and standalone varip admitted; preserve closing-order rows only as future evidence.

Withdraw these published statements explicitly so this narrowing remains named after future restacks:
- An unknown optional confirmed-bar version is ignored: ordinary strategies retain their original eligibility, while requests, POOC and varip still require a recognized proof.
- Explicit entry quantities, alert/comment arguments and exit OCA names are not modeled.
- Market closes have long and short close-all and entry-bound proofs.
- Only the proven table and order shapes admitted
- POOC admits only these sorted order-family sets on script clock `1`:
- POOC settings match literal proof profiles, without inferring Pine defaults: market, stop, limit and market-close sets require omitted account/sizing/slippage settings.
- Partial profiles, extra otherwise-default settings and order-affecting runtime overrides are refused.
- Short brackets require exactly fixed quantity 1 and explicit percent commission 0.
- Stop-limit/OCA entries, trailing/relative/partial exits, long brackets, `strategy.order`, risk rules, cancellation, immediate closes and any call or argument outside the modeled allowlist remain refused by name.
- The five-minute both-sided-stop report is batch-equivalent, but its physical action timestamps are not; that clock stays refused.
- The separate market-only profile requires exactly explicit 100%-equity sizing and 15-tick slippage.
- The sole request-plus-POOC proof is SMA(close,4) at `15` with market entries; other cross-category compositions are refused rather than inferred.
- Two requests together, request-plus-varip and POOC-plus-varip are refused.
- `[entry:market]`, `[entry:stop]`, `[entry:limit]`, `[entry:market, exit:short_bracket]`, and `[close:market, entry:market]`.
1.2.0 shipped the capability extension and its receipt-based refusals, but not
the confirmed-bar receipt or its request and varip admission; the documentation
said both were available since 1.2.0. This rewrites the availability sentence
"This applies to both the capability extension and the runner's receipt-based
admission policy." introduced by f3bf9f0, so that it covers only what 1.2.0
shipped.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@luisleo526
luisleo526 force-pushed the lv/fu12-admit-proven branch from d576827 to 2b308be Compare October 5, 2026 12:05
@luisleo526
luisleo526 merged commit b7ed0ee into main Oct 5, 2026
17 checks passed
@luisleo526
luisleo526 deleted the lv/fu12-admit-proven branch October 5, 2026 13:04
luisleo526 added a commit that referenced this pull request Oct 6, 2026
* docs: release notes and version scoping for v1.3.0

CHANGELOG 1.3.0: confirmed-bar admission in pineforge-live (#342), the Pine
adapter changes of #341, #345 and #347, tests and docs (#343, #344); no
report key changes; the state-hash recipe additions of #341 and #347, domain
tags and the v19 epoch unchanged; migration.

Version scoping: README, install.md and public-contract.md name v1.3.0, its
tarballs, the engine1.3.0-codegen1.3.0 image and the 1.3.0 pair. The
confirmed-bar receipt and its admission, marked unreleased after 1.2.0 by
#342, ship in 1.3.0 (README, strategy-capabilities.md, runner/README.md).

Codegen license lines (README, LEGAL.md, docs/pages/index.md): the PineForge
Source License 1.2 from codegen 1.3.0; 1.2.0 keeps 1.1, releases up to 1.1.0
the PolyForm Noncommercial terms.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* docs: release 1.3.0's grades in the README and the changelog, from the facts tokens

The README's release sentence moves to the releases[1.3.0] tokens, and its
main-scoreboard lines re-render the values defe41f (#343) rendered at
pineforge-release 3e39d64, and the 1.3.0 changelog says which registry
baseline grades the release and why that baseline is the release's code,
all rendered from pineforge-release facts/facts.json at ff21de0 (#32). The
changelog sentence extends the last line of the "What a script author sees"
bullet that 0e1ced7 added.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
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