Skip to content

feat(board): knowledge board emits the state.json cockpit feed (#104) - #105

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/memory-state-feed
Sep 26, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
feature/memory-state-feed

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

Organ cockpit bundle member (PyAutoMemory#104; sibling PyAutoHands#289; epic organ-cockpit, contract from PyAutoBrain#416): the Memory knowledge board publishes the shared state.json cockpit feed next to badge.json and validates it in knowledge_board.yml against the Brain contract (PyAutoBrain/board/_state.py, already checked out in the job). Mirror of PyAutoHeart#238.

API Changes

  • scripts/board.py: to_state(snapshot), render(..., "state"), --state flag beside --badge. Status: grey when no pages were observed; yellow for a stale arXiv inbox/interests digest, filings awaiting merge, or any wiki with stubs/TODOs; else green. Memory has no red condition (nothing can break) — documented. Items: stale digests and filings → yellow; one info row per wiki (<wiki>: N stubs, M todos, tree link, _todo_prompt/_stub_prompt); up to 5 waiting inbox papers → info with their queue-issue link.
  • .github/workflows/knowledge_board.yml: python scripts/board.py --state > _site/state.json; new step "Validate the cockpit feed against the Brain contract" (fails the job on drift).
    See full details below.

Test Plan

  • env -u PYAUTO_BRAIN pytest tests -q — 219 passed (9 new). With activate.sh's PYAUTO_BRAIN exported, test_theme_finds_grouped_brain_from_outer_workspace fails on main too (the test never unsets the env var) — pre-existing, out of scope, noted for a follow-up
  • Brain validator state: ok on the real tree (yellow: both arXiv digests stale) and on the empty tree (grey)
  • Tenant firewall (organ code) OK on the worktree; workflow YAML parses
  • After merge: knowledge_board.yml run green with state: ok; curl https://pyautolabs.github.io/PyAutoMemory/state.json | python board/_state.py -
Full API Changes (for automation & release notes)

Added

  • scripts/board.py — STATE_SCHEMA_VERSION, STATE_STATUSES, _STATE_INBOX_CAP = 5, _iso_z, _clip, to_state(snapshot) (pages_url falls back to ./ and repo to PyAutoMemory for remote-less checkouts), fmt="state", --state
  • tests/test_board.py — 9 tests (contract shape, Z stamp, stub/todo rows carry a prompt, inbox cap, green, stale inbox → yellow, filings → yellow, empty → grey, render fmt); "state" added to test_every_fmt_renders

Removed

  • none

Migration

  • none — additive; badge.json unchanged

Heart RED override (development only)

Heart readiness is RED (snapshot 2026-09-26T11:27:07+00:00). Verbatim reason string:

  • release validation FAILED (stage integrate)

Pre-existing release-integrate failure, unrelated to this diff (board renderer, its tests and the board workflow only). Branch gates passed as listed above.

Human authorization (live, this session, 2026-09-26, for PyAutoMemory#104): "ok io authorize you to continue" — development shipping + merge on green checks; no release

Generated by the PyAutoLabs agent workflow.

🤖 Generated with Claude Code

scripts/board.py gains to_state() plus --state / fmt="state": a projection
of the same snapshot the board renders, in the Brain's cockpit contract v1.
grey when no wiki pages are observed, yellow on a stale inbox/interests
digest, pending filings, or stubs/TODO keys; else green. No red: nothing
in the Memory can break. Rows carry the board's own prompts and issue links.

knowledge_board.yml publishes _site/state.json beside badge.json and fails
the job if it drifts from the contract (PyAutoBrain/board/_state.py).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit 4715cad into main Sep 26, 2026
1 check passed
@Jammy2211
Jammy2211 deleted the feature/memory-state-feed branch September 26, 2026 11:53
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