Skip to content

K1 — pure named-stream schedule derivation with raw-label timebase support - #369

Merged
luisleo526 merged 3 commits into
mainfrom
ns-k1-land
Oct 11, 2026
Merged

luisleo526 merged 3 commits into
mainfrom
ns-k1-land

Conversation

@luisleo526

Copy link
Copy Markdown
Collaborator

K1 — pure named-stream schedule derivation with raw-label timebase support

Branch: ns-k1-land · Head: 62cc8e495afd6d8c3696c68581e72adab3444075 · Base: 8d614339b9ce92c5a1b6662a29deca5deec0ed71 (origin/main)

What this adds

A pure schedule derivation for the named-stream contract's bar lifecycle, plus its
tests. plan_schedule derives, from the retained state and a driving event only
(advance_time, bar_close, tick), the POST rows a run must compute, and
returns the next state; it performs no I/O and fetches nothing.

A timebase without time boundaries (a raw-label partition) is planned on data
alone: its bars open and close on their own events, it plans no PRE row, and it
keeps no bar end and no cursor.

Files

  • src/native_calc_plan.cpp, src/native_calc_plan.hpp (new) — the derivation and its state.
  • include/pineforge/native_calc_point.hpp (new) — the planned-point shape.
  • src/native_execution_consumer.cpp/.hpp — the consumer's slot lookup and engagement hook.
  • tests/test_native_calc_plan.cpp, tests/test_native_calc_identity.cpp (new) — the derivation and
    identity tests, including the frozen-frame cases and the raw-label cases.
  • CMakeLists.txt, tests/CMakeLists.txt — registration of the new source and the two tests.

Verification

  • One signed spot compile round: build green, ctest -R native_calc 4/4, all mutation
    controls observed to fail their named test, and the CI source guards rc 0.
  • An independent review of the test literals passed.
  • lab remote on this head: rj-20261011t085013-bd1ded (preflight, release 897/897, sanitizers 869/869, docs 0 warnings) and rj-20261011t085017-76182e (debug 878/878, kernel 328 rows, parity 312 probes, subset 54 probes): all eight steps passed.

🤖 Generated with Claude Code

luisleo526 and others added 3 commits October 11, 2026 16:50
…robe (lane ns-k1-02, Claude Sonnet 5.5 authored)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Removes the three checks that could not fail (two counters and their
comparisons; the third replaced by a static_assert tying the perturbation
array to std::tuple_size of State::tie()).

Adds tests for the walk's two termination guards, each with a mutation that
must fail, and a raw-label case: bars and POST rows planned, no PRE row.

R3: a raw-label partition holds no time interval, so its slot is unbounded;
an opened bar keeps no end and no cursor, and the time-close of an open bar
is gated by a boundary probe.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Adds three tests over the two unbounded clocks of the frozen no-boundaries
case: a Tick opens a lifecycle and plans one provisional POST row when the
cadence carries the tick bit; an AdvanceTime plans one provisional POST row
and closes nothing by time; a quiet interval plans nothing (the walk stops at
the unbounded slot). A bounded control shows the silence is the timebase's.
Tests only; no source change.
@luisleo526
luisleo526 marked this pull request as ready for review October 11, 2026 13:17
@luisleo526
luisleo526 merged commit 53d2a04 into main Oct 11, 2026
20 checks passed
@luisleo526
luisleo526 deleted the ns-k1-land branch October 11, 2026 15:04
luisleo526 added a commit that referenced this pull request Oct 12, 2026
K1 (#369) added include/pineforge/native_calc_point.hpp, installed by the
include/pineforge rule in CMakeLists.txt with the other headers. Name it in the
1.5.0 CHANGELOG entry and in the native C++ API list of
docs/pages/public-contract.md (new in 1.5.0). Docs only.
luisleo526 added a commit that referenced this pull request Oct 12, 2026
Squash of #374 (3 docs commits on 2394ba2, tree 776a3cb). The CHANGELOG entry is dated 2026-10-12, the tag date; the first commit's "2026-10-13" below is superseded. The three commit messages follow verbatim, so their doc-revert namings are kept.

docs: prepare the 1.5.0 release (changelog, current pair)

Date the CHANGELOG's 1.5.0 entry 2026-10-13 and give it the release link
line naming the paired pineforge-codegen 1.5.0, keeping the recorded-outputs
and call-scoped-report content unchanged. Add the release's other
user-visible changes: the test inputs and strategy scripts moved to a
private repository, where a test that needs one skips with the pinned
message naming the missing file; the LEGAL.md "Data not distributed"
section; and the private-fixture overlay the maintainers run the
verification with.

README: the current-release block, the codegen command-block pointer, the
C ABI counts line and a new v1.5.0 Releases bullet now name 1.5.0; the
v1.4.0 descriptions, scoreboard and benchmark measurements stay untouched.

The current-release block's 1.4.0 sentence from 5a1ad3a ("The release notes
cover typed and unresolved provenance, coded failures, checked settings,
adapter fixes and chart-clock live input") is replaced on purpose by the
1.5.0 sentence that lists what 1.5.0 covers; that 1.4.0 summary stays in the
Releases list (the v1.4.0 bullet) and in CHANGELOG.md's 1.4.0 entry.

docs/pages/public-contract.md: the 1.5.0 paragraph follows the 1.4.0 one
and the same-version pairing line now says 1.5.0.

Scoreboard and benchmark numbers are untouched; no file outside these
three changes.

docs: 1.5.0 is released: status words, HPO note

The CHANGELOG's 1.5.0 entry gains its HPO bullet: pineforge-hpo 0.13.2
pins pineforge-codegen <1.4, and HPO support for codegen 1.4 and 1.5
(enum options as Enum.member tags) comes in pineforge-hpo 0.14.0.

Five files that still called 1.5.0, or a 1.5.0 feature, unreleased or
targeted for it now read as released once the tag lands:
docs/pages/abi-stability.md (the RunFailureCode exception, the
symbol-inventory counts line, the recorded-outputs line),
docs/pages/index.md (its counts line, matching the README wording),
the run-failure page (the outputs and selected-window rows' status, the
two 1.5.0 outputs reasons, and the 24 catalog rows that said none was
released), docker/README.md (the recorded-outputs section) and
docs/outputs.md. Only the status words change; "not part of 1.4.0"
stays where it is true history, and no number, claim or other sentence
moves.

No file outside these six changes.

Co-Authored-By: Claude Code <[email protected]>

docs: list the new installed header native_calc_point.hpp for 1.5.0

K1 (#369) added include/pineforge/native_calc_point.hpp, installed by the
include/pineforge rule in CMakeLists.txt with the other headers. Name it in the
1.5.0 CHANGELOG entry and in the native C++ API list of
docs/pages/public-contract.md (new in 1.5.0). Docs only.


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