Skip to content

Graffiti theme, outlined type, audit fixes, demographic copy - #3

Merged
zowskyy merged 4 commits into
mainfrom
claude/outlined-everywhere
Aug 21, 2026
Merged

Graffiti theme, outlined type, audit fixes, demographic copy#3
zowskyy merged 4 commits into
mainfrom
claude/outlined-everywhere

Conversation

@zowskyy

@zowskyy zowskyy commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • B&W graffiti theme: full design token replacement (--radius: 0px, black/white palette, no color except red for errors), dark mode wired correctly
  • Typography: self-hosted Bebas Neue + Vandal Blow Graffiti; all headings site-wide use outlined style (white fill, black stroke via -webkit-text-stroke) — profile pages isolated so user themes are unaffected
  • Nav: 3-column centered-logo grid with hand-drawn graffiti tag logo (/logo.png); nav links in outlined Vandal Blow
  • Messenger: AIM window chrome removed, replaced with IRC-style .msg-* thread layout
  • Audit fixes: rate limit transaction bug (ROLLBACK before throw), listPublicFriends private-page visibility logic, importPageData type validation, reader-mode dark guard for explicit [data-theme="dark"] toggle
  • Tests: 13 new guestbook unit tests added
  • Demographic copy: landing, explore, and asks pages rewritten for 20–25 urban artist community — manifesto tone, direct language, "Claim your spot" / "Find your people" / "Join the pool"

Generated by Claude Code

Summary by CodeRabbit

  • New Features

    • Clarified asks-pool participation, opt-in behavior, and access to personal asks.
    • Refreshed landing and Explore page messaging around personalization and community discovery.
    • Updated visual styling with a stronger minimalist graffiti aesthetic and improved dark-theme support.
  • Bug Fixes

    • Improved access to private friend pages for authorized viewers.
    • Strengthened page data validation and rate-limit handling.
  • Tests

    • Added comprehensive guestbook coverage for moderation, permissions, validation, blocking, and pending entries.

claude added 4 commits August 21, 2026 07:25
Nav links, buttons, and step labels now use -webkit-text-stroke to match
the heading style: hollow/outlined letters in Vandal Blow font throughout.
- .top-bar controls: Vandal Blow + text-stroke 1.5px
- .btn primary: white fill, paper-stroke on ink bg
- .btn.secondary: transparent fill, ink-stroke
- .splash-step-label: Vandal Blow + text-stroke 1.5px

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DWWTyKs6t8zyYbVYavKSBn
The .splash-feature-card h3 override was setting solid color: var(--accent),
cancelling the stroke. Now uses color: var(--paper) + text-stroke like all
other headings.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DWWTyKs6t8zyYbVYavKSBn
Critical:
- globals.css: add [data-theme="dark"] guard to reader-mode dark styles
- rateLimit.ts: throw RateLimitError inside try block with explicit ROLLBACK,
  not after COMMIT outside the exception handler

High:
- friends.ts: listPublicFriends privacy check now allows page owner to see
  their own private-paged friends (viewerId === userId || viewerId === f.userId)
- globals.css: remove 4 hardcoded border-radius: 2–4px values (→ 0)
- guestbook.test.ts: 13 new tests covering sign/moderate/delete/count paths

Medium:
- globals.css: .btn.secondary text is now color: var(--ink) (was var(--paper)
  — invisible white text on transparent background)
- pageDocument.ts: importPageData validates parsed value is a plain object
  before casting, not just truthy

Low:
- globals.css: .studio-pixel-clear uses var(--ink)/var(--accent-ink) instead
  of hardcoded rgba/hex
- guestbook.ts: remove duplicate JSDoc comment on countPendingGuestbookEntries

Tests: 194 passed (13 new)

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DWWTyKs6t8zyYbVYavKSBn
Rewrites all hero copy, feature cards, step labels, CTAs, and section headers
for the 20-25 urban youth/artist demographic. Swaps corporate startup language
for raw manifesto tone: "Claim your spot", "Tag it up", "Find your people",
"Join the pool" — no feed, no algorithm, nothing sanitized.
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 78b078dc-2723-4f88-a5d0-c4b4e213a46d

📥 Commits

Reviewing files that changed from the base of the PR and between 6ca8219 and da0abe1.

📒 Files selected for processing (9)
  • app/src/app/(platform)/asks/page.tsx
  • app/src/app/(platform)/explore/page.tsx
  • app/src/app/(platform)/page.tsx
  • app/src/app/globals.css
  • app/src/lib/friends.ts
  • app/src/lib/guestbook.test.ts
  • app/src/lib/guestbook.ts
  • app/src/lib/pageDocument.ts
  • app/src/lib/rateLimit.ts

📝 Walkthrough

Walkthrough

The PR revises platform copy and graffiti styling, expands dark-theme support, adjusts friend-page and import validation behavior, improves rate-limit transaction handling, and adds guestbook test coverage.

Changes

Platform messaging

Layer / File(s) Summary
Platform messaging
app/src/app/(platform)/asks/page.tsx, app/src/app/(platform)/explore/page.tsx, app/src/app/(platform)/page.tsx
The pages now describe asks pools, personal walls, community discovery, and updated visitor and signed-in actions.

Visual style updates

Layer / File(s) Summary
Visual style updates
app/src/app/globals.css
Controls, navigation, splash content, dark-theme rules, pixel elements, and swatches now use the revised graffiti styling.

Access and input validation

Layer / File(s) Summary
Access and input validation
app/src/lib/friends.ts, app/src/lib/pageDocument.ts, app/src/lib/rateLimit.ts
Private friend pages use expanded visibility checks. Page imports reject invalid object shapes. Rate-limit violations roll back and throw immediately.

Guestbook coverage

Layer / File(s) Summary
Guestbook coverage
app/src/lib/guestbook.test.ts, app/src/lib/guestbook.ts
Tests cover guestbook creation, blocking, moderation, deletion, and pending counts. The pending-count documentation clarifies its scope.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: claude

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/outlined-everywhere

Comment @coderabbitai help to get the list of available commands.

@zowskyy
zowskyy marked this pull request as ready for review August 21, 2026 15:39
@zowskyy
zowskyy merged commit e596864 into main Aug 21, 2026
1 check was pending
zowskyy pushed a commit that referenced this pull request Aug 22, 2026
MAJOR Bug #4: Weak Test Assertions in proximityGraph.test.ts
- Strengthened assertion 'falls back to random pages for null userId'
  Changed: expect(result.length).toBeGreaterThanOrEqual(0) → expect(result.length).toBeGreaterThan(0)
  Added: expect(result).toContain("wanderer")
- Strengthened assertion 'returns only handles'
  Added: expect(result.length).toBeGreaterThan(0) before type check loop
  These were too weak to catch real bugs (empty array would pass)

CRITICAL Bug #3 Verification: Ring Edge Provenance Loss
- Added comprehensive regression test to webRings.test.ts
- Test verifies weight-tracking system correctly preserves edges when users leave one of multiple shared rings
- Scenario: user in 2 rings, leaves 1, edge persists with weight 1
- Result: Bug #3 is NOT actually a bug - weight system handles it correctly
- But system is architecturally fragile, so regression test prevents future breakage

Test Results:
- All 251 tests passing (up from 235)
- 19 test files, no failures
- Regression tests protect against duplicate handle bug and edge loss scenario

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018V1rEEt5QTC2ww5ZikioWZ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants