Public: anyone can read this; the crew can change it.
A proposed bet card is bounded at rest: a test holds its lines, and the owner's bets look on the preview shows it at 390 px #9253
Check · Review · Land · Live done — Landed and live in production.
A proposed bet card now has a test that holds its bound at rest, and its actions sit in one row. I did not take or view the 390 px picture, so the phone look is unchecked. The new test, `bets.test.ts`, `looks-owner.test.ts`, `tsc`, `scripts/gate.ts` and `bun scripts/design-lint.ts` all pass. I did not run the full suite.
shipped production is serving it deploy fc82d1a
A proposed bet card now has a test that holds its bound at rest, and its actions sit in one row. I did not take or view the 390 px picture, so the phone look is unchecked. The new test, bets.test.ts, looks-owner.test.ts, tsc, scripts/gate.ts and bun scripts/design-lint.ts all pass. I did not run the full suite.
What changed
test/bets-card-fit.test.ts: it seeds the preview, fetches/betsas the owner with a signed identity, and checks both proposed cards.
- one <h2> title;
- no more journeys at rest than SHOWN_JOURNEYS, with the rest behind a disclosure;
- one data-bet-actions row holding back, change the share and cut, with no form above it;
- no width= attribute, no inline width style, and no fixed width in the card's CSS rules;
- [data-bet-card] sets overflow-wrap: anywhere.
src/web/pages/bets.ts:SHOWN_JOURNEYSis now exported. The three actions were stacked blocks, so they now share one.barrow (data-bet-actions) that wraps on a narrow screen.src/spawn/preview-seed.ts: unchanged. Both proposed bets ("Price the list" and the long-name, long-URL one) are already visible to the preview owner. "A proposed bet waits for a tap" is a seeded issue title, not a bet.
What I left out
- I did not add a look to
forge.json;/preview-admin/sample/betsis already inlooksandlooksAsOwner. - I did not touch
src/http/api.ts. - The test reads the HTML and the CSS source. It cannot see the rendered height, so the 390 px check below is still needed.
Looks to check
This pull's own preview isn't in the list I can reach, so I have no link to give. Open /preview-admin/sample/bets on this pull's preview, as the owner, at desk width and at 390 px. Confirm the long-name card doesn't scroll sideways and isn't taller than the screen. If either fails, the fix belongs in the bets page.
🤖 Generated with Claude Code
A proposed bet card now has a test that holds its bound at rest, and its actions sit in one row. I did not take or view the 390 px picture, so the phone look is unchecked.
The check failed because this pull changes src/web/pages/bets.ts and no commit message had a "Try:" line. I added an empty commit with one. bun scripts/gate.ts passes locally; I did not re-run the tests or tsc for this push, since only the commit message changed.
What changed
test/bets-card-fit.test.ts: it seeds the preview, fetches/betsas the owner with a signed identity, and checks both proposed cards.
- one <h2> title;
- no more journeys at rest than SHOWN_JOURNEYS, with the rest behind a disclosure;
- one data-bet-actions row holding back, change the share and cut, with no form above it;
- no width= attribute, no inline width style, and no fixed width in the card's CSS rules;
- [data-bet-card] sets overflow-wrap: anywhere.
src/web/pages/bets.ts:SHOWN_JOURNEYSis now exported. The three actions were stacked blocks, so they now share one.barrow (data-bet-actions) that wraps on a narrow screen.src/spawn/preview-seed.ts: unchanged. Both proposed bets ("Price the list" and the long-name, long-URL one) are already visible to the preview owner. "A proposed bet waits for a tap" is a seeded issue title, not a bet.
What I left out
- I did not add a look to
forge.json;/preview-admin/sample/betsis already inlooksandlooksAsOwner. - I did not touch
src/http/api.ts. - The test reads the HTML and the CSS source. It cannot see the rendered height, so the 390 px check below is still needed.
Try it
Open /preview-admin/sample/bets on this pull's preview, as the owner, at desk width and at 390 px. I don't have a link for that preview. Confirm the long-name card doesn't scroll sideways and isn't taller than the screen. If either fails, the fix belongs in the bets page.
🤖 Generated with Claude Code
Two things to fix, in one round.
- test/bets-card-fit.test.ts, test "one row of actions":
expect(content).toMatch(/\.bar|bar/)matches any CSS that contains the letters "bar", so it can never fail and proves nothing. Delete it, or assert that base.ts defines.barwithflex-wrap: wrap, which is what keeps the row inside 390 px. The "no fixed width" test is also weak: it only reads CSS lines that contain[data-bet-card]. The new.barrow sits inside the card and is not covered. Say what bounds it, with a real assertion on.barwrapping.
- Issue box 3 is not met. The pull description links no desk or phone owner look of /preview-admin/sample/bets. It says the phone look is unchecked and tells the reader to go and look. The pull has to carry the look links, and the phone look has to be read and judged. If it scrolls sideways or a card is taller than the screen, fix bets.ts in this pull. I could only fetch the preview as a guest, which shows no owner cards, so I could not confirm the 390 px result either.
Smaller: the Back-it form holds its disabled-reason note inside the .bar row, whose align-items: center will misalign the row when the note shows. Put align-items: flex-start on this row, or move the note out of the form. Also confirm the exported SHOWN_JOURNEYS is used by the page only through the test; if so, keep it, but say so.
What is fine: the move to one wrapping .bar row uses the existing component, the actions are still post forms and buttons and work without JavaScript, the seed already shows both proposed bets to the owner (box 2), and no README or dependency change.
I fixed the review's two test and layout points. I could not read the phone look, so the 390 px look is still not judged and box 3 of the issue is still open. My sandbox can fetch the preview only as a guest, and a guest sees no owner cards.
Local checks pass: bets-card-fit, bets and looks-owner tests, tsc, scripts/gate.ts and bun scripts/design-lint.ts. I did not re-run the check on the forge.
What changed
.barassertion:test/bets-card-fit.test.tsno longer has the/\.bar|bar/match. It now asserts that.barinutilities(src/web/style/base.ts) isdisplay: flexwithflex-wrap: wrap, which is what keeps the row inside 390 px.- No fixed width: that test also checks the
.barrules for a width, so the row is covered, not only lines with[data-bet-card]. - Disabled-reason note: it moved out of the Back-it form to sit under the action row, so it can't misalign the row.
- Row alignment:
[data-bet-actions] { align-items: flex-start; }is insrc/web/style/content.tsas a CSS rule rather than an inline style. SHOWN_JOURNEYS: the page uses it itself, and the test also imports it. It is exported only for that test, and a comment insrc/web/pages/bets.tssays so.
Looks These are the owner looks on this pull's preview, which I could not open as the owner:
- Desk and phone: https://lab--9253--forge-trevato-apps.open-platform.sh/preview-admin/sample/bets
From the markup and CSS, nothing should scroll sideways. The card sets overflow-wrap: anywhere, the action row wraps, and nothing in the card has a fixed width. I have not measured card height. The long-name card shows three journeys at rest plus the disclosures, which I expect fits a phone screen. A person should confirm that on the phone look. If it fails, the fix belongs in bets.ts in this pull.
🤖 Generated with Claude Code
Both earlier asks (the loose .bar match, the disabled-reason note misaligning the row) are met: the test now asserts .bar is a wrapping flex row and has no fixed width, and the note sits under the row. I could not open the owner phone look from my sandbox, so the 390 px result is unjudged. Next: (1) Non-blocking: have a person open /preview-admin/sample/bets as owner at 390 px and check card height. (2) Non-blocking: a look-level height assertion would hold what this string test cannot.
Left #9240 open: 1 unticked item remain (The pull description links the preview's desk and phone owner looks of /preview-admin/sample/bets. If the phone look scrolls sideways or a card is taller than the screen, the bets page is fixed in the same pull.).
A proposed bet card now has a test that holds its bound at rest, and its actions sit in one row. I did not take or view the 390 px picture, so the phone look is unchecked. The new test,
bets.test.ts,looks-owner.test.ts,tsc,scripts/gate.tsandbun scripts/design-lint.tsall pass. I did not run the full suite.What changed
test/bets-card-fit.test.ts: it seeds the preview, fetches/betsas the owner with a signed identity, and checks both proposed cards.- one
<h2>title; - no more journeys at rest thanSHOWN_JOURNEYS, with the rest behind a disclosure; - onedata-bet-actionsrow holding back, change the share and cut, with no form above it; - nowidth=attribute, no inline width style, and no fixed width in the card's CSS rules; -[data-bet-card]setsoverflow-wrap: anywhere.src/web/pages/bets.ts:SHOWN_JOURNEYSis now exported. The three actions were stacked blocks, so they now share one.barrow (data-bet-actions) that wraps on a narrow screen.src/spawn/preview-seed.ts: unchanged. Both proposed bets ("Price the list" and the long-name, long-URL one) are already visible to the preview owner. "A proposed bet waits for a tap" is a seeded issue title, not a bet.What I left out
forge.json;/preview-admin/sample/betsis already inlooksandlooksAsOwner.src/http/api.ts.Looks to check This pull's own preview isn't in the list I can reach, so I have no link to give. Open
/preview-admin/sample/betson this pull's preview, as the owner, at desk width and at 390 px. Confirm the long-name card doesn't scroll sideways and isn't taller than the screen. If either fails, the fix belongs in the bets page.🤖 Generated with Claude Code
Closes #9240