feat: wire modern Slide app graphics with hover states - #96
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Aug 6, 2026
BrandDead
added a commit
that referenced
this pull request
Aug 6, 2026
) npm ci was failing on PRs #96-#98 because the lockfile had vitest v4.x transitive packages (@vitest/utils@4.1.10, chai@6.x, etc.) while package.json pins vitest@^2.1.8. Regenerated with npm@10.9.2 / Node 22 — lockfileVersion 3, vitest@2.1.9. Co-authored-by: BrandDead <1.74973198e+08+BrandDead@users.noreply.github.com>
BrandDead
force-pushed
the
agent/slide-game-app-graphics
branch
from
August 6, 2026 21:35
69a1b46 to
6cc0a7d
Compare
… a11y
P0 fixes from GPT audit:
- GameSprite.tsx: remove duplicate 'shoebox' and 'market' entries in
APP_ICONS. The old icon_*_new.png paths are replaced by the new
per-app artwork (/assets/icons/apps/{name}/regular.png).
ESLint no-dupe-keys would have caught this on the next CI run.
- OSShell.tsx: app tiles now have role='button', tabIndex, aria-label,
aria-disabled, and onKeyDown (Enter/Space) so keyboard users can
focus and activate every app icon.
446 vitest tests pass.
BrandDead
force-pushed
the
agent/slide-game-app-graphics
branch
from
August 6, 2026 22:43
6cc0a7d to
025847c
Compare
BrandDead
marked this pull request as ready for review
August 6, 2026 22:43
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
BrandDead
pushed a commit
that referenced
this pull request
Aug 6, 2026
Rebase onto main-tL2525 (post #98/#101/#96 merges): - OSShell.tsx conflict: keep CLOUT label from #97 + shot-caller artwork from #96 (GPT audit recommendation) - App.tsx: auto-merged cleanly P0 fixes: - Remove CLAUDE_SPRINT_15A_PROMPT.md and SPRINT_15B_NOTES.md (internal sprint artifacts should not be in product PRs) - marketMembersCatalog.ts: fix invalid CityRegion 'east' -> 'miami' - MarketMembers.tsx: replace hardcoded roster cap 24 with maxMembers from useGangStore (store cap is 20) - k9/recruit/police are now in MemberRole union (from #98 merge), so no 'as MemberRole' cast is needed here 581 vitest tests pass (26 test files — 3 new from #97).
BrandDead
added a commit
that referenced
this pull request
Aug 6, 2026
* feat(sprint-15b): Market members, Most Wanted board, Get Back clock Priority 2 and Priority 4 from the app audit. Priority 1 and 3 are delegated to Claude/Opus 5 via CLAUDE_SPRINT_15A_PROMPT.md. Market MEMBERS tab (Priority 2) - marketMembersCatalog.ts: procedural hireable generator. Four tiers (street/seasoned/certified/legend) with monotonic pricing, and an inverse relationship between tier and loyalty — the good ones cost more and hold worse. Heat factor and baggage odds both rise with tier, so a legend shooter is a genuine tradeoff rather than a straight upgrade. Seven roles including k9, which is cheap to keep and has no special people. - Listings are seeded off their id so a board survives re-renders mid-purchase and can be rebuilt without persisting every field. - MarketMembers.tsx/.css: listing wall plus detail sheet showing stats, origin story, terms, special people, and the catch. Board refresh costs money so it cannot be rerolled for free. Roster capped at 24 active to keep payroll bounded. Most Wanted board (Priority 4) - mostWantedStore.ts: post, cancel, and fulfil bounties plus an ally ledger. Listing fee is non-refundable on cancel, minimum reward scales with target level, and contracts on a member's people carry a premium. canFulfil blocks self-cashing and double payouts. - MostWanted.tsx/.css + MostWantedApp.tsx/.css: aged-paper poster wall, post form with photo upload, proof-screenshot upload that pays out automatically, and an allies tab with standing meters. Fulfilling a contract saves the poster as an ally and opens a Get Back window against the hunter — the war starter. - Proof and payout are public record by design; reputation does the policing rather than a server-side referee. Get Back clock (Priority 4) - getBackStore.ts: wall-clock-derived revenge windows so backgrounding the app cannot desync them. Success doubles the morale the offender banked and strips it from them; expiry penalises the retaliator. Resolution is idempotent so morale can never be applied twice. - GetBackClock.tsx/.css: shot-clock badge above the dock with an expandable panel listing open debts and who is catchable. Sweeps lapsed windows on its own tick so penalties land even if the panel is never opened. Gang-wide morale is applied per active member, since morale lives on members not on the gang. Wiring and cleanup - OSShell: RANKINGS renamed to CLOUT; new WANTED app with a live open-bounty badge. - App.tsx: most_wanted route plus GetBackClock as a global overlay. - Market.tsx: emoji purge. Removed the dead `icon` field from ITEM_CATALOG (scripts/strip_market_icons.py) since the UI now uses CATEGORY_TAGS text labels. Tests: 565 passing, up from 430. Typecheck clean except three errors that pre-date this branch on main-tL2525. Production build succeeds. * fix(pr97-scope): rebase onto main, resolve conflicts, fix P0 issues Rebase onto main-tL2525 (post #98/#101/#96 merges): - OSShell.tsx conflict: keep CLOUT label from #97 + shot-caller artwork from #96 (GPT audit recommendation) - App.tsx: auto-merged cleanly P0 fixes: - Remove CLAUDE_SPRINT_15A_PROMPT.md and SPRINT_15B_NOTES.md (internal sprint artifacts should not be in product PRs) - marketMembersCatalog.ts: fix invalid CityRegion 'east' -> 'miami' - MarketMembers.tsx: replace hardcoded roster cap 24 with maxMembers from useGangStore (store cap is 20) - k9/recruit/police are now in MemberRole union (from #98 merge), so no 'as MemberRole' cast is needed here 581 vitest tests pass (26 test files — 3 new from #97). --------- Co-authored-by: BrandDead <1.74973198e+08+BrandDead@users.noreply.github.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.
What changed
Important constraint
The Contacts and ContactProfile components were not modified. Their status emojis remain intact for alive, active, jailed, hospital, dead, and related member states.
Validation