Skip to content

feat(board): Pulse strip + profiling conductor reads the Pulse board (phase 3, PyAutoBrain#450) - #451

Merged
Jammy2211 merged 2 commits into
mainfrom
feature/pyautopulse-brain-board-cockpit
Oct 2, 2026
Merged

Jammy2211 merged 2 commits into
mainfrom
feature/pyautopulse-brain-board-cockpit

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

Phase 3 of profiling-organ-birth (PyAutoBrain#450, narrowed by the human 2026-10-02): the organ → Brain board interface for PyAutoPulse.

  • board/_board.py: collect_pulse() strip composed exactly like the Cortex and Eyes strips — the head counts table of PyAutoPulse/dashboard.md (projects, records, comparisons, drifted, refused pairs, cached, failed), rendered in Resume as markdown and HTML with a link to the Pulse board. Display-only: never enters the Brain's state.json. No Pulse checkout or no rendered board → the strip is absent, not a degraded morning.
  • tests/test_board.py: "pulse" in SURFACE_KEYS, a PULSE_DASHBOARD_MD fixture (body table must not be counted), the strip test mirroring the Eyes one incl. missing-file → None.
  • board/AGENTS.md: Resume row names the Cortex, Eyes and Pulse strips.
  • Profiling conductor AGENTS.md + skills/profiling/profiling.md: the Pulse board is where cross-project drift candidates and their provenance are read; autolens_profiling owns producers, pins and drift policy; a /profiling triage <comparison_key> prompt from a Pulse drift item names a row on the Pulse board to open before judging — the triage verb itself takes no target (_profiling.py untouched).
  • docs/organs/pulse.md: the state.json/cockpit paragraph and the phase 3 row; stale "arrives in phase 2" wording moved to past tense.

Companion: pyautolabs.github.io PR adds the Pulse cockpit card (independent; either order). The autolens_profiling feed-identity change is split to draft/feature/autolens_profiling/cockpit_feed_project_identity.md (blocked on another task's claim); the Brain never consumed that feed, so nothing transitions here.

API Changes

Board surface gains the pulse key (board --json) and a Resume line. No public symbol changes; config/policy.yaml untouched (phase 2 added boards: pulse).

Test Plan

  • tests/test_board.py: 39 passed
  • full env -u PYAUTO_MIND python3 -m pytest -q tests: 1142 passed
  • live render: --json → "pulse": {"Projects": 1, "Records": 159, "Comparisons": 145, "Drifted": 0, "Refused pairs": 0, "Cached": 0, "Failed": 0}; markdown - Pulse: projects 1 · records 159 · … — [Pulse board](https://pyautolabs.github.io/PyAutoPulse/); --html contains Pulse board and data-organ="pulse"
Full API Changes (for automation & release notes)

Added

  • board._board.collect_pulse(repo="PyAutoPulse"); data key pulse; Resume render lines (md + html)

Removed

  • none

Migration

  • none

Generated by the PyAutoLabs agent workflow.

🤖 Generated with Claude Code

…s drift on the Pulse board (PyAutoBrain#450)

collect_pulse() composes the head counts table of PyAutoPulse/dashboard.md
(Eyes-style, head_only) into a display-only Resume strip in md and html,
linking the Pulse board; absent organ or board -> strip absent. Never in
state.json. Test mirrors the Eyes strip, including the missing-file leg.
Profiling conductor + skill name the Pulse board as where drift candidates
and provenance are read (autolens_profiling owns producers/pins/policy);
docs/organs/pulse.md gains the state.json/cockpit paragraph and phase 3.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… firewall, PyAutoBrain#450)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit 6116b2a into main Oct 2, 2026
3 checks passed
@Jammy2211
Jammy2211 deleted the feature/pyautopulse-brain-board-cockpit branch October 2, 2026 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant