Skip to content

fix(stack): bring Loops A/B + memory + portfolio + doc passes to main - #7

Merged
JeffBrines merged 43 commits into
mainfrom
docs/readme-pass
Jun 8, 2026
Merged

JeffBrines merged 43 commits into
mainfrom
docs/readme-pass

Conversation

@JeffBrines

Copy link
Copy Markdown
Owner

What

Consolidates the work from PRs #2–#6 onto main. Those PRs were stacked (each based on the branch below it), so merging them propagated the work down the chain rather than to main — only #1 (Fox Factory) actually reached main. GitHub marks #2–#6 "merged" (each merged into its base branch), but their cumulative content never landed on main.

This PR's diff vs main is exactly that missing work (42 files, ~4,400 lines) — no duplication of the Fox work already on main.

What it brings in

  • Loop A — self-improving backtest loop (pyfpa.backtest + fpa-backtest-learn).
  • Memory — human corrections + vault-friendly memory (pyfpa.memory + fpa-capture-correction).
  • Loop B — cross-client portfolio learning (pyfpa.portfolio + fpa-portfolio-learn).
  • Docs — "bring any data source" positioning + the full humbler, emoji-free README pass.

Verification

  • Full suite green locally (139 tests).
  • Additive over the Fox work already on main (shared ancestry; no conflicts expected).

Supersedes the intermediate merges of #2–#6 (which landed in feature branches, not main).

🤖 Generated with Claude Code

JeffBrines added 30 commits June 8, 2026 09:54
Adds pyfpa/backtest/snapshot.py with Snapshot (pydantic v2 BaseModel),
snapshot_forecast (captures EntityConfig assumptions + extract_lines
predictions immutably), save_snapshot/load_snapshot (YAML round-trip
preserving nested ScoreResult). created is caller-supplied — no datetime.now().
Adds pyfpa/memory/__init__.py (empty package marker) and
pyfpa/memory/paths.py with _set_by_path — a mutation helper used
to apply memory-correction overrides into a config dict.

Supports dotted key navigation, numeric list indices, and wildcard
[*] spread. Raises ValueError on malformed or unresolvable paths.

Tests: tests/test_memory_paths.py (4 tests, all green).
@JeffBrines
JeffBrines merged commit bc9c11a into main Jun 8, 2026
3 checks passed
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