Repository navigation
Description
Make Pulse a compact setup-oriented profiling front page
Type: feature
Target: PyAutoPulse
Repos: PyAutoPulse
Difficulty: large
Consequence: judge
Autonomy: human-required
Filed: 2026-10-05
Primary repo: @PyAutoPulse
Classification: standalone organ/workspace, no library changes.
Branch: feature/profiling-setup-browser
Parent: draft/feature/pyautopulse/profiling_setup_browser.md, approved Phase 3.
Upstream: autolens_profiling#377 MERGED publishes v2. Project UI #378 is separately
in review; this consumer uses the catalogue on main, not an unmerged UI branch.
Approved high-level plan
- Apply the shared Heart-family theme, Pulse SVG hero and board width.
- Add Heart-style copy actions and expandable prompts, concise Profiling Check In,
integrated review metadata and compact campaigns with separate accessible links. - Move tasks inside their campaigns and replace the global evidence wall with
project/dataset/model disclosures and instrument/configuration selectors. - Display exact-scoped runtime, breakdown, compilation, memory, settings and
evidence with linear charts and explicit unknown/unreviewed states. - Switch the registered autolens summary to v2, preserve commit-pinned receipts,
cached/invalid diagnostics and v1 compatibility, and test real browser behavior.
Tier: judge — merge mode: human /prm.
Detailed plan
- pulse/board.py: use real PyAutoBrain/board/_theme.py via supported sibling or
PYAUTO_BRAIN location. Keep machine state semantics, markers and read-contract
diagnostics; HTML foreground is campaigns then scientific navigation. Historical
transport/freshness/comparison details remain available in a disclosure. - pulse/campaigns.py: copy Fix Profiling Systematically and editable Profiling
Check In prompts through accessible buttons plus full-prompt disclosures. Last
check-in is compact metadata; reviewed dates never become measurement age.
Campaign table keeps readable rows at narrow sizes and individually labelled
evidence/task links; per-campaign disclosure holds tasks, priorities and prompts.
Never mutate campaigns.yaml merely by rendering, and preserve original task text. - Add a small setup browser renderer/assets for validated snapshots. Use the
same v2 contract/conventions as the project: project/dataset/model route,
instrument/exact-source-row selectors, no automatic latest/fastest acceptance,
metadata beside results and detailed evidence last. The organ remains generic
across instances, including inline v2 producers without shards and v1 fallback. - Embed only each validated captured index. Lazy shard URLs and original evidence
resolve from Snapshot.commit (the captured source), never moving main or the
producer-code revision. Verify hashes/counts/setup identities, reject stale
responses, and retain cache/transport qualification beside the displayed data. - Deep links include instance/dataset/model/instrument/setup; back/forward and
keyboard work; no-JS source links and missing-data/error states are explicit.
Linear bars keep single-call, per-replica batch and batch-wall metrics separate.
No temporal default plots, ratios, cross-project ranking or baseline promotion. - registry.yaml lens entry reads dashboard/catalogue.json, profiling-summary@2.
Fetch main once through the normal ingest, regenerate receipts/snapshots/pages;
all evidence links bind the resulting commit. Add Brain checkout/env to refresh
workflows so shared theme works in CI, and actual Chromium tests to lint. - Test copy success/failure, edits, every campaign task/link, schema fallback,
empty/unavailable/cached evidence, escaping, multiple instances, selectors,
corrupt/late shards, keyboard/deep links and responsive dark/light layouts.
Run full Python suite, Ruff, offline board/state checks and browser harness.
Branch survey
PyAutoPulse canonical main is clean, no other worktree or open PR; origin/main
advanced only generated dashboard material. Use fresh origin/main after fetch.
Worktree: /home/jammy/Code/PyAutoLabs/.worktrees/profiling-setup-browser.
Start-dev entry Heart: STALE; authoritative ship gate still reports RED
release validation FAILED (stage integrate) and will be evaluated after tests.
No task-specific shipping override is inferred from the project #378 override.
Authorization and original request
Parent Phase 3 already approved. Current live request explicitly continues into
this phase; no new bulk profiling or scientific acceptance is authorized.
Original request (verbatim):
I authroize, continue and do the next phase
Activity
Jammy2211 commentedon Oct 5, 2026
Phase 3b implementation is complete in
feature/profiling-setup-browser(local worktree, not yet committed/pushed): shared Pulse hero/width, editable copy buttons, compact campaign rows with nested tasks and separate links, and project → dataset → model → instrument/configuration browsing. v2 shards are verified and pinned to the captured project commit; qualification and unknowns remain explicit.Validation passed: 188 full Python tests; final focused 15 including the added campaign membership test; Ruff lint/format; normal remote ingest and offline board/check/census smoke; Brain state contract; synthetic Chromium routing/history/keyboard/clipboard/hash refusal/retry/race/no-JS/multi-instance checks; real catalogue/shard renders and desktop/mobile visual review. No independent reviewer claimed. No campaign ledger or profiling measurements changed.
Shipping checkpoint: authoritative Heart RED reason
release validation FAILED (stage integrate)(snapshot 2026-10-05T08:55:49.359202+00:00, score60; freeze clear). Pulse #12 requires its own live development-shipping authorization under AUTONOMY.md. Previous authorization shipped autolens_profiling#378 as PR#379; that PR now has green CI. No source commit/push/PR for Pulse #12 yet; no merge/release authorized here.Prepared PR body, review and screenshots are at
.worktrees/profiling-setup-browser/{phase3b-pr-body.md,review.md,browser-artifacts/}. Next after shipping this UI phase: dataset/model/measurement script migration and routing updates, then assistant/wiki guidance; baseline execution remains separate.Jammy2211 commentedon Oct 5, 2026
Summary
Pulse now opens with the shared dashboard hero, compact campaign rows and editable copy actions. Readers choose a project, dataset, model and instrument before seeing an exact recorded configuration; timing, compilation, memory, qualification and source evidence stay together. Temporal diagnostics are collapsed.
The lens registry consumes the merged v2 catalogue. Detail shards load from the captured commit, with hash and identity verification; missing links and failed loads never substitute another setup. Existing scientific qualification, campaign state, v1 readers and machine-state semantics are preserved.
Closes #12.
Scripts Changed
pulse/board.py,pulse/campaigns.py: shared theme, compact controls/campaigns and collapsed diagnostics.pulse/setup_browser.py,.js,.css: setup routing, exact-source selectors, linear metric groups and provenance-preserving detail loads.registry.yaml, receipts/snapshots and generated board/state: v2 capture from autolens_profiling main at dcfa056e0bc6d7665740dd17284c7e78024eb878.tests/browser_fixture.py,tests/browser_setup.cjs, Python regressions: hermetic browser, campaign and capture checks.Test Plan
Development shipping gate
Heart RED:
release validation FAILED (stage integrate); authoritative snapshot 2026-10-05T08:55:49.359202+00:00, score 60. Freeze clear. Live user authorization for Pulse #12: “I authorize, merge prm and then cotniue”. Authorizes development commit/push/PR and explicit same-turn merge through prm only when every CI run/job is green. No release or CI bypass; Heart remains RED.Jammy2211 commentedon Oct 5, 2026
PR #13 head 3c7bed2: Dashboard Refresh run37303257873/refresh SUCCESS. lint run37303257792 FAILED only at
lychee (markdown link-rot). Python tests, Chromium interaction checks and offline contract checks succeeded.The new npm install created node_modules/playwright/README.md, which the existing unrestricted Markdown
findpassed to lychee. Vendor docs contain a missing CONTRIBUTING.md, a vscode redirect (302), and npmjs 403. This is a deterministic CI input-scope error, not a reason to rerun unchanged.Full failed-step log preserved locally:
.worktrees/profiling-setup-browser/pulse-ci-failure.log. prm stops on red; no merge, code fix or rerun was attempted. Correction: restrict the Markdown input set to repository docs (exclude node_modules or use tracked files), verify that input set, and run CI on the corrected head before prm.Project UI PR autolens_profiling#379 was merged and closed out; its Mind completion/dashboard are published, review artifacts archived and worktree/local branch removed. Phase 4 script migration remains next after resolving this consumer PR.
Jammy2211 commentedon Oct 5, 2026
2026-10-05 repair continuation in the existing PR
Original user request (verbatim):
can we start fixing stuff? Also can this be fixed: Pulse #13 remains unmerged:
lychee (markdown link-rot)on Playwright’s vendor documentation.Current request authorizes repair of existing Pulse issue12/PR13 in this session. Exact known Heart RED remains
release validation FAILED (stage integrate). Development repair, tests and updating the same PR only; no new merge or release authority inferred from the prior-session grant.Plan: resume clean feature/profiling-setup-browser at3c7bed2, same task claim and retained worktree; merge current origin/main without rewriting history. Resolve generated receipt/snapshot/dashboard conflicts by feature's normal v2 ingest at current project commit, preserving exact captured provenance. Limit lychee inputs to tracked project Markdown using a null-delimited array; keep existing authored-document exclusions. Run Ruff, full pytest, offline state/board verification, browser harness and real lychee scope check as available. Push only tested repair, judge exact-head CI once ready. Tier undeclared, human merge.
Root: /home/jammy/Code/PyAutoLabs/.worktrees/profiling-setup-browser/PyAutoPulse. Same Mind task retained; no independent duplicate issue. Original feature plan remains approved. Brain BugDecision config-error/single-repo; fixing locus .github/workflows/lint.yml plus generated conflict reconciliation.
Jammy2211 commentedon Oct 5, 2026
Pulse PR13 repair is ready at63b212c: merged main, resolved generated conflicts through current coherent v2 ingest, restricted lychee to tracked Markdown.189pytest/Ruff/format/offline/Chromium/whitespace pass; independent Sol CLEAN;31 authored Markdown retained and26 vendor files excluded. Current user repair request recorded above; exact Heart reason
release validation FAILED (stage integrate)remains. Development PR update only; no new merge/release grant assumed. Live network lychee to be judged in exact-head CI.Jammy2211 commentedon Oct 5, 2026
Both requested Pulse PR13 blockers are repaired at63b212c. CI lint37310560345 (including live lychee) and dashboard refresh37310560357 both SUCCESS. GitHub mergeStateStatus CLEAN. All189tests, offline/browser checks and independent Sol review pass; no merge performed.
Jammy2211 commentedon Oct 5, 2026
Pulse setup browser merged
Completed: 2026-10-05
Issue: #12 (closed)
PR: #13 (MERGED)
Merge: 4b00106
Shipped the Pulse setup browser with exact pinned v2 catalogue/shard provenance, shared theme, compact campaigns and interactive configuration navigation. Repaired Playwright vendor link checking by selecting only tracked Markdown, and resolved generated-data conflicts through normal ingestion without changing scientific records.
Validation: 189 Python tests, Ruff, offline board/state, Chromium interactions, independent Sol CLEAN. Every exact-head GitHub CI job passed (lint37310560345 including real lychee, refresh37310560357). User explicitly authorized merge in this turn. Heart RED remains
release validation FAILED (stage integrate); no release implied.Scope is the phase3b Pulse frontpage only. Parent draft/feature/pyautopulse/profiling_setup_browser.md retains unshipped later phases; do not retire the parent. Root review/browser artifacts preserved at tmp/heart-red-20261005/pulse-closeout-evidence before cleanup. No irreplaceable science datasets in the worktree.