From 0a033fb9354f2a5841378a91fc08740490f05d6c Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Sun, 11 Oct 2026 15:57:09 +0100 Subject: [PATCH] feat: add shared organ navigation footer --- AGENTS.md | 6 +++--- scripts/organism_board.py | 2 ++ tests/test_organism_board.py | 11 +++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 00d624c..81a23b3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -23,9 +23,9 @@ The copyable dashboard prompt points here. Current status cards are not a historical activity ledger. The dashboard uses Brain's shared hero/panel, registry and state validator. -Its organ disclosures stay visible as a grid, without another outer disclosure -or duplicate organ navigation. Each expanded organ has at most three concise -rows. `scripts/overview.js` is inlined at render time and refreshes published +Its organ disclosures stay visible as a grid, without another outer disclosure. +The shared organ-link footer sits below the grid. Each expanded organ has at most +three concise rows. `scripts/overview.js` is inlined at render time and refreshes published feeds without replacing open disclosures or prompt controls. ## Editing rules diff --git a/scripts/organism_board.py b/scripts/organism_board.py index 5406d96..197078f 100644 --- a/scripts/organism_board.py +++ b/scripts/organism_board.py @@ -262,6 +262,7 @@ def _render_html(snapshot: dict) -> str: refresh_url=(f"https://github.com/{owner}/PyAutoScientist/actions/workflows/organism_board.yml" if owner else None)) from project_resources import render_html as render_projects projects_html = render_projects(snapshot["project_resources"]) if "project_resources" in snapshot else "" + footer = t.boards_footer(t.board_links(f"https://{owner.lower()}.github.io", BOARD_KEY), BOARD_KEY) if owner else "" rows = [] for row in snapshot.get("boards") or []: key = row.get("key", row["name"].lower()) @@ -286,6 +287,7 @@ def _render_html(snapshot: dict) -> str:

Dashboards

{''.join(rows)}
+{footer} """ diff --git a/tests/test_organism_board.py b/tests/test_organism_board.py index 68a6531..a3c9e8b 100644 --- a/tests/test_organism_board.py +++ b/tests/test_organism_board.py @@ -182,3 +182,14 @@ def test_structured_heart_status_does_not_parse_the_headline(): snap = _snap('Monitoring RED ยท release STALE') next(row for row in snap['boards'] if row['name'] == 'Heart')['feed'] = {'status': 'red'} assert ob.heart_word(snap) == 'RED' + + +def test_organ_footer_is_below_cards_and_uses_instance_host(): + page = ob.render(_snap(), "html") + footer = re.search(r'', page, re.S) + assert footer is not None + assert page.index('id="dashboards"') < footer.start() + assert 'data-organ="brain"' in footer.group(1) + assert 'data-organ="organism"' not in footer.group(1) + assert 'https://someorg.github.io/PyAutoBrain/' in footer.group(1) + assert 'pyautolabs.github.io' not in footer.group(1)