Skip to content

feat: browse profiling by setup on a compact Pulse board #12

Closed

Description

@Jammy2211

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

  1. Apply the shared Heart-family theme, Pulse SVG hero and board width.
  2. Add Heart-style copy actions and expandable prompts, concise Profiling Check In,
    integrated review metadata and compact campaigns with separate accessible links.
  3. Move tasks inside their campaigns and replace the global evidence wall with
    project/dataset/model disclosures and instrument/configuration selectors.
  4. Display exact-scoped runtime, breakdown, compilation, memory, settings and
    evidence with linear charts and explicit unknown/unreviewed states.
  5. 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

  1. Jammy2211 commented on Oct 5, 2026

    @Jammy2211
    ContributorAuthor

    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.

  2. Jammy2211 commented on Oct 5, 2026

    @Jammy2211
    ContributorAuthor

    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.
    • CI refresh/lint: shared Brain theme checkout and Chromium interaction checks.

    Test Plan

    • Full Python suite: 188 passed; subsequent final focused suite: 15 passed, including one additional campaign regression.
    • Ruff lint/format and git whitespace checks.
    • Normal remote ingest, offline board/check and census smoke; Brain state contract valid.
    • Chromium: pinned hashes, corrupt retry, stale links, late responses, multiple projects, history, keyboard, copy success/failure, no-JS, inline v2 and 390/760/1280 light/dark layouts.
    • Real captured catalogue/shards and desktop/mobile visual review; inline review, no independent reviewer claimed.
    • Campaign ledger unchanged; scientific workspace smoke not applicable to this standalone organ UI.

    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.

  3. Jammy2211 commented on Oct 5, 2026

    @Jammy2211
    ContributorAuthor

    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 find passed 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.

  4. Jammy2211 commented on Oct 5, 2026

    @Jammy2211
    ContributorAuthor

    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:

    • CI still fails at lychee (markdown link-rot) on Playwright’s vendor documentation.
    • GitHub now also reports merge conflicts.

    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.

  5. Jammy2211 commented on Oct 5, 2026

    @Jammy2211
    ContributorAuthor

    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.

  6. Jammy2211 commented on Oct 5, 2026

    @Jammy2211
    ContributorAuthor

    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.

  7. Jammy2211 commented on Oct 5, 2026

    @Jammy2211
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions