v1.0.0
v1.0.0
Changes since v0.13.1
- chore(release): v1.0.0 (5718c5d)
- 1.0 prep: CI flake fix, docs-only CI skip, benchmark refresh (supersedes #303, #304, #307) (#308) (133f571)
- chore(release): v1.0.0-rc.1 (bb9ec14)
- docs: README counts the baseline's TradingView trades and scripts correctly (#302) (112c134)
- docs: link the open corpus from coverage.md instead of the submodule path (#301) (7d33942)
- docs: make every README and doc page true before the release (DOCS-ENGINE) (#300) (b2a578c)
- Report timeframe fields restored; aggregated-chart admission no longer aborts (FIX-E1E2) (#299) (4dc496d)
- XAU-CAL: daily bars dated by the daily feed, the daily magnifier, and TradingView's session calendar (#298) (35db01c)
- INT30: engine integration of the tail lanes (TAIL-A, B, C, D, E, G, H) (#297) (0411892)
- W15: a calendar bucket closes once; a late-opening day's intraday grid starts at its own open (#296) (7239ab3)
- INT29: engine integration (W10 margin/cap, W11 session/color/time_close, W12 session-argument calendar, W13 margin calls) (#295) (9e6196c)
- INT28: wave-J engine integration (TVDEF-DROPS, W3/W3B/W4/W5/W6/W6B/W8, R1-CONSOLIDATE, RUN-HARNESS) (#294) (74491fa)
- Session flags match TradingView on multi-window and extended-hours charts (K-SESSION-WINDOWS) (#293) (962960b)
- Another symbol's bars reach a run as a feed: kernel instrument feeds + Pine foreign request sites (XSYM-D) (#292) (7f807b9)
- INT27: wave I -- magnifier on TradingView's intrabars, recalculation fills at extremes, O(bars) drawing checkpoints, dynamic TA lengths, finer-than-feed security, zoned session speed (#291) (1e360bd)
- INT26: wave H, the late picks and the corpus re-pin to b40aa8e (1.0.0-rc.1 candidate) (#290) (d093560)
- Wave G: no ordinary quantity request stops a run, cancelled exits stay cancelled, script-bar indices for aggregated runs, kernel edges, the 1.0 C surface, and docs as executable truth (#289) (0d76a09)
- Preserve existing verifier test bodies during CI enumeration (1a0e7ea)
- Document advisory PR CI and required verification statuses (116c461)
- Run advisory PR CI in parallel and honor maintainer merge statuses (57c89ff)
- Label measured slow CTest rows and verify PR exclusion counts (5c91e40)
- integration: the doc facts the code lanes handed on are on the pages, re-verified on this tree; B-DOCS' hash pins name what they cite again (91d65ad)
- Docs: re-anchor the citations INT24 moved (925f1c9)
- integration: the ctest floors count INT24's rows -- release 658 -> 672, kernel 262 -> 271 (daeb9ab)
- Docs: the pages INT23 merged are db98990's again, plus only this lane's rows, counts and re-anchored digits (R5 lane B-C-SURFACE, fix-up 2, content only) (3cb0a18)
- C surface: the typed configure's header says what each phase answers, and rows witness it (R5 lane B-C-SURFACE, fix-up 1) (143b407)
- C surface: type remaining setup facts and generic readouts (a4de397)
- integration: the re-cancel scaling leg without recording is sized by time -- its small leg runs at least 100 ms of CPU, so runner noise no longer decides its ratio (7ded560)
- integration: the dual-entry observation names the leg the run walks -- it asks the kernel, and a tie bar walks low first (ruling on B-ADAPTER finding 1) (0858227)
- integration: one detached-comment gate -- B-GATES' checked-in ceiling, now 0; B-DOCS' duplicate stage deleted (5da2668)
- Docs: correct migration semantics and harden publication guards (d3cca9e)
- CI: gate docs, benchmark provenance and detached census (aa4f145)
- CI: row floors from ctest -N on the lane's tree -- kernel 262 -> 264, release 658 -> 664 (R5 lane B-ADAPTER) (d506782)
- Docs: every adapter money-to-units conversion is the kernel's; the affordable price stays measured (SZ10a) (R5 lane B-ADAPTER, content only) (b3530dc)
- Kernel+Source: a current execution converts at its cursor's rate, threaded; it neither writes nor restores the host's clock (R5 lane B-ADAPTER, item 5) (dbcca85)
- Adapter: a margin call never revives an exit the script cancelled (R5 lane B-ADAPTER, item 7: V19D-P1) (4b00da9)
- Kernel+Source: the kernel answers how an input span aggregates into script bars; the Pine scheduler no longer runs its own preview aggregator (R5 lane B-ADAPTER, item 4) (feb0bae)
- Kernel+Source: a range-end row converts at the rate its producer is handed; the Pine host no longer rewrites the clock (R5 lane B-ADAPTER, item 3) (1b522ca)
- Adapter: a typed entry is admitted, booked and probed as the contracts its money buys (R5 lane B-ADAPTER, item 1) (2f38641)
- Adapter: the fill-quantity probe answers a default entry's at-fill contracts with the conversion the fill books (R5 lane B-ADAPTER, item 2) (f40189e)
- Strings: str_tostring and str_format render numbers by the rule TradingView's tapes pin (R5 lane B-ENGINE) (3872c46)
- TA: ta::pivot_point_levels' Traditional levels are ta::PivotPointLevels', and a six-argument overload computes every type (R5 lane B-ENGINE) (adb8f2b)
- Kernel: a Transact that crosses the book is charged exactly its units (R5 lane B-ENGINE, K-ULP1) (deb344b)
- Tests: re-pin the two adapter witnesses whose runs K-ULP3's whole-lot close moves (R5 lane K-ULP3) (6f4ca1a)
- Kernel: a close whose binary64 sum reaches its request exactly at a lot closes that lot whole (R5 lane K-ULP3) (1e9e076)
- Kernel: a close that spans lots and ends inside one is charged exactly its request (R5 lane K-ULP2) (99cf925)
- Docs: re-anchor the citations INT23 moved (db98990)
- integration: the ctest floors count INT23's rows -- release 645 -> 658, kernel 257 -> 262 (dc76926)
- integration: D2-D's publication witness takes V19-D's v4 fold values -- 31 of its 156 digests move, through the source layer's fold alone (df738e7)
- Kernel: a keep_binding replace of a request that cannot carry a binding takes the plain path (R5 lane V19-D, step 12) (cabd9d0)
- Adapter: K1's release reads, for each held leg, only the rows placed since the superseded test last read it, and nothing when none was (R5 lane V19-D, step 11) (0fe060c)
- Adapter: the PineStrategyHost view is an adapter member, not a thread_local memo (R5 lane V19-D, step 10) (7246546)
- Tests: the Pine hash pins steps 6 and 7 move take their values, once -- every trade, row count, receipt bar, digest of trades and count they pin holds (R5 lane V19-D, step 9) (8aac5be)
- Docs: a replace that keeps its handle or carries a binding, its ADR-0001 ruling, and the citations re-anchored (R5 lane V19-D, step 8) (c619f5f)
- Adapter: K1 releases a leg of the current cycle the revival's superseded test already answers for, and a margin revival is witnessed past what the sweep erased (R5 lane V19-D, step 7) (9906e1c)
- Adapter: a bracket family parks its erased members behind a retained one, and the v4 fold reads what is retained (R5 lane V19-D, step 6) (86494fb)
- Adapter: a re-issue carries the exit's book binding, and the Pine battery holds everything but the spared CloseBoundEvents equal (R5 lane V19-D, step 5) (b35e795)
- Kernel: a carried binding takes the ordinal its CloseBoundEvent would have, unrecorded (R5 lane V19-D, step 4) (4658d72)
- Kernel: a plain replace compiles as it did, and the book lookup reads handles alone until a re-price keeps one (R5 lane V19-D, step 3) (e452a8c)
- Tests: a replace that keeps its handle or carries a binding matches what a plain replace matches (R5 lane V19-D, step 2) (6e3624c)
- Kernel: a replace may keep its handle or carry a close's book binding, and the queue ranks a re-priced request newest (R5 lane V19-D, step 1) (7fb1abc)
- integration: a runtime block leaves only while it is the one in force -- debug builds hold the LIFO order D2-C's install/uninstall relies on (09ced53)
- Docs: say where the EMA seeding default now lives -- the calling thread's runtime block (R5 lane D2-C, the content of b629aaeb) (9bb1f7c)
- Kernel: a fill is staged once -- its settlement takes the one-lot stage its precommit preview took (R5 lane D2-C, step 3) (3a18c3c)
- Kernel+Source: the Pine layer reads the run's state where the consumer keeps it, and the running spec's one derived fact once per run (R5 lane D2-C, step 2) (23d535c)
- Kernel+Source: the runtime's per-thread state is one block, and a pump's scopes write it as plain memory -- no thread-local access per bar (R5 lane D2-C, step 1) (8089ded)
- Source: the source publication asks flush_pending_entries' gate and the same-bar sort's first test before calling them (R5 lane D2-D, step 3) (40e9904)
- Source: the chart-day key keeps its UTC day with the consumer that keeps the adapter's lookup state (R5 lane D2-D, step 2) (2bc47a3)
- Kernel: the monthly Sharpe/Sortino walk keeps its UTC month key with the month's seconds (R5 lane D2-D, step 1) (b7dc99d)
- Docs: re-anchor the citations INT22 moved (8cf3be5)
- integration: the ctest floors count INT22's rows -- release 637 -> 645, kernel 249 -> 257 (775edc3)
- Build: library functions start on a 64-byte boundary, so an edit elsewhere moves the engine's speed less (R5 lane LAYOUT1) (afc3d22)
- Docs: the two hook declarations -- where the host contract is stated, and why the ABI does not move (R5 lane D2-A, step 7) (af398bf)
- Kernel+C: a host that keeps the default precommit admission says so, and the kernel builds no preview for it (R5 lane D2-A, step 6) (e0ed8ed)
- Kernel+C: a host that has no bar-open hook says so, and the kernel keeps the call's boundary without the call (R5 lane D2-A, step 5) (44cad55)
- Kernel: four ENDPOINTS samples of a bar are its turning points, computed directly (R5 lane D2-A, step 4) (2e6f3eb)
- Kernel: the intrabar sampler is handed its run's leg order and keeps no scratch; the magnifier's thread_locals are gone (R5 lane D2-A, step 3) (3d3104d)
- Kernel: a driver point with nothing live is matched in front of match_path, which it would enter only to return (R5 lane D2-A, step 2) (eb62ae8)
- Kernel+Source: the Pine adapter's quiet receipt read asks the journal once, in O(1) (R5 lane D2-A, step 1) (ece7561)
- Tests: a warm command allocates its definition, and the kernel's own fill work nothing but the calendar's day spans (R5 lane L3, step 9) (ae5c2bd)
- Kernel: a fill's dependency seeds and its precommit view are consumer scratch, so a warm fill allocates nothing of its own (R5 lane L3, step 8) (fe07db8)
- Kernel: a fill's dependency drain reads its lists into scratch, builds the anchored-level hook only for an anchored child, and a replace moves the later rows down instead of rotating (R5 lane L3, step 6) (a06708c)
- Tests: the direct core twin executes through check_execution and apply_execution (R5 lane L3, step 5) (30640ee)
- Kernel: an execution's direct form checks before its settlement and writes after it, with no token between (R5 lane L3, step 4) (b20ab9f)
- Tests: the order core's direct forms against the prepare/install pairs, after every command (R5 lane L3, step 3) (44391a3)
- Kernel: the consumer applies each request-core mutation it installed at once through the core's direct form (R5 lane L3, step 2) (c96f93f)
- Kernel: the order core applies its mutations in place -- a direct form of every prepare/install pair a caller installs at once (R5 lane L3, step 1) (7279caa)
- Docs: re-anchor the citations INT21 moved (3bfaeb3)
- integration: the two Pine pins the K3 correction moves take their values, once -- every trade, row count, digest and count they pin holds (50b0e18)
- integration: V19-E's K3 pin keeps the first re-issue of each revival candidate, not every one -- a flat cycle that re-issues its exits every bar no longer grows the placement table or the bar-open sweep (f10f0cc)
- integration: the release ctest floor counts INT21's rows -- release 635 -> 637, kernel unchanged at 249 (88e2f22)
- integration: the continuation scaling guard times its two sizes in turn and keeps each one's best round, and its bound sits between linear and quadratic (fd044dd)
- integration: the design page's four shell commands are code spans Doxygen reads whole -- no apostrophe ends one early (95df9dc)
- integration: the Pine hash pins take their v19-E values on INT20's tree, once -- every trade, curve, row, count and event they pin holds (462fa66)
- integration: the retired-row sweep's roots cover V19-B's unacknowledged window -- the cursor it reads above is the one the adapter acknowledges, and it only rises (542c617)
- Re-pin the validation corpus to the codegen f3285d7 regeneration eede4a2 (lane CORPUS2) (bca167d)
- Tests: the equivalence battery takes one draw per statement, so every compiler builds the same scripts (R5 lane V19-E) (29d3873)
- Adapter: the retired-row sweep stops before gathering roots when every retired row holds itself, reads no thread_local, and a recycled node takes one assignment (R5 lane V19-E) (16bd687)
- Docs: the source extension is pineforge-source-adapter/v4 and audit cost A is resolved; re-anchor the citations V19-E moved (R5 lane V19-E) (27bfa05)
- Tests: the adapter's state costs what is live, and erasing retired rows changes nothing a Pine run shows (R5 lane V19-E) (73915be)
- Adapter: retired placement rows are erased and the extension folds live state -- pineforge-source-adapter/v4, pineforge-pine-scheduler/v3 (R5 lane V19-E) (0b51ee8)
- CI: the sanitizers job may run 90 minutes (10f2019)
- Docs: re-anchor the citations INT20 moved (ca9e37b)
- integration: the Pine adapter's quiet receipt read says why it needs no acknowledgement (5b8a7f0)
- integration: the ctest floors count INT20's rows -- kernel 245 -> 249, release 631 -> 635 (82eaee3)
- integration: the four mutation guards that clone the source tree skip pycache and *.pyc, so a parallel guard's bytecode cannot vanish under their copy (9e714fc)
- integration: slice B's two witnesses that V19-B's folds move take their v19-B values, once -- every trade, event, count and hook call they pin holds (a355310)
- integration: the three main-side tests that read a run's event record back keep reading it whole, as V19-B made its own readers do (e82aed5)
- integration: PERF-P7's definition index goes -- V19-B's core answers cohort membership from its own chain index, and test_native_definition_index holds that index to a whole-journal oracle (0e8b735)
- Tests: the fused settlement against the staged chain bit for bit, and the counter and allocation witnesses (R5 lane PERF-L2, step 2) (fb1960c)
- Kernel: a book of at most one lot settles in one pass on the stack; the staged chain keeps every other call (R5 lane PERF-L2, step 1) (dff18a4)
- Docs: the journal window, event retention and acknowledgement, the C retention tail, ADR-0001 rulings; citations re-anchored (R5 lane V19-B, step 7) (68f4996)
- Kernel+C+Source: the journal window is enforced -- Window retires what its host read at every script-bar boundary, Commands and Full keep the journal (R5 lane V19-B, step 6) (08e71ba)
- Kernel+C+Source: a host acknowledges what it has read of its events, and the Pine adapter acknowledges its receipt cursor (R5 lane V19-B, step 5) (b41d959)
- Kernel: NativeRunSpec::event_retention -- Window (default), Commands, Full -- validated and folded only off the default (R5 lane V19-B, step 4) (3be4c04)
- Kernel: a trail's TrailArm ordinal lives in its tracking state, not in a journal scan (R5 lane V19-B, step 3) (a99645f)
- Kernel: the order core's journal is a window with absolute positions, and cohorts read a chain index instead of the journal (R5 lane V19-B, step 2) (6b43dcb)
- Epoch: request, core and event values move to native_order_v7, against the frozen v18 provider (R5 lane V19-B, step 1) (d10a72d)
- Docs: re-anchor the citations INT19 moved (3eb2cb8)
- integration: the owner-tick fill comment names the kernel check it means, not a line range that drifted onto unrelated code (cef3d07)
- integration: the ctest floors count INT19's rows -- kernel 242 -> 245, release 624 -> 631 (6c1c40d)
- integration: slice B's and PERF-P7's hash pins take their v19 values, once -- every trade, event, count and source fold they pin holds (c697ff7)
- integration: slice B's three consumer-probe tests reopen the v19 epoch namespace V19-A moved the consumer into (e1b1d5d)
- Build: every strategy TU is compiled with -ffp-contract=off, as libpineforge is (lane FPC) (4c9404c)
- Tests: the lookup-index scaling ratio is a Release-only gate (R5 lane PERF-P7) (48b3e23)
- Kernel: the definition index folds when a lookup first reaches it, and its publication names the core it serves (R5 lane PERF-P7, P7a) (5650ac3)
- Adapter: a lookup over at most sixteen retained entries walks them instead of reaching the consumer's cache (R5 lane PERF-P7) (78f95fc)
- Adapter: the closed-row walk skips an incarnation whose roster position list is empty (R5 lane PERF-P7) (ab36de2)
- Adapter: the lookup index is a class local to pine_adapter.cpp, reached through a private bound_consumer() (R5 lane PERF-P7) (b70d399)
- Adapter: exit() reads consumed legs and same-bar immediate closes from an index over the retained placement rows (R5 lane PERF-P7) (d64d0fa)
- Kernel+adapter: the applied-reversal purge reads a per-cohort side index, and a closed row visits only the origins carrying units (R5 lane PERF-P7, P7b) (7ad4f0e)
- Kernel: cohort_add's canonical walk and cohort_contains read the consumer's incarnation -> definition index (R5 lane PERF-P7, P7a) (4e6e3a2)
- Tests: four Pine scenarios' values through the lookups PERF-P7 indexes, pinned on f71cd82 (R5 lane PERF-P7, step 1) (c3700ba)
- Kernel: a cohort close selects each opening on its roster once, however many lots its fills left (R5 lane K-COHORT, fix) (4a0a519)
- Tests: a cohort close over an entry filled in several slices books what the same close bound without a roster books (R5 lane K-COHORT, witness) (29672d5)
- Docs: ADR-0001 rules on the per-pump projection compare (R5 lane V19-C) (ff46e6a)
- Docs: the v19 continuation, broker-state and stream values, closed-row finality, the eager latch; citations re-anchored (R5 lane V19-A, step 5) (caa65e4)
- Kernel+Source: the latched continuation is taken at once again -- PERF-P1's view reverted (R5 lane V19-A, step 4) (e3e20cb)
- Kernel: the continuation folds live state and the broker-state hash folds closed rows once each -- native-consumer/v9, pineforge-broker-state/v19, stream fingerprint 19 (R5 lane V19-A, step 3) (9e6603e)
- Kernel: the projection compare runs per pump, not per callback boundary (R5 lane V19-C) (bcf9a88)
- Epoch: the engine, host and consumer move to engine_script_run_v19, against a frozen v18 provider (R5 lane V19-A, step 1) (3372b5d)
- Docs: re-anchor the citation TA1 moved on main e7db327 (ta_misc.cpp:28 -> :29) (5e62602)
- integration: the ctest floors count TA1's rows -- kernel 237 -> 242, release 619 -> 624 (85e8e2f)
- Kernel: ta::PivotPointLevels computes the pivot levels of an anchored period, held or developing (R5 lane TA1, item 4) (1eef78e)
- Kernel: ta::KC and ta::KCW take use_true_range; false averages high - low (R5 lane TA1, item 3) (de61247)
- Kernel: ta::KC's middle band is ta::EMA of its source on every bar, and its range is the true range of the previous close alone (R5 lane TA1, item 5) (24c173e)
- Kernel: ta::ALMA takes the floor input, which centres the Gaussian at floor(offset * (length - 1)) (R5 lane TA1, item 2) (f2ae16c)
- Kernel: ta::AnchoredVWAP restarts the VWAP on every bar a caller-supplied anchor is true and is na until the first (R5 lane TA1, item 1) (be41c1b)
- Tests: the quiet-bar battery takes one draw per statement, so every compiler builds the same random strategies (R5 lane XPLAT1) (e7db327)
- CI: the sanitizers job may run 60 minutes (8a9cbfb)
- Docs: re-anchor the citations slice B moved (INT18) (27ef643)
- integration: the ctest floors count slice B's rows -- kernel 229 -> 237, release 607 -> 619 (6182765)
- integration: slice B's allocation-counting tests replace every global new/delete form through INT17b's one allocator (3b6eabf)
- Adapter: quiet-bar gates on every per-bar policy hook, and a commandless receipt read only moves its cursor (R5 lane PERF-L4, step 2) (770f7b2)
- Adapter: the receipt readers ask the host's PineStrategyHost view; the reader marks retire (R5 lane PERF-L4, step 1) (b301cb3)
- Kernel: the per-point abort check passes inline, frames are constructed from their parts, the margin sizing price walks without arrays (R5 lane PERF-L1, step 4) (a859337)
- Kernel: a bar's interval and session-point lookups are served from what it just asked, and its views are read inline (R5 lane PERF-L1, step 3) (2d136e7)
- Kernel: exact guards in front of the per-point bodies, callback frames built in place, the magnifier's lists in scratch buffers (R5 lane PERF-L1, step 2) (adb741c)
- Kernel: the NativeStrategyHost reads take their consumer straight off the engine's slot (R5 lane PERF-L1, step 1) (c34f980)
- Adapter: a re-issued command reads its predecessor's row in place, builds the L4c priority candidates only when a selection can use them, and keeps its source-key node (R5 lane PERF-L5, step 5) (29fd8ac)
- Kernel: match_path passes over a priced trigger its point's path cannot reach before reading the rest of the row (R5 lane PERF-L5, step 4) (4e21019)
- Kernel: match_path takes its next winner from the front of an ascending run of rows while its rows stay one (R5 lane PERF-L5, step 3) (2892751)
- Kernel: match_path's per-point scratch lives in the consumer, so a warm matcher allocates nothing per driver point (R5 lane PERF-L5, step 2) (1643189)
- Tests: six band-edge books' values pinned on f71cd82 before the matcher changes (R5 lane PERF-L5, step 1) (360d882)
- Tests: the allocation-counting tests replace every global new/delete form through one allocator (INT17b) (d292f19)
- Docs: re-anchor the citations slice A moved (INT17) (ea48961)
- integration: the ctest floors count slice A's rows -- kernel 213 -> 229, release 586 -> 607 (693cea9)
- integration: F3's linear-read witness compares the reads with a run K24 and K1 made eleven times cheaper (f312dc7)
- integration: the comment on terminal_receipt_cursor_ says what the member does since P4 (af1b027)
- integration: P4's in-place receipt reads take the host through P23's cached PineStrategyHost view (fb79181)
- integration: K3's step-2 pick kept the step-1 CMake comment it replaces (a0bc6be)
- Kernel: the language time built-ins decompose without per-call libc -- UTC by civil arithmetic, other zones from memoised offset intervals (R5 lane PERF-P5611, P11) (a464d28)
- Source: whether a chart aggregates input bars is answered from equal literals without a parse, in one definition (R5 lane PERF-P5611, P6) (a077928)
- Kernel+source: UTC month and chart-day keys by integer civil arithmetic, not gmtime_r per point (R5 lane PERF-P5611, P5) (be7a256)
- Tests: a host reconfigured to another calendar answers for the new one (R5 lane PERF-K1) (084c1e0)
- Kernel: the consumer and the canonical preflight read the calendar through the memo (R5 lane PERF-K1) (7046720)
- Kernel: the calendar memo keeps its last intervals and its calendar's validity (R5 lane PERF-K1) (81f7975)
- Kernel: a caller-owned memo of the calendar's session days (R5 lane PERF-K1) (b65500f)
- Tests: pin every calendar-derived value a bare host observes (R5 lane PERF-K1, witness) (e408017)
- Kernel: a batch sizes its driver log and command history for its own length (R5 lane PERF-K24, K4) (f7153bf)
- Kernel: a lower feed hands each script bar its sub-bars by binary search (R5 lane PERF-K24, K2) (3cf7f63)
- The request core bisects a long working book to find a handle (R5 lane PERF-K3, step 3) (700f444)
- The matcher rescans only a refreshed winner and takes the next from a heap of its rows (R5 lane PERF-K3, step 2) (9663681)
- Tests: five randomized books' values, pinned on fc7aad6 before the matcher changes (R5 lane PERF-K3, step 1) (b3c90c0)
- Adapter: the three receipt readers visit the command events in place instead of materialising native_events (R5 lane PERF-P4, step 2) (147350a)
- Kernel: the consumer reads its command history in place, and events_after takes its slice from the same search (R5 lane PERF-P4, step 1) (ed917b3)
- Kernel: the projection strings compare by word loads, the tail overlapping, never byte by byte (R5 lane PERF-P23, a) (3a5abc6)
- Tests: the projection witness also writes each string in place, keeping its length (R5 lane PERF-P23) (cfdd26e)
- Kernel: the running spec and its label policy are read from a per-run cache (R5 lane PERF-P23, c) (f4adea8)
- Adapter: the host's PineStrategyHost view is taken once per host, not at every call site (R5 lane PERF-P23, b) (7ec94c5)
- Kernel: every callback site reads the begin's host downcast instead of taking its own (R5 lane PERF-P23, b) (b172260)
- Kernel: the projection check reads the abort flag alone where nothing can have moved, and compares its strings inline (R5 lane PERF-P23, a) (34e71ce)
- Tests: a host's write to a projected field fails where it did, hook by hook (R5 lane PERF-P23) (a45c7e1)
- Docs: the terminal continuation capture is a view -- design §3.8 C revised, ADR-0001 ruling row (R5 lane PERF-P1) (36a6a7e)
- Source: the Pine host latches its terminal continuation as a view (R5 lane PERF-P1) (db92fe7)
- Kernel: a latched continuation can be taken as a view and folded on first read (R5 lane PERF-P1) (c9041f6)
- Gate: kernel residuals read the kernel sources' string literals, so a label GCC splits stays live (INT16b) (fc7aad6)
- Integration: wave F on main a8aeeb2 -- cross-lane reconciliations, floors, anchors (INT16) (ca0aac5)
- Tests: the executed migration pins how the bracket's siblings end (R5 lane F2, item 9) (3668af9)
- Gate: check_doc_anchors names the line, the scope, and a claim for every ruling (R5 lane F2, item 8) (114a081)
- Docs: ADR-0001 and the design record cite and state what the tree does (R5 lane F2, item 7) (2dd9834)
- Gate: a continuation anchor takes the path of the last full anchor before it (R5 lane F2, item 6) (901eae3)
- Docs: the migration page, the guide and the front doors say what the tree does (R5 lane F2, item 5) (2fcbb52)
- Gate: check_doc_lint holds cited paths, derived counts and verified markers (R5 lane F2, item 4) (516de3c)
- Docs: every cited witness exists and every stated count is the tree's (R5 lane F2, item 3) (c349a33)
- Docs: public header comments state what the kernel does (R5 lane F2, item 2) (8d7b11b)
- Tests: the migration page's worked example runs from the page itself (R5 lane F2, item 1) (ad39575)
- Bench: check_provenance.py reads the population's corpus pin from the selection, not the tree's gitlink (R5 lane F10) (ffcae9c)
- Docs: the benchmark READMEs point at the raw timing files, and say which ones were not kept (R5 lane F10) (50ad1a4)
- Docs: the multi-timeframe PyneCore rows reproduce 0-85.5 %, and benchmarks/assets is public (R5 lane F10) (f867096)
- Bench: check_provenance.py traces every headline number to a committed source (R5 lane F10) (4dc472f)
- Bench: commit the raw timing files behind the published speed figures, with a sha256 manifest (R5 lane F10) (2d347c8)
- Bench: compare.py grades a slot whose engine run failed n/a, whatever trade list sits beside the error (R5 lane F10) (554eb88)
- Bench: run_all.sh stops on a PineForge slot failure and never leaves a stale trade list (R5 lane F10) (18d4397)
- Bench: run_strategy.py derives the corpus feeds only for a run that reads one (R5 lane F10) (a6c0ba3)
- Docs: §3.8 precision -- the late bracket's bar, what each alternative still needs (R5 lane F9) (2ac0851)
- Docs: the terminal continuation capture stays eager -- E24 STOP1 as a decision row (R5 lane F9) (95418b0)
- Docs: the kernel recorder's closed-row walk stays, at a documented cost (R5 lane F9) (37c2d6e)
- Docs: the adapter's recording fold is quadratic, and why it is not fixed here (R5 lane F9) (e1f1a04)
- Tests: every recording-mode broker hash of six Pine scenarios, pinned (R5 lane F9) (92ed04c)
- Docs: F7's records and the citations its src edits moved (R5 lane F7) (39cc605)
- Measure why the source cancels stay per-handle loops (R5 lane F7, M27) (433d6ed)
- Drop pine_path_resolve.cpp's unused trail-tick declarations (R5 lane F7, M25) (061d32a)
- The adapter's account-FX lookup is the kernel's (R5 lane F7, M4/M9) (acd44ae)
- Delete three adapter scheduling predicates nothing calls (R5 lane F7) (998cdfc)
- The source layer asks the kernel for the leg order (R5 lane F7, M25) (bdc0ab0)
- The margin units hook keeps answering; MG-F3's kernel number is executed (R5 lane F7, D2) (aef18d7)
- A carried FX rollover takes TradingView's broker-open slice at any margin (R5 lane F7, M9) (3046b8b)
- A staged FX series keeps the kernel's Sized path where the rates agree (R5 lane F7, M4) (2d21d25)
- A typed quantity converts through the kernel's sizing query (R5 lane F7, M3) (0ae5434)
- Docs: re-anchor the citations this lane's lines moved (R5 lane F14) (14789d0)
- A stream skips a closed session under FeedTolerant labels too (R5 lane F14, H13) (d80fea1)
- A session with breaks aggregates on its whole session day (R5 lane F14, H1) (e759966)
- A stream's fills on an aggregated chart keep the chart stream's instants and bars (R5 lane F1, items a/b follow-up) (eb0b250)
- Docs: the aggregated chart, as TradingView draws it -- the three R4 slice C regressions and their fixes (R5 lane F1, item d) (417e641)
- A calc_on_order_fills recalculation reads its own bar's session flags (R5 lane F1, item c) (2bfd31d)
- An aggregated chart dates a fill at the chart bar's open, as TradingView's tape does (R5 lane F1, item b) (4e3b434)
- A plain aggregated chart's trade rows count chart bars, as ab9714b's did (R5 lane F1, item a) (a3c99ea)
- Tests: pin the C session bytes by offset, not by the struct's end (R5 lane F5, item 3b) (4755abe)
- Docs: session-day facts in the migration map, the ADR rulings E26-6/E26-7, OT7 (R5 lane F5, item 4) (f064b1c)
- C API: the session-day facts on pf_native_decision_v1 (R5 lane F5, item 3) (a13360a)
- Adapter: session.isfirstbar/islastbar are the kernel's session-day facts (R5 lane F5, item 2) (c68fab7)
- Kernel: session-day facts on every native decision context (R5 lane F5, item 1) (b6b0bc1)
- Docs: every parameter of the two new C calls Doxygen flagged is documented (R5 lane F4) (4469848)
- Comments: the decision and working tails count their own fields (R5 lane F4) (c24a9da)
- Docs: re-anchor the citations this lane's header and host changes moved (R5 lane F4) (0f07631)
- ADR-0001 records the C surface's routes and rulings (R5 lane F4, items 4 and 7) (074f648)
- The public C headers compile as strict C99, -pedantic-errors included (R5 lane F4, item 9) (0a46b45)
- The C examples spell every enumerated word by its C name (R5 lane F4, item 8) (4a0f1fe)
- A working row reads back its leg's anchor and owner relation (R5 lane F4, item 7: E13 finding 4) (2430352)
- Every decision point tells a C host its script interval and the session day of its open and of the next input (R5 lane F4, item 5) (38b5733)
- The kernel's remaining policy hooks answer to a C host: settlement price and shape, the precommit gate, the anchored level, the hash extension (R5 lane F4, item 4) (9bad92f)
- A C host arms a child after its owner's print or over the whole book, and asks the kernel's sizing before it submits (R5 lane F4, item 4) (dc587ed)
- A C host's begin-time declarations and live appends are refused by name, and it can declare the auxiliary feed (R5 lane F4, item 3) (7ee8fb5)
- A C host reads a margin call's whole economics by its event ordinal (R5 lane F4, item 1) (6d3fb34)
- Guard: every C enumeration is a classified twin of its kernel enumeration, compared value by value (R5 lane F4, item 6) (0ece4fc)
- Every enumerated word the runtime writes for a C host has a C name, pinned enumerator by enumerator (R5 lane F4, item 2) (39d13a9)
- Docs: re-anchor the citations lane F3's source edits moved (R5 lane F3) (0d7562b)
- Kernel: a run whose zone identity cannot be derived is refused at begin (R5 lane F3, item 9) (e35e81f)
- Kernel: execute_current hands the host its presented clock back (R5 lane F3, item 5) (f4b4e65)
- Kernel: the last per-bar broker hash is the run's final broker_state_hash() for every host (R5 lane F3, item 2) (f630807)
- Kernel: the continuation reads the spec's bar-array digests from a per-spec cache (R5 lane F3, item 2 part 1) (e15256a)
- Kernel: an owned lot excursion is recorded as its owner answered it (R5 lane F3, item 4) (684800b)
- Kernel: an armed contingent close records CloseCause::Bracket (R5 lane F3, item 1) (1430f77)
- Kernel: the report's magnifier flag is the run spec's intrabar path (R5 lane F3, item 3) (58382f1)
- C API: a rejected specification leaves the ext-configure handle usable (R5 lane F3, item 7) (ba23197)
- Kernel: configure_native answers WrongPhase when its phase refuses it (R5 lane F3, item 6) (def4ad9)
- Kernel: the adapter's "close" order-id prefix is not kernel code (R5 lane F3, item 8) (9b02d5a)
- Docs: carry the file:line anchors lane F6 shifted (R5 lane F6) (9a75f76)
- Comments: kernel sites say their mechanism first and TradingView as calibration (R5 lane F6, item 8) (348945b)
- Comments: the kernel no longer describes members it deleted (R5 lane F6, item 2) (0883861)
- ADR: the EMA seeding latch is ruled non-state, so no identity folds it (R5 lane F6, item 6) (3548f1d)
- ADR:
legacy_tolerancekeeps its name until native_run_spec_v4, by ruling (R5 lane F6, item 5) (7f73295) - Gate: the residual vocabulary reads Pine's parameter words and the installed headers (R5 lane F6, item 7) (afeead5)
- Headers: P2c's historical spellings are compiler-deprecated (R5 lane F6, item 4) (ad5390a)
- Kernel: the calendar aggregator reads its trace switch once, not per bar (R5 lane F6, item 3) (0bf088d)
- Kernel: the dead members the third audit named are deleted (R5 lane F6, item 1) (5b0fbb6)
- Docs: the examples table lists every host, and the migration map names the new ones (R5 lane F12, item 5) (af03772)
- Examples: the bracket example arms a trail too, and asserts every level, the working rows and the OCA cancel (R5 lane F12, item 4) (08b22cf)
- Examples: per-bar broker-state hashes, and the host's own state folded into them (R5 lane F12, item 3) (830652c)
- Examples: an FX curve step and the FxRoll check point it produces (R5 lane F12, item 1) (b98b9f7)
- Examples: a cash-sized opening that reserves its own commission, from a JPY account (R5 lane F12, item 2) (c75ef29)
- Re-pin the validation corpus to the codegen 9f4f6be regeneration 9182e3d (lane CORPUS1) (a8aeeb2)
- Gate: the release row floor counts the post-wave-E rows that ran -- 572 (INT15) (fd78592)
- Tests: which instant an aggregated chart dates a POOC fill at (R5 lane E27) (9f27d92)
- Docs: the session flags end a session where TradingView ends it (R5 lane E26, item 3) (cfbe677)
- A session ends at the session day, as TradingView's tapes end it (R5 lane E26, item 2) (b531a8d)
- A stream's warmup ends where the stream continues, not where a run does (R5 lane E26, item 1) (446d08d)
- Bench: throughput package re-timed at engine 063e446 -- 0.64 M bars/s over five quiet runs; June-engine A/B re-measured beside e9ad37d (lane BENCH3) (0ad1e8e)
- Bench: parity re-run and PineForge re-timed at engine 063e446 -- all 201 trade lists unchanged, 89 ms / 603k bars/s, 15x vs PyneCore (lane BENCH3) (a02160f)
- Bench: run_all.sh relinks the canonical indicator runner when libpineforge.a is newer (lane BENCH3) (ada3813)
- Docs: the LIVE_RUNNER anchor follows CMakeLists.txt past the closed-root bench lines (lane BENCH2, step 7) (cc02d00)
- Docs: the README carries the 200-strategy refresh -- tiers per engine per group, the PyneCore mechanisms, median 15x vs PyneCore (lane BENCH2, step 5) (471a113)
- Bench: results/staged retires -- the manifest and the compile log move to results/, the staged PyneCore reports are superseded (lane BENCH2, step 5) (cbf984c)
- Bench: every engine timed on a quiet host -- PineForge 611k bars/s, PyneCore 36.6k, median 15x; throughput package re-measured (lane BENCH2, step 4) (cd58108)
- Bench: PineForge parity on all 201 slots, every engine graded -- corpus 100/100 excellent, closed 100 excellent + 1 strong (lane BENCH2, step 3) (0789620)
- Bench staging: PyneCore timing not measured -- the host was never quiet in four hours; the staged README (lane BENCH1, staged steps 3-4) (4909a7e)
- Bench staging: the assets gitlink moves to the new public population, 4794c69 (lane BENCH1, staged step 5) (a16bc55)
- Bench staging: PyneCore parity on the 200-strategy population, graded against TradingView by the canonical rubric (lane BENCH1, staged step 2) (81b0796)
- Bench staging: PyneSys compiles for all 200 slots under the owner's quota, one rejection replaced (lane BENCH1, staged step 1) (e15c629)
- Bench: compare.py's --pending is per engine (ENGINE=TEXT) and --out-dir may sit outside the repo (lane BENCH1, step 2) (b40bd96)
- Bench: run_all.sh's slot listing returns success, so a SLOTS-narrowed run reports and finishes (lane BENCH1, step 2) (8c2e712)
- Bench: PyneCore 6.4.6 -> 6.10.2 and PineTS 0.9.16 -> 0.9.34; vectorbt stays 0.28.2 (lane BENCH1, step 3) (29992ac)
- Bench: PyneCore gets the chart feed for same-symbol daily/weekly/monthly security contexts; runs chunk by slot (lane BENCH1, step 2) (3c17554)
- Bench: the harness runs both slot roots and can stage one engine at a time (lane BENCH1, step 2) (7e4f169)
- Bench: a reproducible 200-strategy population, 100 corpus probes + 100 closed ETH@15 scraped scripts (lane BENCH1, step 1) (5f0c4d6)
- The floors count the rows the integrated tree runs (INT14, wave E) (063e446)
- Docs: re-anchor the whole wave's citations once, on the merged tree (INT14, wave E) (fea2167)
- Integration: the unions the wave's own lanes could not take (INT14, wave E) (c89cfab)
- Docs: the probe tail books what the broker already decided (owner ruling, E20 finding 1) (b80a082)
- Docs: the session-flag row closes lane E20's finding, and the scheduler's anchors follow its lines (R5 lane E25, item 5) (6db2b22)
- A stream's realtime bar reads session.islastbar on the calendar again, not as the run's last bar (R5 lane E25, item 4) (be19463)
- The session flags have one writer again: the lookahead hands its answer to the legacy setter (R5 lane E25, item 3) (5be0b64)
- An aggregated chart reads session.islastbar one script bar ahead, as the chart-timeframe path does (R5 lane E25, item 2) (8b84349)
- Tests: TradingView's session-bar tapes, byte for byte as exported (R5 lane E25, item 1) (d3a40f9)
- Docs: re-anchor the citations this lane's two files moved (E24) (25de72c)
- The append-only logs' digests fold their tail, not the whole log again (3a75c13)
- The continuation fold collapses a field's zero bytes into one multiplication (7643095)
- Tests: the word scenarios page the event history instead of reading one window (R5 follow-up C-surface lane E22, item 3 follow-up) (c9ddc6c)
- Docs: re-anchor the citations this lane's header and host moved (R5 follow-up C-surface lane E22, item 5) (4f6f8b6)
- Docs: the nine typed run-spec words, in the C page's spec section and the README row (R5 follow-up C-surface lane E22, item 4) (45dbc73)
- Tests: every value of the nine run-spec words on a run, and the refusal past each (R5 follow-up C-surface lane E22, item 3) (821cba6)
- Each run-spec word is read by an exhaustive switch over its kernel enumeration, pinned name by name (R5 follow-up C-surface lane E22, item 2) (29c0a2e)
- The run specifications' nine enum-valued words are typed by the kernel's own rules (R5 follow-up C-surface lane E22, item 1) (ba64b23)
- Docs: the placement gate's rate is threaded, and the citations it moved (R5 follow-up lane E21) (906da4d)
- The placement gate threads its acceptance rate and presents no instant (R5 follow-up lane E21, item 1 revised, step 2) (645d83f)
- The settlement inspection takes its rate from its caller (R5 follow-up lane E21, item 1 revised, step 1) (0cc59ef)
- Docs: the opening gate converts at its own point, and the marked equity is one function (R5 follow-up lane E21) (97353fe)
- Docs: re-anchor the citations this lane's line shifts moved (R5 follow-up lane E21) (75f9a3c)
- The marked equity has one implementation, BacktestEngine::marked_equity_at (R5 follow-up lane E21, item 2) (7e4d6d4)
- A placement gate converts at its acceptance point (R5 follow-up lane E21, item 1) (eeeb49b)
- Docs: re-anchor the citations this lane's own lines moved (R5 follow-up lane E16, item 3) (5d44f45)
- Docs: the ladder point a trail's tick count names, and the ruling that put it in the kernel (R5 follow-up lane E16, item 2) (9e9b157)
- A trail stop a whole number of ticks away is the ladder point it names (R5 follow-up lane E16, item 1) (6964cbf)
- The live runner's own example modules keep assert() live too (R5 lane E20, item 8) (22ab1f6)
- The design page's report policy has the three values the header declares (R5 lane E20, item 7) (2bdb55b)
- A late bucket rides on the input that completes it, not on its last contributor (R5 lane E20, item 6) (220fddf)
- A truly frozen caller reads a working row at its own length (R5 lane E20, item 4) (29ba9f7)
- The stability promise states the tail rule the hardening rules keep (R5 lane E20, item 3) (6697c8d)
- A comment names the mechanism the tree has, not the loop it retired (R5 lane E20, item 2) (f630145)
- A validator nobody calls validates nothing (R5 lane E20, item 1) (76bfbf4)
- Docs: re-anchor the citations this lane's lines moved (R5 lane E19, item 3) (cc8c873)
- The forced path order is the run's, not a thread's (R5 lane E19, item 2) (7392aaa)
- The adapter's excursion walks the order the run declares (R5 lane E19, item 1) (9f61ac6)
- The consumer identity names the digest recipe E23 changed: v7 -> v8 (1cbd9de)
- The Linux recipe names the tzdata package the calendar row needs (87fc19a)
- The continuation digest folds the zone it read, not where it lives (2d9543f)
- A rejected replace names its reason to a C host too (d69aa88)
- append_auxiliary_bars carries the names its contract already prints (8ea0a62)
- The begin-time declarations name their refusal instead of answering one bit (f851b18)
- The trail-seed witness pins the absent seed without a host's digest (e9ad37d)
- The receipt-skip row reads CTest's summary, not one CMake's wording (6ef73a4)
- The floors count the rows the integrated tree runs (INT13, wave D) (c4600f5)
- Docs: re-anchor and correct citations the wave moved (INT13) (06d4107)
- Integration: the unions the wave's own lanes could not take (INT13, wave D) (f2d67e4)
- A plain build tree names its receipt-gated rows that skip, and prepares their providers (R5 tooling lane E4, item 4) (7e57b19)
- stale-binaries holds each archive against the files its own compiles read (R5 tooling lane E4, item 3) (3ce0547)
- assert() is live in the live runner's two example modules too, and ci_verify refuses one where it is not (R5 tooling lane E4, item 2) (2c49a01)
- The hosted macOS lane gates the runtime budget again: its sample is CPU time since A40 rev 7 (R5 tooling lane E4, item 1) (4923abf)
- The witness header names the order the seam reads (R5 lane E15, item 1 follow-up) (b7304c7)
- The ADR says which leg order the mask is derived under (R5 lane E15, item 4) (3d8c493)
- Base-class seams a host reaches get a census (R5 lane E15, item 3) (f3c934f)
- A guard nobody instantiates installs nothing (R5 lane E15, item 2) (8d13aba)
- The entry-bar mask follows the run's declared leg order (R5 lane E15, item 1) (b169490)
- Tests: TradingView's shallow-next-bar tapes, the two readings of a running best told apart (R5 follow-up lane E14, item 5) (06b15cc)
- Docs: a trail's ride starts where the leg says, and the ruling that let the kernel learn it (R5 follow-up lane E14, item 4) (1a6f5de)
- A trailing leg names the level its ride starts at, closing both trail lanes' residual (R5 follow-up lane E14, item 3) (0ee94bd)
- The C spelling of a trail's seeded start, as a fourth append-only request layout (R5 follow-up lane E14, item 2) (733a20e)
- A trail's running best starts where the host says, not where the arm landed (R5 follow-up lane E14, item 1) (4a78289)
- The pages say a working row tells an absent arm from an arm at 0.0 (R5 follow-up lane E13, item 2) (0ef00da)
- A trail's absent arm reads back as absent, not as an arm at 0.0 (R5 follow-up lane E13, item 1) (d16747e)
- The example reads its key, and the page says what the handle cannot (R5 gap lane E12, item 3) (e11d40b)
- An unknown key is the book's silence, not the kernel's NotWorking (R5 gap lane E12, item 2) (55ce3de)
- The book says which command answered, and what the kernel said (R5 gap lane E12, item 1) (c76eb76)
- The bracket contract is no longer "the leg stays empty" (R5 gap lane E8, item 3) (9280279)
- The bracket example reads its receipt, leg by leg (R5 gap lane E8, item 2) (25248f5)
- A bracket leg that never rested says so, and says why (R5 gap lane E8, item 1) (4d12e68)
- Docs: a one-shot books its reach tick, and a placement close reaches the activation on its tick (R5 follow-up lane E9, item 4) (9ba25df)
- A placement close reaches a trail's activation on its tick, and the carried best starts there (R5 follow-up lane E9, item 3) (84a4d1e)
- A one-shot trail books the tick its resting limit stands for, rounded away from the position (R5 follow-up lane E9, item 2) (36c7b32)
- Tests: TradingView's one-shot sub-tick and placement-cell trail tapes, byte for byte as exported (R5 follow-up lane E9, item 1) (4357d0e)
- Docs: a trail's activation is quantized with or without an offset, settled by TradingView's tapes (R5 follow-up lane E5, item 3) (756ebcd)
- An offset trail arms on the tick-quantized path, as its one-shot does (R5 follow-up lane E5, item 2) (e54d694)
- Tests: TradingView's offset-trail arm tapes, byte for byte as exported (R5 follow-up lane E5, item 1) (2e405e7)
- Docs: the subscription row's typed words, in the two rows that spell them (R5 follow-up C-surface lane E7, item 4) (d66e2ea)
- Tests: both values of both delivery words on a run, and the refusal past each (R5 follow-up C-surface lane E7, item 3) (1ba8694)
- Both delivery words go through an exhaustive switch, pinned to the C++ bools (R5 follow-up C-surface lane E7, item 2) (07c8c6a)
- A subscription row's delivery words are typed by the kernel's own rules (R5 follow-up C-surface lane E7, item 1) (160ac86)
- The C surface table and the excursion section name the declaration (R5 lane E11, item 2) (284780b)
- A C host that owns its lots' excursions says where each lot's fill sat (R5 lane E11, item 1) (427d430)
- A pointer must name a symbol that exists (R5 lane E10, item 1 follow-up) (2ef8c1f)
- The floors count this lane's row (R5 lane E10, item 4) (03f98e9)
- Two ADR rows the lane's own findings made false (R5 lane E10, item 3) (2053e83)
- A branch no caller can enter is not a fallback (R5 lane E10, item 2) (ce9509e)
- A comment that documents nothing is deleted; one that documents the wrong line is moved (R5 lane E10, item 1) (7dd8b32)
- A comment documents the declaration under it; the census says which ones do not (35f5e77)
- Two ADR rows: the residue is deleted and the pair has no writer (R5 lane E6, item 3) (665a917)
- The owner of a lot's excursion declares where its fill sat; the kernel derives the mask (R5 lane E6, item 2) (6061f3d)
- A comment that outlived its function is not documentation (R5 lane E6, item 1) (6ea906c)
- Tests: the rate-explicit marked equity is pinned against the engine's own accessor (R5 follow-up lane E3, item 4) (be2b1b3)
- The conversion instant is part of the margin contract, and the tick refusal is not about it (R5 follow-up lane E3, item 3) (7088597)
- The C fx-roll scenario's step goes back where its own arithmetic wanted it (R5 follow-up lane E3, item 2) (67b5693)
- A margin check point converts at its own cursor's instant (R5 follow-up lane E3, item 1) (20205ad)
- Report truth is two scopes on one page, not one (R5 gap lane E2, docs) (2afab42)
- The extremes are a property of the run, not of who records the curve (R5 gap lane E2) (0fc194b)
- The page states the rule for an anchored field, not the value it happens to take (R5 follow-up lane E1, item 2) (d1918c7)
- An anchored level is a field you leave unwritten, not one you fill with a placeholder (R5 follow-up lane E1, item 1) (5934ef6)
- Docs: the guards bind, because the pages they guard are clean (R5 int12, documentation wave) (9b50973)
- Docs: re-anchor over the two comment lines the KernelRisk fix added (R5 lane L14-C, item 4 follow-up) (a4f5bed)
- Docs: RequestOrigin::KernelRisk is not reserved any more; it is what a risk flatten carries (R5 lane L14-C, item 5 follow-up) (fbdbf8a)
- Docs: the opening says what a minimal host is, not what the page used to say (R5 lane L14-C, item 1 follow-up) (9b72c42)
- Docs: the detached comment residue is 312 lines, measured (R5 lane L14-C, item 2 follow-up) (9a26b5b)
- Docs: re-anchor the three pages over the header comments item 5 added (R5 lane L14-C, item 4) (6d31c37)
- Docs: every public declaration the reference page documents now says so in its own header (R5 lane L14-C, item 5) (21e3037)
- Docs: the §1 inventory carries its closure markers, and a gate keeps them there (R5 lane L14-C, item 3) (50339d0)
- Docs: ADR-0001 rewritten against HEAD, and rule 2 amended to the standard the waves applied (R5 lane L14-C, item 2) (5691220)
- Docs: the native reference re-derived against this tree, section by section (R5 lane L14-C, item 1) (69228e6)
- Docs: the worked migration, executed against the kernel-only archive (R5 lane L14-B, item 7) (d96c258)
- Docs: the two site front doors re-derived against HEAD (R5 lane L14-B, item 6) (16f3652)
- Docs: the README's three front doors, true on this tree (R5 lane L14-B, item 5) (f4ac97c)
- Docs: CONTRIBUTING.md rewritten for someone who has never seen this repository (R5 lane L14-B, item 4) (4fb9db3)
- Docs: onboarding written for the contributor who is a language model (R5 lane L14-B, item 3) (8b7965a)
- Docs: the migration page is a complete map, and a gate holds it complete (R5 lane L14-B, item 2) (7328f4d)
- Examples: the auxiliary finer feed, and the open book lot by lot (R5 lane L14-B, item 1) (40f2396)
- Docs: what the documentation guards check, and how to run them (R5 lane L14-A, item 5) (77e8ebc)
- Docs: the prose was already in the headers, Doxygen just could not read it (R5 lane L14-A, item 4) (51a1989)
- Docs: a roadmap label is a promise, and the tree decides which epoch is live (R5 lane L14-A, item 3) (7c261f7)
- Docs: the mechanical re-anchoring, line numbers and nothing else (R5 lane L14-A, item 2) (b636204)
- Docs: a citation is a promise, so the gate reads the line the page points at (R5 lane L14-A, item 1) (ef680a8)
- Tests: both spellings are one double at one offset, proved from C (R5 gap lane P2c, item 4) (0a47cbf)
- A deprecated spelling is a ruling with a removal epoch, not a comment (R5 gap lane P2c, item 3) (329e021)
- The observation domain is the fill-recalculation pass, whatever a script language calls it (R5 gap lane P2c, item 2) (9316f93)
- The equity ratios are named by their resampling period, not by their calibration source (R5 gap lane P2c, item 1) (6a85bb7)
- The residual gate: a Pine call is a text, this project's header file is not (R5 gap lane P2b, item 1, sanitizers half) (8e09988)
- Tests: the residual gate's must-fail cases for surface, fragments and a host without a strip tool (R5 gap lane P2b, item 3) (c776982)
- Kernel: the day-of-week index, the offset sign and the timezone guard are named by mechanism (R5 gap lane P2b, item 2) (aa6ac08)
- The kernel-residual gate reads the linkable surface, not the debug info (R5 gap lane P2b, item 1) (348a00d)
- Integration: gap wave C on main — the release row floor, recomputed over the eleven lanes (4892e9f)
- Docs: one fill simulation, and how the trail rows read it (R5 gap lane P9, item 3) (aadfbe7)
- Tests: delete the second fill simulation (R5 gap lane P9, item 2) (16e9e67)
- Tests: the trail suites' resolver rows become a matcher-side projection (R5 gap lane P9, item 1) (12b3fe5)
- Document the runtime-budget row and its CPU-time rule (R5 gap lane Q9) (22e6878)
- Gate the runtime budget on process CPU time, not wall clock (R5 gap lane Q9, A40 rev 7) (dfa1c84)
- The range-end ruling, with its measurement, in the two documents (R5 gap lane Q6, item 3) (b16e11f)
- The range-end report shape, measured against the kernel producer (R5 gap lane Q6, item 2) (f5fd428)
- One producer for the range-end report rows (R5 gap lane Q6, item 1) (7ebc18c)
- Say what the per-bar broker hash is for, where its API is documented (R5 gap lane Q4) (8e558eb)
- Rule the per-bar broker hash per driving mode, and pin it both ways (R5 gap lane Q4) (4ddbcb2)
- The calculation cadence, and what installing it costs, on the migration page (R5 lane P4, item 3) (98b9467)
- A C host's route to a closed row's exit ticket, recorded and executed (R5 lane P4, item 2) (ae1c7fc)
- The fourth margin check kind, under its own C name (R5 lane P4, item 1) (c72d895)
- Make TradingView parity block a merge, through the context that is already required (R5 gap lane P3, item 3) (9b83111)
- check_corpus_parity.sh --subset: the same gate over a population a merge can wait for (R5 gap lane P3, item 2) (b89b861)
- The parity subset a pull request can afford, judged by the same byte oracle (R5 gap lane P3, item 1) (52b067e)
- assert() is live in every examples/native target, and ci_verify refuses one where it is not (R5 gap lane Q12, item 2) (5a1723c)
- The CTest row floor counts rows that ran; skipped rows are listed, not counted (R5 gap lane Q12, item 1) (4c040e4)
- check_adapter_spec_shadowing.py becomes a ci_verify source guard (R5 gap lane P7, item 3) (68f590a)
- Release profile row floor: RELEASE_MIN_TESTS = 546 (R5 gap lane P7, item 1) (3c0002d)
- Example rows assert the exit code and the summary line (R5 gap lane P7, item 2) (ce176c6)
- Docs: the price grid and the risk limits are native-only by ruling, with the measurements (R5 audit lane P6, item 3) (ceb07e4)
- Rulings: every NativeRunSpec field the adapter never declares, and the check that holds them (R5 audit lane P6, item 2) (09a679a)
- Examples: the price grid, in C++ and from C, and the money risk limits (R5 audit lane P6, item 1) (7a6facd)
- Docs: the three P5 witnesses, and the kernel row floor at 183 (R5 gap lane P5, item 4) (41ca2ee)
- Tests: a kernel liquidation seen through native_open_lots() under NativeRunSpec::margin (R5 gap lane P5, item 3) (a188140)
- Tests: closed_trade(i) is the closed row by reference, and the report's row at that index (R5 gap lane P5, item 2) (7cc4b83)
- Tests: the market-if-touched geometry of Limit{price, fill_through}, kernel-only (R5 gap lane P5, item 1) (0378196)
- The kernel-residual gate: strings/nm over libpineforge_kernel.a held against ADR-0001's table, in the kernel profile and as a CTest row (R5 gap lane P2, item 3) (c421b7a)
- ADR-0001: every pending-row family the residual vocabulary matches is ruled by name, and the ambient EMA seeding default by mechanism (R5 gap lane P2, items 1 and 2) (2757095)
- Kernel TA: the EMA seeding is a named per-instance option, the ambient default a ruled generic (R5 gap lane P2, item 2) (d2173c5)
- Integration: gap wave B on gap wave A — the C surface's fourth layout, the N10 oracle after N14, and the kernel row floor (b8e7976)
- CI: gate TradingView parity nightly, and lint the job that does it (R5 gap lane N15, item 3) (6be2276)
- The TradingView parity gate, as one local command over a recorded baseline (R5 gap lane N15, item 2) (337c54f)
- Re-pin the validation corpus to the R4-D regeneration 442d497 (R5 gap lane N15, item 1) (3d0708f)
- Rulings for the two retained kernel calendars, and the residual-name table (R5 lane N14, audit R-7 / R-8) (207d57f)
- The live-runtime tail overrides become source-host state behind the frozen C shim (R5 lane N14, OT8) (339c99b)
- The market-admission journal becomes source-layer state (R5 lane N14: pineforge::admission) (47df71b)
- TradingView's trail tick arithmetic moves under compat/pine (R5 lane N14) (d3b5a58)
- The deprecated pine_float_* shim moves to the source-layer include root (R5 lane N14, audit R-9) (e71e589)
- Neutral names for the two public matrix types (R5 lane N14, audit R-3) (e7facfc)
- The lower-timeframe merge-flag rule moves to the source evaluator (R5 lane N14, audit R-1) (24786f1)
- Docs: strategy.opentrades.* and strategy.closedtrades.* mapped field by field (R5 gap lane N18, item 3) (cced2aa)
- Native C API: strategy_native_open_lot_count_v1 / _get_v1 copy the open lots out (R5 gap lane N18, item 2) (4ade522)
- Native hosts: the open lots as a public owning snapshot (R5 gap lane N18, item 1) (9baacca)
- Docs: the auxiliary finer feed, its C spelling, and the adapter's retained auxiliary drive (audit lane N7, item 4) (3a52afb)
- tests: the adapter twin of the auxiliary feed, and why the Pine auxiliary drive is retained (audit lane N7, item 3) (60e3dd6)
- C native host: the auxiliary finer feed, its series source and a stream's append (audit lane N7, item 2) (7853449)
- Native auxiliary finer feed: a bare host builds a series from bars its input does not have (audit lane N7, item 1) (3630199)
- Docs: the arm options, the adoption table and the grid re-lowering waiver (R5 gap lane N13, item 3) (0c174d9)
- Pine adapter: an anchored relative leg is the request its parent's fill submits (R5 gap lane N13, item 2) (0c68375)
- Native order: an armed child's first match and scope (R5 gap lane N13, item 1) (bfe354a)
- Docs: the TradingView risk rules stay in the adapter, with the measurement (R5 audit lane N12) (f8cd177)
- tests: the TradingView risk rules measured against the kernel's generic risk limits (R5 audit lane N12) (817499a)
- Kernel comment: the liquidation-sizing knob no longer names the adapter as the chooser of 4.0 (R5 gap lane N11, D2 follow-through) (14060da)
- Pine adapter: the kernel margin model declares no sizing knob its units hook shadows, and a check keeps it so (R5 gap lane N11, D2) (a6c37c1)
- Pine adapter: the default-quantity conversion is the kernel's query; the dead core-sized fallback is an invariant (R5 gap lane N11, D1) (05de144)
- Kernel sizing preview: native_sized_units() answers the L3 basis arithmetic as a pure query (R5 gap lane N11, D1 knob) (aab1974)
- Docs: what left the source layer and the kernel header in N10 (R5 lane N10, item 4) (94023f7)
- Kernel: delete round_to_mintick_directional / apply_slippage (R5 lane N10, item 3) (2338389)
- Pine scheduler: delete the uncalled COOF state trio (R5 lane N10, item 2) (6b27684)
- Pine adapter: the dead exit-path fill simulation leaves the shipped layer (R5 lane N10, item 1) (ed1b65f)
- Integration: the kernel row floor, recomputed for gap wave A (97629fb)
- Native C API: the exclusion list is complete, and a guard proves it (R5 lane N8, item 6) (f22a34e)
- Native C API: a cohort close a C host can actually submit (R5 lane N8, item 5) (cdeabd2)
- Native C API: the request's sizing detail and the run spec's intrabar and feed policies (R5 lane N8, item 4) (4055fed)
- Native C API: the additive callback tail — recalculation, sub-bars and the three margin hooks (R5 lane N8, item 3) (9d7d3ae)
- Native C API: cancel_where and the begin-time subscription declaration (R5 lane N8, item 2) (c3d8f63)
- Native C API: the eight read-only accessors a C++ host already had (R5 lane N8, item 1) (2f8852b)
- Docs: design rows MG9, FP6 and U4 closed by audit lane N6; the adapter's two FX limits recorded as measured follow-ups (audit lane N6, item 3) (6a6a4ff)
- Native streams run under the declared FX curve; tick-driven input under one stays refused (audit lane N6, item 2: FP6) (dfc93d4)
- Native margin model: a step of the declared FX curve is a check point of its own (audit lane N6, item 1: MG9) (ec88db9)
- ci_verify: the kernel profile carries a CTest row floor (audit lane N3, item 7) (e8dff5a)
- tests: L11a lot excursion gets a kernel half; the source-host rows move to the twin (audit lane N3, item 6) (4206df8)
- tests: the L8/L8b price-grid adapter twin moves beside its native half (audit lane N3, item 5) (407dfce)
- tests: the L6 HTF-subscription Pine-path twin moves beside its native half (audit lane N3, item 4) (baf5745)
- tests: the L5 calc-timing twin moves beside its native half (audit lane N3, item 3) (f1bd2f1)
- tests: the L4b margin-hooks twin moves beside its native half (audit lane N3, item 2) (708c201)
- tests: the L2 report-truth twin moves beside its native half (audit lane N3, item 1) (e74b14b)
- Docs: kernel-recorded broker-state hash rows and the generic host hash extension (R5 gap lane N5, item 3) (12889a8)
- Generic host hash extension and a public hash sink (R5 gap lane N5, item 2: RP10) (b88adfd)
- Kernel-recorded per-bar broker-state hash for bare hosts (R5 gap lane N5, item 1: RP9) (7d6d17b)
- Docs: strategy.cancel(id) has a one-call native equivalent (R5 lane N9, item 3) (4e07929)
- C native host: strategy_native_cancel_where_v1, the C spelling of the bulk cancel predicate (R5 lane N9, item 2) (1e764be)
- Native order ergonomics: cancel_where addresses a request by label as well as by comment (R5 lane N9, item 1) (0676fca)
- Docs: the native examples, one per landed lane, and the profiles that run them (audit gap N4) (cd045e8)
- Native example: a trail in ticks, the working book and a risk limit (R5 lanes L7 and L9; audit gap N4) (b55cc0e)
- Native example: higher-timeframe series for a bare host (R5 lanes L6, L6c and L6d; audit gap N4) (f67b567)
- Native example: calc-on-fills and the open-only bar-open view (R5 lane L5; audit gap N4) (6318da7)
- Native example: margin model, kernel liquidation and the margin hooks (R5 lanes L4 and L4b; audit gap N4) (d26df70)
- Native example: kernel-sized openings and a kernel-recorded report (R5 lanes L3 and L2; audit gap N4) (f47ee1f)
- Include-independence checker covers the C example, compiled as C (audit gap N4, item 1) (2fed18e)
- Native examples link PineForge::kernel (audit gap N4, item 1) (1622a87)
- CI gate: build and run the native examples in the release and kernel profiles (audit gap N4, item 1) (6ecc0de)
- Docs: the subscription pump's chronology against the script interval (R5 lane L6d, item 3) (683a82f)
- tests: a lazily sealed script bar is calculated before the sealing input reaches the series (R5 lane L6d, item 2) (b0716f2)
- Native HTF subscriptions: the pump is ordered against the script interval, after a pending lazy seal (R5 lane L6d, item 1) (fed57e4)
- Adapter re-lowering: relative from_entry legs run on the kernel's anchored bracket children (R5 lane R4d) (c7c1b15)
- Pine adapter: plain request.security sites run on the kernel's higher-timeframe subscriptions (R5 lane R3b) (c6231a6)
- Native HTF subscriptions: gaps reaches clear_security, and the previous run's series are torn down before on_native_run_begin (R5 lane R3b, kernel) (6eae79b)
- Docs: the price grid's reached rule and its scope per mode (R5 lane L8b, item 4) (87b3b06)
- Native price grid: the activation rule witnessed per kind, per tick and on the trial's tapes (R5 lane L8b, item 3) (2effe5a)
- Native price grid: every trigger kind audited against the reached rule (R5 lane L8b, item 2) (66d4607)
- Native price grid: the core re-validates an activation on the run's grid (R5 lane L8b, item 1) (0a26a32)
- tests: every field of the request.security side table moves the broker hash (R5 lane L12b, 2.ii m) (bf42c99)
- Kernel HTF comments and docs describe the generic remainder (R5 lane L12b, 2.ii m) (cfbd5d8)
- The KI-55 chart EMA warmup selector follows its sibling to the source host (R5 lane L12b, 2.ii m) (c86ee50)
- The deferred auxiliary chart slice becomes source-host state (R5 lane L12b, 2.ii m) (b28596c)
- request.security_lower_tf emulation becomes source-host state and code (R5 lane L12b, 2.ii m) (24daced)
- The historical request.security lookahead projection moves to the source host (R5 lane L12b, 2.ii m) (6cb8e63)
- The KI-55 range-start cut and its OTC-daily pins move to the source host (R5 lane L12b, 2.ii m) (c6580d3)
- ticker.heikinashi substitution becomes source-host state and code (R5 lane L12b, 2.ii m) (da396a8)
- barmerge.gaps_on and the calling-bar publication gates become source-host state (R5 lane L12b, 2.ii m) (322b854)
- barmerge.lookahead_on's merge latch becomes source-host state (R5 lane L12b, 2.ii m) (90c534d)
- TradingView's request.security timeframe rules move to the source host (R5 lane L12b, 2.ii m) (2988a72)
- The source host registers and steps its own request.security sites (R5 lane L12b, 2.ii m, split) (7250d71)
- Native price grid: ladder-point exactness and the exact half-up boundary (R5 lane R7; adapter re-lowering BLOCKED) (32362ce)
- Docs: anchored bracket legs -- rounding, arm hook, visibility, the arm chronology (R5 lane L7b, item 6) (18282c3)
- Anchored legs: submit_bracket knobs, a grid-bracket example, and the R4 twin (R5 lane L7b, item 5) (2ab0495)
- Anchored legs: measure which non-level facts resolve at the arm (R5 lane L7b, item 4) (77c42e0)
- Anchored legs: PendingUntilArmed keeps an unarmed leg out of the working book (R5 lane L7b, item 3) (a384da4)
- Anchored legs: the host restates the level through resolve_anchored_level (R5 lane L7b, item 2) (03dff9c)
- Anchored legs: the materialized level snaps onto the price tick ladder (R5 lane L7b, item 1) (7bc01e8)
- Finish the feed-tolerance rename (R5 lane L12, 2.ii c) (81ea93a)
- The closer records why a row exited; the kernel stops decoding strings (R5 lane L12, 2.ii l) (85d3ee6)
- The TradingView margin-call switch becomes source-host state (R5 lane L12, 2.ii k) (606ef38)
- Move the Pine lot flags off the generic lot (R5 lane L12, 2.ii j) (5b070d3)
- Split the TradingView half of the path resolver into the source layer (R5 lane L12, 2.ii g) (77ed696)
- Delete the dead legacy stream input path from the kernel (R5 lane L12, 2.ii f) (6628332)
- Wave-4 integration: the post-exit margin re-size is a TradingView check point (regression on stockhunter2025-btcusd-4h-ema-swing-strategy) (8505e1e)
- Wave-4 integration: maintenance-only kernel margin model (ruling: opening admission is the host's, liquidation is the kernel's) (4143d4c)
- Declare higher-timeframe series at begin (R5 lane L6c item 3) (4b6b8aa)
- Subscriptions carry barmerge.gaps_on (R5 lane L6c item 2) (4d02cc1)
- Subscriptions are series instances, not periods (R5 lane L6c item 1) (2930b53)
- Adapter re-lowering: trail offsets spelled in kernel TrailTicks (R5 lane R4, part 1) (d337fc3)
- Adapter re-lowering: the TradingView margin call runs through the kernel margin model (R5 lane R5) (4b05b62)
- Hostable native margin model: equity basis, level base, requirement hook, mark-based check, check gate (R5 lane L4b) (9f18115)
- tests: use uint64_t for the frozen-header incarnation (gcc/Linux rejects unsigned long long* -> uint64_t*) (3f6fd57)
- tests: guard the R2 witness's compile definitions for the kernel-only build (05f9084)
- Adapter re-lowering: default-quantity sizing resolves in the kernel (R5 lane R2) (ff89300)
- C API: translate the native risk event (L13 + L9) (20047c6)
- C-level native host API: strategy_native_* (R5 lane L13) (27c2c53)
- Adapter re-lowering: calc_on_order_fills runs through the kernel's recalculation (R5 lane R6) (ad13555)
- Neutral names for the pine_*-prefixed generic utility API (R5 lane L11, 2.ii h) (9b0052e)
- Delete the two uncalled fill helpers from the public kernel header (R5 lane L11, 2.ii e) (cd6cfe4)
- Delete the orphaned adapter comment essays from the kernel (R5 lane L11, 2.ii d) (44b17c1)
- Neutral spellings for the feed-tolerance run-spec policy (R5 lane L11, 2.ii c) (9172b3b)
- Rename pine_float_compare.hpp to ta_compare_band.hpp (R5 lane L11, 2.ii b) (2f94d85)
- Kernel: carry the rich begin overrides as an opaque const void* (R5 lane L11, 2.ii a) (3f4fff5)
- Generic native risk limits (R5 lane L9) (0da03a1)
- Native sizing: fee-reserve scale, grid floor, ScopeFraction basis, sizing-price rule, placement-time units, Sized reversals (R5 lane L3b) (b137444)
- Adapter re-lowering: the kernel owns equity recording; the Pine host only selects the policy and marks its cadence (R5 lane R1) (04330d4)
- Port the wave-2 lanes' hash-neutrality guards to native_run_spec_digest() (b0cec54)
- Higher-timeframe subscriptions in stream mode (R5 lane L6b) (3b60b17)
- Native calculation timing: recalculate on fills and at every modeled point, partial-bar view, open-only bar view (R5 lane L5) (44bb687)
- Generic native margin model: per-side initial margin, maintenance liquidation, host hooks (R5 lane L4) (9ae173d)
- Portable hash-neutrality guards: native_run_spec_digest() and machine-independent test pins (06ef483)
- Native order ergonomics, relative bracket anchors, trailing completeness, and the Pine-free toolkit (R5 lane L7) (4e3940a)
- Top-level native examples, PINEFORGE_EXPORT_NATIVE_STRATEGY, and the Pine-to-native guide (R5 lane L10) (9392951)
- Native higher-timeframe subscriptions for bare hosts (R5 lane L6) (a77fb73)
- Native sizing bases and fractional reduces (R5 lane L3) (b18f75e)
- Native price grid: quantized fills and optional quantized triggers (R5 lane L8) (471708d)
- Report truth for native hosts: kernel-recorded equity curve and range-end rows (R5 lane L2) (6f01b5b)
- ADR-0001: the kernel / source-adapter / codegen boundary, rewritten from the code (R5 L0) (#255) (e7350f7)
- Revert "Re-pin the validation corpus to the codegen-oss 89645d67 regeneration (#258)" (#259) (2bdbc32)
- Re-pin the validation corpus to the codegen-oss 89645d67 regeneration (#258) (c64a682)
- Add a kernel-only build target and option (R5 lane L1) (#257) (be0cbab)
- Add the native feature-parity design: gaps, kernel-vs-adapter rulings, lanes (#256) (1dd5430)
- Lower generated Pine execution onto the native kernel and retire the legacy loop (R4 slice C) (#254) (73817c1)
- Cut the Pine source layer out of BacktestEngine (R4-C, roadmap slice B) (#253) (ab9714b)
- Native terms follow-up: no-plan terminal for unresolved HostSized groups and the remaining provenance witnesses (#252) (66d9dc4)
- Add native execution terms: host-resolved sizing, exact reversal, precommit view, FX curve (R4-B) (#251) (e7cdf05)
- Add selected native closes and synchronous current-point execution (#250) (f736676)
- Require every CI lane and catch verification setup errors before builds (#249) (c3ed455)
- Isolate source-day observations from native settlement (#248) (fe373cf)
- Unify remaining fill paths under native settlement (#247) (0983770)
- Build the standalone native resting-order state machine (#246) (e60e571)
- Keep native AUTO path independent of legacy host overrides (#245) (dd84e08)
- Add scoped native settlement for opening exposure (#244) (e7d023d)
- Build the standalone native execution path (#243) (5f3299d)
- refactor: unify reversal execution and lifecycle settlement (#242) (ac526fd)
- test: assert rejected unbounded admission evidence (d3996b4)
- Reject unbounded margin demand and seed valid native risk fixtures (05eabaa)
- Settle each migrated crossing as one native execution (9585cf0)
- Fix native rebate excursion and notional fees (bb428d2)
- Add native resolved execution settlement and preserve paid entry costs (04b0588)
- Introduce native Reduce and signed transaction planning (83c2a1c)
- Test native order action integration seams (9657552)
- Fix global integer types in GCC mirror ABI proof (46dd601)
- Align lifecycle and admission documentation with final v11 model (d5a5eaf)
- Supply owning journal to full-book mirror assertion (e6bfb37)
- Migrate predecessor assertions to canonical journal evidence (c304cc9)
- Preserve complete mirror context and earlier standalone ABI controls (52f4dde)
- Update ABI guards for market admission v2 (5a2fc4b)
- Derive opposite market intent from journal facts (2499c3b)
- Prepare v11 ABI controls for opposite intent model (82f4384)
- Advance internal ABI to v11 for opposite intent removal (14d5263)
- Document placement derivation and v10 compatibility boundary (fd4c686)
- Advance aggregate internal ABI to v10 (1f05ee2)
- Derive placement state from original admission observations (c28c2db)
- Close cancellation audit gaps and pin each receipt leaf (f2df706)
- Complete cancellation v9 ABI evidence fixtures (3305001)
- Add v8 and cancellation ABI evidence controls (a754ff9)
- test: cover cancellation hash and mirror leaves (9950d15)
- Commit cancellation and claim release atomically (0a7f4be)
- Make cancellation claims fail closed and replay safe (1476bd3)
- Harden cancellation ABI and causal identity boundary (9a498ae)
- Harden cancellation receipt identity and claim release (da09bfc)
- Replace late suppression flags with cancellation receipt (cfc5fa3)
- Preserve live admission causes across empty reviews (7992109)
- Refine Pine admission boundary (3a64da2)
- Refactor order admission and trigger lifecycle into generic submodels (3b13183)
- Refactor reservation growth and Pine market instruction ownership (cc0b22d)
- Bind exit-leg activation to exposure owners and enforce readiness (ff54a55)
- Replace seven pending-order flags with quantity and event facts (149f77c)
- refactor: move retained-parent priority into Pine compatibility (c45cf5a)
- refactor: isolate Pine cap policy from native order state (f864be5)
- fix: validate native inputs and preserve order lifetimes (d1cc7d8)
- Merge pull request #232 from pineforge-4pass/refactor/broker-ownership-main (df6a47f)
- test: keep ownership suite independent of deferred accounting work (38dc73e)
- test: fail closed on new opening receipt state (600d90e)
- refactor: own opening checkpoints by committed fill and position (09d031f)
- docs: clarify compiler license and close-only live strategy contract (95aeb9c)
- fix: commit native provider batches atomically and clarify stream integration (ae0835d)
- feat: add native live runner with durable webhooks and broker parser plugins (8901e83)
- docs: align round 39 lane table and diagnostic evidence (6bfe983)
- docs: record round 39 fractional price admission parity (c1084ff)
- fix: apply price admission to ordinary fractional market entries (a98c942)
- docs: record round 38 whole-lot budget parity results (5c2be9d)
- fix: enforce whole-lot opening budgets after completed closes (c59167d)
- docs: record round 37 full parity results and lifecycle fix (0d15202)
- fix: apply Pine float direction comparisons to MFI (89bf5fe)
- docs: describe compiled strategy run lifecycle and rebuild boundary (69a6c94)
- fix: clear broker snapshots at a new run boundary (d442e2a)
- fix: reset broker identity allocators between runs (48232d3)
- fix: reject stale C++ objects across script lifecycle ABI (c5488c4)
- fix: prepare generated script state at each run lifecycle (b395511)
- fix: retain traversed margin excursions and update round 36 board (399eead)
- fix: settle long rounding margin before carried trailing exits (d818143)
- fix: settle carried rounded short margin before owned trail sizing (1d5e729)
- Record the round 35 parity scoreboard and raw trade gains (cda51d5)
- Use the dual-stop placement quantity consistently for admission (1769000)
- Preserve ordinary dual-stop transactions across both path touches (30c881c)
- Record the round 34 parity scoreboard (cb10acd)
- Merge current ABI v4 main and hash opening-money provenance (aad7bfd)
- Apply opening money events after POOC admission (aa43cff)
- Use the kernel fill directly for same-bar admission provenance (3258218)
- Use signal cost and tick-built price for POOC money admission (2c17a73)
- engine: identity -dirty label also watches CMakeLists.txt and cmake/ (41c9c74)
- engine: tail last_bar_time — script-bar geometry only on the simple loop (aggregation keeps first-bar extrapolation); gapped/aggregated tail tests; stream dual-entry reset pin; identity -dirty label (99b27a8)
- engine: final review fixes — exact tail last_bar_time, dual-entry snapshot reset, close_cause -1 convention, hard flag guards, hash-coverage ctest, zero-probe lane guards, ABI-4 docs (e58d8de)
- docs: live-surface carried-POOC helper attribution; index.md live-runtime group row (9e5a876)
- docs: task-13 fix round 1 — v4 report mirrors (schema, Rust), probe-suppress/range-end independence, trail_price fill-path citation, return conventions, unreleased entry (0501468)
- docs: ABI v4 live surface; cheatsheet corrections (trail_price is read; v4 accessors; corpus slippage facts) (46b2ced)
- engine: bar-identity lane — provenance hard-fail, header contract on both sides, --out-csv per tf, first_skipped_line receipt (d897538)
- engine: task-12 fix round 1 — aggregate_feed row receipts, strict H/L classifier, volume/missing count as unexplained, aggregator provenance, CLI; lane pre-warm isolation (0ff1336)
- engine: L0 bar-identity lane row 1 — engine aggregate(1m) vs the graded derived 15m feed (ff013a1)
- engine: live_flags_lane feed cache pre-warmed; run_strategy symbol checks before the run (fd00af0)
- engine: task-11 fix round 3 — lane vacuity guards (hash/tail receipts), strip every range-end trade, --out + atomic write, last-processed-bar boundary, self-test (493a6ad)
- engine: task-11 fix round 2 — seeded-positive pin for the live-flags lane (last_bar_index-dependent entry vanishes under realtime_tail; hash prefix diverges interior) (45a3fb5)
- engine: L0 live-flags lane — realtime_tail at two horizons, positives labelled for the admission lint (ca49452)
- engine: live_flags_off_identity — --force only clears a directory that carries provenance.json (500edc2)
- engine: L0 live-flags lane — realtime_tail at two horizons, positives labelled for the admission lint (f62d70c)
- engine: live_flags_off_identity — --only scopes the reference side; provenance corpus_head is checked (429b157)
- engine: task-10 fix round 2 — pin asserts fills; identity script gains reference provenance, two-way coverage, tagged failures (686535d)
- engine: task-10 fix round 1 — flags-off identity referenced to the branch-point engine (--root/--emit/--reference) (c086cd8)
- engine: flags-off identity pins (reused handle, toggled flags, corpus trades byte-identical) (22d7b19)
- engine: task-9 fix round 1 — revive-path bracket flag, equity doc, review minors (476d970)
- engine: closed-trade id/comment/close-cause + position/equity accessors (ABI v4) (1f69ce4)
- engine: task-8 fix round 1 — model the SHORT-seed final-short and same-bar-market reversal kernels in probe_fill_qty (453016b)
- engine: engine-computed fill qty / level resolution / effective levels + position scalars for the live runtime (8323549)
- engine: task-7 review fix round 1 — read_pending_orders stub-lib test, hex every uint64, generator/coverage anchoring, size_in < 8 rejection (5bdae45)
- engine: broker-state hash coverage extended to struct PendingOrder + PyramidEntry::entry_incarnation (task-5 carried ruling) (7e7e36a)
- engine: generated POD mirror of PendingOrder + strategy_pending_order_* accessors (ABI v4) (7beadac)
- engine: task-6 review fix round 1 — coverage waiver, stream-path recording, self-describing JSON (b821c1b)
- engine: per-bar broker-state hash recording in pf_report_t (ABI v4) + strategy_broker_state_hash (d9b8080)
- engine: broker_state_hash fix round 1 — broker_fill_event_seq_, comment-safe coverage, exhaustive pin, PendingOrder + script-visible accumulators (0125b89)
- engine: broker_state_hash — enumerated, order-independent, coverage-checked (live G1) (15bb163)
- engine: strategy_last_bar_dual_entry_path per-bar snapshot + HIGH_FIRST test discrimination (fix round 1) (d3fee73)
- engine: strategy_set_path_order + strategy_last_bar_dual_entry_path (forced intrabar path for live probes) (a288bc5)
- engine: strategy_set_probe_suppress_tail_logic fix round 1 — doxygen dispatch-path scope, crossing-tail discriminating test (dbe3f1f)
- engine: strategy_set_probe_suppress_tail_logic — forming-bar probe runs only pre-on_bar steps (1c1e599)
- engine: realtime_tail fix round 1 — TF-aware session/freeze test coverage, degenerate-TF session fallback, doc fixes (e7f21cb)
- engine: strategy_set_realtime_tail — forming-tail semantics for the live runtime (ABI v4) (bca35c6)
- engine: cooperative abort fix round 2 — structurally close the abort-lost window (02fb41d)
- engine: cooperative abort fix round 1 — reuse/second-overload test coverage, minor hardening (ebf2933)
- engine: cooperative abort — strategy_request_abort / strategy_last_run_status (ABI v4) (f31ba6d)
- engine: fix ABI-mirror comments to match the header's v4 growth plan (c1e76de)
- engine: ABI v4 groundwork — last_run_status, version 0.14.0 (live runtime surface) (439bd52)
- docs: record NIFTY input-context parity in round 33 (3c106d8)
- docs: refresh parity scoreboard through round 32 (4a0b73b)
- fix: require rounded signal cost coverage for explicit market entries (8b3c6c4)
- fix: apply price-scale admission to explicit flat market entries (1983449)
- docs: refresh parity scoreboard through round 31 (e3f0d28)
- fix: preserve standing exits on placement-rejected reversals (4a92b99)
- docs: refresh parity scoreboard through round 30 (49c525f)
- docs: clarify opening money checkpoint scope (78d4390)
- fix: retain chart-bar eligibility for opening money checks (7594a1a)
- docs: update unit test inventory for opening margin ordering (232a80a)
- fix: preserve finite opening exit priorities (0ad7589)
- fix: settle opening money margin before later priced exits (561b429)
- docs: refresh parity scoreboard through round 29 (a752fef)
- refactor: keep broker-day helper internal and clarify counter comments (5730ee3)
- fix: keep broker session days independent of holiday bar merges (786efeb)
- docs: update unit test inventory for session order counter (d5b4763)
- fix: reset intraday order limits on the symbol session day (8184cb3)
- docs: refresh parity scoreboard through round 28 (2a59314)
- test: prove replacement bracket identity and guard invalid percentages (aeca0ff)
- fix: expose integer short liquidation before script evaluation (4a1113b)
- docs: refresh parity scoreboard through round 27 (96babab)
- fix: retain small margin deficits with tracked rounding error (3b16fa4)
- docs: refresh parity scoreboard through round 26 (490f180)
- docs: refresh unit test inventory for close-bar broker controls (a6e3a48)
- fix: align close-bar short margin state and flat cost admission (445e862)
- docs: refresh parity scoreboard through round 25 (f238288)
- fix: expose stop-open short margin state before script evaluation (5063fd1)
- docs: refresh parity scoreboard through round 24 (bfdbe96)
- fix: apply rounded signal costs to high-value fractional lots (19236fd)
- docs: retire ad-hoc 4emarsi research files and fix test inventory (00938e4)
- docs: refresh parity scoreboard through round 23 (7ad5d38)
- fix: settle carried short liquidation before script state reads (59c2ff3)
- fix: expose opening short liquidations before script evaluation (bc507c6)
- docs: describe guarded cent-lot recovery at sizing call site (a03ac6d)
- fix: retain representable cent-lot grid points in money sizing (5bcb2f4)
- fix: bind fractional margin extension to actual market-open fills (fb97ebd)
- fix: retain rounded margin checks for high-value fractional lots (fc8e4d7)
- docs: clarify which FIFO-drained pyramid slot stays occupied (6b1f4f1)
- fix: release an owned bracket slot without erasing FIFO history (bacbf4d)
- fix: align daily lookahead projections with retained input (e729b14)
- fix: omit partial initial OTC daily security bucket (96fe386)
- fix: preserve risk direction in replaced sell transactions (c022c40)
- fix: preserve plain transaction on repeated percent sell entry (e7a0bbc)
- fix: honor default single-entry config in budget tie guard (bfb8e0f)
- fix: decline underfunded integer-lot budget ties (4bd86c2)
- fix: ignore unbound exit siblings in POOC close tick guard (113ec87)
- fix: use broker close tick for pinned POOC short exits (f2dbbe1)
- fix: allow pinned COOF market-entry limit recross (8604940)
- Settle resting exit stop siblings before fill recalculation (dd98f02)
- fix: honor outward chart tick touches for carried COOF exits (8c2832c)
- Preserve close-only reversal carry after signal-close margin trim (c7d8ad3)
- Admit narrow all-in gaps on rounded affordable price (76518c6)
- Preserve pre-bar state for retained POOC trailing exits (331a8bc)
- fix: check carried POOC margin before close-time strategy (e9b6f93)
- Round opening margin requirements consistently (c63be88)
- fix: check rounded signal cost for close-first all-in entries (98dc973)
- fix: preserve same-pass percentage close sizing under POOC (ff4a6b8)
- engine: TradingView's sliding-window sum re-sums when the compensation's magnitude, added to the source, is under-applied (round 10, family W stage 2: onuriano/jayentriken stochRSI residue plateaus) (c8993aa)
- engine: TradingView's sliding-window sum re-sums whenever the carried compensation is under-applied to the incoming source, and ta.stdev is sqrt(Sxx/n - m*m) over the same sliding sums (round 9, family W, jayentriken stochRSI/BBWP on six lanes) (ade627e)
Prebuilt libraries
Per-arch static-lib + headers tarballs are attached below (C ABI).
For the full PineScript -> backtest image, use ghcr.io/pineforge-4pass/pineforge-release.