Skip to content

[WIP/WORKING TREE] V1.2.0 #11

Merged
turtle261 merged 175 commits into
githubfrom
refactorv2
Jun 28, 2026
Merged

[WIP/WORKING TREE] V1.2.0 #11
turtle261 merged 175 commits into
githubfrom
refactorv2

Conversation

@turtle261

@turtle261 turtle261 commented Apr 4, 2026

Copy link
Copy Markdown
Owner

Begin refactor for maintainability and extensibility in the expected development trajectory.

Done already:

  1. Restructure repository root to be less intimidating.
  2. Make it so development of new RateBackends is DRY
  3. Feature gate all RateBackends, so you may optionally only pay for what you use (primarily to address binary size)
  4. Improve the benchmarking framework: now includes faster regression tests. So each commit will no longer require an 8 hour comprehensive re-evaluation, and that can be left for releases or version increments.
  5. Improve test comprehensiveness significantly. Will Cross-reference against the many papers for which we claim to implement or just do implement, and Rigorously prove bounds/identities/invariants, etc.
  6. Add GameEngine as the default environment layer, including replacing the builtin in paper games such as Kuhn poker into GameEngine Games -- with strictly proven properties to replace the current games are a brainfuck to audit. Infotheory will at that point support: 1. GameEngine described games. On Linux, full Linux environments via Nyx-lite. 3. And manually implemented environment types, whether it be in Rust or Python (if one wants too). This would be a functional change.
  7. Importantly, unify specifications for RateBackends, AIXI configuration, environments, etc -- all as Struct or Enum-based, and a universal encoder/decoder to support JSON, but also compiling that into a minimal and non-human readable bitpacked representation, which will be necessary for future features, and so configs aren't several KBs unnecessarily. This is functional change 2.
  8. Reduce planner/runtime branching duplication (kind of a functional change)
  9. Govern public surface and remove duplicate entry points.
  10. Improve accountability of information and control over determinism

Repository/workspace restructure: Converts the root Cargo.toml into a workspace-only manifest, moving main crates under crates/*, relocating submodules under vendor/* (including new vendor/gameengine), and bumping crate versions to 1.2.0.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@turtle261
turtle261 requested a review from Copilot April 7, 2026 02:13

This comment was marked as resolved.

@turtle261

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@turtle261
turtle261 requested a review from Copilot April 8, 2026 23:08

This comment was marked as resolved.

…xecution onto validated compiled plans instead of raw wrapper specs, tightened tests and CI around that boundary.
… feature combinations. Improve CI coverage breadth for tests. Make sure everything works across different feature combinations
@turtle261

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@turtle261
turtle261 requested a review from Copilot April 11, 2026 21:54
turtle261 added 28 commits June 2, 2026 23:47
- Removed the hidden lifecycle methods/types from the public OnlineBytePredictor trait in crates/infotheory/src/mixture.rs. Internal rate-backend experts now use a private ExpertPredictor wrapper so compact
  lifecycle rollback stays available without leaking into the public trait.
- Removed the dead FAC-CTW predict_update_byte_msb wrapper and its test from crates/infotheory/src/backends/ctw.rs.
- Made RatePdfPredictor::from_compiled test-only in crates/infotheory/src/compression/mod.rs.
- Removed the no-op ZPAQ release function and all surviving call sites across crates/infotheory/src/backends/zpaq_rate.rs, crates/infotheory/src/lib.rs, crates/infotheory/src/spec.rs, and crates/infotheory/
  src/aixi/common.rs.
- Documented lifecycle snapshot allocation cost for CTW/FAC-CTW and added justifications for the relevant too_many_arguments suppressions, including the switching-mixture helper that also appeared in the
  branch diff.
- Removed redundant debug_assert! checks in crates/infotheory/src/prediction.rs; the runtime contract panic remains.
… parallel_uct cloned rollouts

- Improves memory efficiency and parallel_uct performance (in theory...)
…ope hooks; update some docs for clarification.
- Added support for native bitwise RateBackends (previously CTW was this, but only conditionally for AIXI)
Bitwiseness is no longer decided by the consumer(i.e. MC-AIXI), but by the predictor -- and we provide helpers for efficient byte-to-bit factorization for both MSB and LSB first.
- bitwise consumption is now first class: Bitwise Arithmetic Coding, and AIXI usage is now correctly handled using the libraries conversion utilities, or native bitwiseness.
- Make mixtures with native bitwise models inherit native bitwiseness recursively.
- Fix confusing naming of Ctw -- which was previously AC-CTW in AIXI paths, but FAC-CTW in compression -- it's now just AC-CTW consistently, with FacCtw being the unambigous FAC-CTW path.
… return-law evaluation

- Introduce planner_agent and planner_runtime as the execution layer for MC-AIXI, discounted AIQI, and aiqi_warmstart_exact_jh controllers.
- Move planner-run and warmstart teacher CLI flows into dedicated modules and document the planner ownership boundary in developer-canonical-pipeline-invariants.
- Add return_law for shared return-label trie evaluation, wire AIQI through it, and expand warmstart teacher contracts, JSONL ingest, deterministic merge, and task fingerprint binding.
- Validate warm-start controller specs at canonicalize time and integrate trace refresh with the tuner bridge.
- Use sha2 for warm-start task fingerprints on the aixi feature path.
…nd harden exact-return validation with NonZeroUsize
…ns via shared streaming descent instead of materializing distributions and cloning predictors per action
Performance improvements, and improvements to the Warmstart agent architecture
- Updated python/tests/test_aixi.py so non-power-of-two return_bins=3 is accepted, matching the Rust contract.
- Bumped pyo3 from 0.28.2 to 0.29.0 in crates/infotheory_py/Cargo.toml.
- Updated Cargo.lock for the PyO3 package family only.
@turtle261
turtle261 merged commit 878530d into github Jun 28, 2026
5 checks passed
@turtle261
turtle261 deleted the refactorv2 branch June 28, 2026 20:40
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.

2 participants