Repository navigation
feat(api): a window can hold windows of its own, such as a myopic pathway with foresight whose decades each roll through their hours - #1890
Merged
FBumann merged 15 commits intoOct 12, 2026
Conversation
…hway with foresight whose decades each roll through their hours EachWindow may stand anywhere in a tuple of axes. One stitch spans every window axis: owned holds each coordinate every window owns, under the key columns of the axes outside it, so the answer keeps only what each window owns at every level. Slice.owns holds one count per axis, and a window's carry reads its own axis's seam. Two windows over one local index are refused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
Merging this PR will not alter performance
Comparing Footnotes
|
FBumann
added this pull request to stack #1886
October 8, 2026 10:52
…ort-e3g6om-windows Brings main through the stack: polars 2.0, the 0.7.0 release and load_inputs. The stitch collects through collected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ly-lamport-e3g6om-chains
…ort-e3g6om-windows The stack below now holds main too; the tree is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ort-e3g6om-windows Brings the shorter start= prose and the refusal of a start from a last answer that left no values, from the branches below. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ort-e3g6om-windows Brings main, which now holds the stack below, and the start= redesign: 'previous' is the default and carries the solver on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ort-e3g6om-windows Brings main through #1888. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ort-e3g6om-windows Brings main through #1888: the column names now live in relational/names.py (#1889), and the stitch over every window and the uncut archive read VALUE from there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
FBumann
removed this pull request from stack #1886
October 9, 2026 08:46
FBumann
added this pull request to stack #1917
October 9, 2026 08:46
…ort-e3g6om-windows Brings main through #1888: answers carry their spec (#1913), and the layouts are ANSWER_LAYOUT 6 and INPUTS_LAYOUT 3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ort-e3g6om-windows Brings main's 0.8.0 release through #1888: the layouts are ANSWER_LAYOUT 5 and INPUTS_LAYOUT 2, and this PR's changelog line stays under Upcoming version beside #1888's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ort-e3g6om-windows Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…ort-e3g6om-windows Brings main's single-write archive through #1888: sweep_manifest now names the stitch's locals, dims, keys and outer keys, as the manifest this branch wrote by hand did. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
…hains' into up/1890
…rdly-lamport-e3g6om-windows Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz
Collaborator
Author
|
Note The following content was generated by AI. Folded into #1888: its branch now holds this PR's commits at e1a9ebb, with main through 9c13352 merged in. The description, tests and mutation rows moved there. Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
The following content was generated by AI.
EachWindowmay stand anywhere in a tuple of axes. One stitch spans every window axis, so the answer is over every windowed dimension and keeps only what each window owns at every level. The API is unchanged from #1888.What changed
Stitchspans several window axes:locals,dims, the windowkeysit drops and theouterkeys it keeps.ownedholds one row per coordinate every window owns: an inner window's owned rows are joined to the outer window's owned rows, so an hour the decade window solved only as lookahead is not in it.restorejoins on every owned column but the dimensions.Slice.ownsholds one count per axis, and a window's carry reads its own axis's seam: the decade window hands on the capacity at the last decade it owns.ANSWER_LAYOUT5 from feat(api): a sweep can be cut by several axes at once, each carrying its own state, such as a rolling horizon per scenario or a pathway whose decades roll through their hours #1888, which is unreleased).Tests
(period, snapshot)with each pair once (the lookahead decade dropped), and per window it keeps both keys and both locals.existingset to the capacity the window before ended its own decade with; every window's objectives match.spendexpression summed over its hours) matched the decade solved alone, when no carry couples them: 2804.0, 6947.5, 11380.0. Primals did not match exactly, because the window also solves the lookahead decade and this LP has several optimal vertices for the store.window-outsidebecameone-local-index-for-two-windows;Slice.ownsassertions read one count per axis.Mutation table
python -m tools.mutatefor the deletion, scoped totests/test_nested_sweep.pyandtests/test_strategy.py; the hand mutations bysed, restored withgit checkout --,__pycache__dropped on both sides. Taken on 507123e, before main was merged in, so the line numbers are that commit's; tree clean after every run.axes.py:354-358)owns[-1])Verification
pytest -n 4, HiGHS, Gurobi and Xpress) on 06d149d, with main through the 0.8.1 release merged in through feat(api): a sweep can be cut by several axes at once, each carrying its own state, such as a rolling horizon per scenario or a pathway whose decades roll through their hours #1888, under polars 2.0.0: 5632 passed, 566 skipped, 4 xfailed; feat(api): a sweep can be cut by several axes at once, each carrying its own state, such as a rolling horizon per scenario or a pathway whose decades roll through their hours #1888 at 7edf615 gives 5628 passed.python -m tools.changelog check: releases nothing on merge.ruff check .,ruff format --check .,pyrefly check: 0 errors.zensical build --strict: pass.test-bench(nothing underbench/changed in this PR).Deliberately not done
per_window=Truereturns the innermost windows, keyed by every window key; there is no read per decade window.🤖 Generated with Claude Code
https://claude.ai/code/session_014wLrXpeSGDqoBFxyrs8NEz