feat(desktop): add fuzzy onboarding cards - #2141
Merged
Merged
Conversation
Co-authored-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co> Signed-off-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
cynfria
marked this pull request as ready for review
July 19, 2026 20:11
Keep the join choice in the usable vertical lane and assert the textured card surface rather than the obsolete solid host frame. Co-authored-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co> Signed-off-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
wesbillman
approved these changes
Jul 19, 2026
BradGroux
pushed a commit
to BradGroux/buzz
that referenced
this pull request
Aug 23, 2026
Signed-off-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co> Co-authored-by: npub19x6jnl6rhepymwyl2xlltz3ce7rfg2ktllle3g2vu59n3s490k8s9n40l3 <29b529ff43be424db89f51bff58a38cf86942acbffff98a14ce50b38c2a57d8f@sprout-oss.stage.blox.sqprod.co>
tucktuck101
pushed a commit
to tucktuck101/buzz
that referenced
this pull request
Sep 17, 2026
…k#2137, block#2141) Five real dispatches against real claims, 2026-09-16, found that PARTIALLY_SUPPORTED is not reachable through the documented dispatch, and found why: section 2b requires the verdict BEFORE the reason, so a verifier generating left to right commits to a literal before doing the reasoning that decides which literal is right. It can then only correct itself inside the reason, where the equality rule gives the correction no effect. One response read: NOT_SUPPORTED: ... -- wait, the first two assertions are established, so the correct verdict is PARTIALLY_SUPPORTED. Sending the three verdicts' definitions did not fix it. Sending an explicit ordered procedure for composing them did not fix it either; controls held (SUPPORTED and NOT_SUPPORTED claims kept their verdicts), so it is positional, not prompt drift. This commit does NOT fix the ordering -- that is a grammar change and a separate decision. It adds section 2d: a reason naming a verdict literal other than the one it follows is contradictory, and blocks. Matched as whole tokens, longest first, so the SUPPORTED inside NOT_SUPPORTED is not a false hit. Section 2's send-list now asks the verifier for this, so the rule does not produce blocks it was never given a chance to avoid. Why this earns its place even though the observed collapses were all in the safe direction: the mirror image, `SUPPORTED: ... though strictly only partially supported`, parses as SUPPORTED under 2b alone and would pass the gate. Nothing else in the contract catches it. Named limit, not solved: 2d checks naming, not meaning. Of four responses whose reasoning disagreed with their emitted verdict, it catches the two that named a literal and misses the two that only described the disagreement. Signed-off-by: Serina Mcfall <serina.mcfall@gmail.com>
tucktuck101
pushed a commit
to tucktuck101/buzz
that referenced
this pull request
Sep 17, 2026
…lock#2137, block#2141) The response grammar was <VERDICT>: <reason>, which required the answer before the reasoning that decides it. A verifier generating left to right committed to a literal at its first token and could only correct itself inside the reason, where the equality rule gave the correction no effect. PARTIALLY_SUPPORTED was unreachable on every honestly-partial claim tried. Section 2b now specifies exactly two lines -- reason first, verdict alone on line two: The span supports two of the three conditions. PARTIALLY_SUPPORTED Everything the old grammar earned is kept: whole-response matching, equality rather than containment, a one-line reason, no narration tolerated. Only the position moved. Measured, same four claims, same procedure text, only the format block changed: claim verdict-first verdict-last A 1-based line counting (control) SUPPORTED SUPPORTED B raises ValueError (control) NOT_SUPPORTED NOT_SUPPORTED C two established, one absent NOT_SUPPORTED PARTIALLY_SUPPORTED D one established, one contradicted NOT_SUPPORTED PARTIALLY_SUPPORTED Controls held, so this is positional and not prompt drift. No response under the new ordering self-corrected or named a competing literal. Two further gains, both recorded in the file. Truncation is now safer: a cut-off response loses the verdict itself rather than keeping a complete-looking one above a missing justification, so a half-finished check can no longer look like a decided one. And section 2d is deliberately KEPT after its cause was removed -- the ordering fixed the mechanism that forced self-contradiction, not every route to one, and the contract has to hold for any configured $PROFESSOR_VERIFIER_CMD, not only the one this was measured on. Rejection examples rewritten for the new shape, including the old verdict-first form, which must now fail rather than be tolerated for compatibility. Every documented rejection was executed against a reference implementation of 2b+2d and rejects for the stated reason. Signed-off-by: Serina Mcfall <serina.mcfall@gmail.com>
tucktuck101
pushed a commit
to tucktuck101/buzz
that referenced
this pull request
Sep 17, 2026
…locked write (block#2141) The blocked run: a draft whose citation RESOLVES but whose claim is false, so check-page has nothing to object to and only verify-claims can catch it. 0. target path observed ............ absent 1. check-page ...................... {"findings": [], "skipped": false}, exit 0 2. screen-content .................. {"findings": []}, exit 0 3. verify-claims ................... NOT_SUPPORTED -- blocked 4. target path observed ............ absent An absent target proves nothing alone: it reads the same whether an earlier gate blocked or no write was ever attempted. Rows 1 and 2 rule the first out by recording each earlier gate's own clean result, in order, before gate three ran. All four verdicts demonstrated against real spans on this branch, with raw stdout: SUPPORTED, NOT_SUPPORTED, and two shapes of PARTIALLY_SUPPORTED -- one where the span is silent on an assertion, one where it contradicts it. Neither was rounded up. UNSOURCED is reached in step 1 with no dispatch, evidenced by the absence of an invocation record where all fourteen dispatches wrote one. The run also found a defect in the verdict-last grammar committed an hour earlier. Gate three's real response separated its reason from its verdict with a BLANK line -- three lines, so a parse failure under "exactly two lines". It would still have blocked, but the finding would have read "unparseable" rather than naming the verdict, which this step's own done-when requires. Four earlier verdict-last dispatches emitted no blank line, so the behaviour is intermittent: roughly one run in five would fail to parse for a reason unrelated to the claim, and the noise would land on dispatches that did their job. Section 2b now discards blank lines before counting. It costs no protection -- narration lines are not blank, so the narration rejection example still fails, and the verdict line must still equal a literal. Re-validated: the four earlier verdicts are unchanged, every documented rejection still rejects, and a new narration-with-blank-lines case rejects too. Evidence lands in launchpad/plans/evidence/ -- inside the cohort boundary, beside the plan it belongs to. The prompts and raw captures are session scratch and are not committed; the document carries every claim sentence, span and verbatim stdout needed to reconstruct them. Signed-off-by: Serina Mcfall <serina.mcfall@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Give onboarding’s key, invite, community, and runtime surfaces a consistent fuzzy-card treatment while keeping the layout usable at the minimum desktop window width.
What
Cardcomposition and textured-card minimum-height supportRisk Assessment
Low to medium — desktop onboarding visuals and layout change, plus a backward-compatible shared
CardAPI extension; no backend, persistence, or navigation behavior changes.References
pnpm checkpnpm typecheckpnpm test— 3,180 tests passedGenerated with Codex