add 0059/SESSION-0059.0-TRANSCRIPT-2026-06-01T08-00--2026-06-01T08-14.md + replace placeholder/variant SESSION-0059.0-TRANSCRIPT-2026-06-01T08-00--INPROGRESS.md
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
# Session 0059.0 — Transcript
|
||||
|
||||
> Date: 2026-06-01
|
||||
> Goal: Fix the reported button-UX bugs on the OHM RFC view header —
|
||||
> "missing" buttons and a generally unpolished button feel — with the
|
||||
> right framework/deployment separation.
|
||||
>
|
||||
> Outcome: **Shipped rfc-app v0.31.4 (CSS-only patch) fixing invisible
|
||||
> light-surface `.btn-link` buttons + harmonizing the RFC breadcrumb
|
||||
> action bar, and bumped the OHM pin to 0.31.4. Both changes are pushed
|
||||
> on branches with PRs open (rfc-app #5, ohm-rfc #9); not yet merged,
|
||||
> tagged, or deployed.**
|
||||
>
|
||||
> Highlights:
|
||||
> - Root-cause, not whack-a-mole: the "missing buttons" were
|
||||
> `.btn-link` (a dark-header utility, white-on-translucent) reused on
|
||||
> light surfaces, rendering white-on-white.
|
||||
> - One CSS file touched (`frontend/src/App.css`, +44/−7).
|
||||
> - Verified visually in an isolated CSS harness (Preview MCP
|
||||
> screenshot) before committing; `vite build` clean.
|
||||
|
||||
---
|
||||
|
||||
## Pre-session state
|
||||
|
||||
- **Operator report:** a screenshot of the OHM RFC view (super-draft
|
||||
"Informed Consent"). Header action bar shows "Start Contributing"
|
||||
(filled black) and "Graduate to RFC repo" (filled black) rendering
|
||||
fine, but "Metadata" / "Claim ownership" / "Invitations" appearing
|
||||
ghosted/missing, and a button clipped at the right edge. Operator:
|
||||
"Some buttons are missing… clean up the general look and feel of
|
||||
buttons in there. It doesn't feel smooth or modern."
|
||||
- **ohm-rfc:** on `main`, clean. `.rfc-app-version` = `0.31.3`.
|
||||
CLAUDE.md "Current pin" line stale at `0.2.2`.
|
||||
- **rfc-app (`~/git/rfc-app`):** on `main` but **6 commits behind
|
||||
origin/main**, working tree at VERSION `0.30.1` — stale. origin/main
|
||||
tip `e8e555d` (v0.31.3 + a docs commit). Fast-forwarded to the tip
|
||||
before any edit so the work targeted the version OHM actually runs.
|
||||
- **Live OHM deploy:** not inspected; unchanged this session.
|
||||
|
||||
---
|
||||
|
||||
## Turn-by-turn arc
|
||||
|
||||
### Arc 1 — Triage: framework concern, sync first
|
||||
|
||||
Per the two-repo iteration pattern, button rendering/styling is UI
|
||||
logic owned by the framework → fix in rfc-app, not the content repo.
|
||||
Located the header in `frontend/src/components/RFCView.jsx`
|
||||
(`.rfc-breadcrumb` / `.breadcrumb-actions`). Noticed the working tree
|
||||
was stale (0.30.1) vs. the OHM pin (0.31.3); fast-forwarded
|
||||
`~/git/rfc-app` `main` to origin tip so the fix built on the live
|
||||
version. Claimed session ID **0059** via `claim-session-id.sh`.
|
||||
|
||||
### Arc 2 — Root cause
|
||||
|
||||
`.btn-link` (App.css:37) was `color: var(--c-white); background:
|
||||
var(--color-on-dark-soft)` = `rgba(255,255,255,0.15)`. Born (git blame:
|
||||
first slice, `779ba6d`) as the **dark-header** button pattern — the
|
||||
tokens.css comment even says "On the dark header, translucent white is
|
||||
the established pattern." But `.btn-link` is reused on **light**
|
||||
surfaces: the breadcrumb action bar (`.rfc-breadcrumb` bg
|
||||
`--c-gray-50`), the PR diff toggle + "Edit title" (`PRView.jsx`), the
|
||||
invitations/inbox modals, and the discussion panel. On near-white
|
||||
backgrounds those buttons were white-on-white — present and functional
|
||||
in the DOM, but invisible. The two filled CTAs survived because their
|
||||
fill carried them. The right-edge clipping was the action row
|
||||
overflowing with no wrap. In the dark header, the **only** `.btn-link`
|
||||
is "Sign out" (App.jsx:256) — everything else there uses
|
||||
`.header-*` / `.btn-signin-header`.
|
||||
|
||||
### Arc 3 — The fix (App.css only)
|
||||
|
||||
1. Base `.btn-link` redefined as a light-surface secondary button
|
||||
(white fill, hairline `--c-gray-300` border, `--c-gray-700` label,
|
||||
hover darkens). Fixes every light-surface reuse at once.
|
||||
2. `.app-header .btn-link` (+hover) restores the translucent-on-dark
|
||||
treatment for the lone dark-surface use ("Sign out").
|
||||
3. `.breadcrumb-actions` → `flex-wrap` + a higher-specificity
|
||||
harmonizer (`.breadcrumb-actions > button, > a`) normalizing the
|
||||
toggle, filled CTAs, and secondary buttons to one height (30px) /
|
||||
radius / type so the row reads as a single control group and wraps
|
||||
instead of clipping.
|
||||
4. `.rfc-breadcrumb` → `flex-wrap: wrap`.
|
||||
5. `.diff-mode-toolbar .btn-link.active` → filled ink so the
|
||||
selected toggle reads clearly against the new secondary base.
|
||||
|
||||
Smooth transitions + the keyboard focus ring were already global (the
|
||||
v0.21.0 interaction-polish layer), so no new motion/focus rules — the
|
||||
"not smooth/modern" feel was the invisible/inconsistent resting state,
|
||||
not missing animation.
|
||||
|
||||
### Arc 4 — Verify
|
||||
|
||||
Built an isolated HTML harness loading the *real* `tokens.css` +
|
||||
`App.css` and rendering the exact breadcrumb markup (dark header,
|
||||
super-draft bar, edit-branch bar, diff toggle), served via a temp
|
||||
static server, screenshotted via the Preview MCP. Confirmed: Sign out
|
||||
legible on dark; Metadata/Claim ownership/Invitations now legible
|
||||
secondary buttons; filled CTAs still dominant; diff toggle's active
|
||||
state filled. Harness + the temp `.claude/launch.json` removed
|
||||
afterward (ohm-rfc left clean). `npm run build` clean.
|
||||
|
||||
### Arc 5 — Release flow (full, per operator choice)
|
||||
|
||||
- **rfc-app:** branch `release/v0.31.4-button-ux`; VERSION +
|
||||
`frontend/package.json` → 0.31.4; CHANGELOG patch entry; commit
|
||||
`76c82a5`. Pushed via the SSH URL (origin is https with no
|
||||
non-interactive credential; `git.wiggleverse.org:2222` SSH works).
|
||||
PR **#5** opened.
|
||||
- **ohm-rfc:** branch `session-0059/pin-0.31.4`; `.rfc-app-version` →
|
||||
0.31.4; CLAUDE.md "Current pin" corrected `0.2.2` → `0.31.4`; commit
|
||||
`ee5b90b`. Pushed to origin (SSH). PR **#9** opened.
|
||||
- PRs created via `ohm-infra/scripts/rfc-authoring.sh pr-create`
|
||||
(Keychain `ohm-gitea-token`, scope `write:repository`; `whoami`
|
||||
403s on missing `read:user` but PR ops work). Note: owner `ben` now
|
||||
307-redirects to `ben.stull` (a Gitea rename) — use `ben.stull/...`
|
||||
since the script's curl doesn't follow redirects.
|
||||
|
||||
---
|
||||
|
||||
## Cut state (end of session)
|
||||
|
||||
| | |
|
||||
| --- | --- |
|
||||
| rfc-app | branch `release/v0.31.4-button-ux` @ `76c82a5`, pushed, PR #5 open — NOT merged, NOT tagged. VERSION 0.31.4. |
|
||||
| ohm-rfc | branch `session-0059/pin-0.31.4` @ `ee5b90b`, pushed, PR #9 open — NOT merged. pin 0.31.4. |
|
||||
| OHM live | unchanged this session; still running pre-0.31.4. |
|
||||
| ohm-rfc pin (on branch) | 0.31.4 (main still 0.31.3 until #9 merges) |
|
||||
|
||||
| Ledger | Status |
|
||||
| --- | --- |
|
||||
| Button UX: invisible light-surface `.btn-link` + breadcrumb polish (rfc-app v0.31.4) | 🟡 in-flight — PRs open, awaiting merge + tag + deploy |
|
||||
|
||||
---
|
||||
|
||||
## §19.2 candidates surfaced
|
||||
|
||||
1. **`.btn-link` is an overloaded class.** Now corrected to a
|
||||
light-surface default with a dark-header scope, but the deeper
|
||||
pattern — a proper named button vocabulary (`.btn-secondary`,
|
||||
`.btn-ghost`, surface-aware variants) — would prevent the next
|
||||
"reused on the wrong surface" regression. Candidate for a future
|
||||
UI-system pass, not urgent.
|
||||
2. **rfc-app origin is https with no non-interactive credential.**
|
||||
Every push this session went via an explicit SSH URL. Worth either
|
||||
switching origin to SSH or storing a credential, so future sessions
|
||||
don't rediscover this.
|
||||
|
||||
---
|
||||
|
||||
## What lands on the operator's plate
|
||||
|
||||
1. Review + merge **rfc-app PR #5**; then tag `v0.31.4` on the merge
|
||||
commit on main (matches how the v0.31.x tags sit on main).
|
||||
2. Review + merge **ohm-rfc PR #9** (after #5 lands).
|
||||
3. Rebuild the OHM deployment's frontend against 0.31.4 and ship —
|
||||
plain code deploy, no env/config/migration.
|
||||
|
||||
---
|
||||
|
||||
## Prompt the operator can paste into the next Claude Code session
|
||||
|
||||
```
|
||||
You reserve your own session ID (claim-session-id.sh). Context: the
|
||||
prior session (0059) fixed a button-UX bug in rfc-app and shipped it as
|
||||
v0.31.4 (CSS-only patch in frontend/src/App.css): the .btn-link class
|
||||
was a dark-header style reused on light surfaces, so secondary buttons
|
||||
(Metadata / Claim ownership / Invitations on the RFC breadcrumb) were
|
||||
rendering white-on-white and looked missing; the breadcrumb action bar
|
||||
was also harmonized + made to wrap. It's on branches with PRs open —
|
||||
rfc-app #5 (release/v0.31.4-button-ux → main) and ohm-rfc #9
|
||||
(session-0059/pin-0.31.4 → main, bumps .rfc-app-version to 0.31.4) —
|
||||
NOT merged, NOT tagged, NOT deployed.
|
||||
|
||||
If you're picking this up: merge rfc-app #5, tag v0.31.4 on the merge
|
||||
commit, merge ohm-rfc #9, then rebuild + deploy the OHM frontend
|
||||
against 0.31.4. (rfc-app origin is https with no non-interactive
|
||||
credential — push via ssh://git@git.wiggleverse.org:2222/ben.stull/…;
|
||||
open/merge PRs via ohm-infra/scripts/rfc-authoring.sh, owner
|
||||
ben.stull.) Otherwise, fresh OHM driver session.
|
||||
```
|
||||
@@ -1,15 +0,0 @@
|
||||
# Session 0059.0 — Transcript
|
||||
|
||||
> Date: 2026-06-01
|
||||
> Start: 2026-06-01T08-00 (PST implied)
|
||||
> Status: **PLACEHOLDER — claimed at session start; finalized at session end.**
|
||||
>
|
||||
> This file reserves session ID 0059. The driver replaces this body
|
||||
> with the full transcript before publishing, and renames the file to
|
||||
> its final SESSION-0059.0-TRANSCRIPT-2026-06-01T08-00--<end>.md form.
|
||||
|
||||
---
|
||||
|
||||
## Launch prompt
|
||||
|
||||
_(launch prompt not captured at claim time)_
|
||||
Reference in New Issue
Block a user