Commit graph

54 commits

Author SHA1 Message Date
Neeldhara Misra
6db71800e8 admin: add idea "Kasuti" 2026-04-21 23:31:44 +05:30
Claude
8e041f32d7
computing-pi: clickable avg toggle + second instruction line
T9: The center avg display is now a <button>. Clicking it toggles
between showing avg × 4 (with 'π ≈ 3.1416' reference) and showing
plain avg (with 'π/4 ≈ 0.7854'). Label flips accordingly. Subtle
background hover wash to hint at interactivity.

T10: Added a second instruction line below 'Click on any of the
completed runs to view the full sequence.' calling out the avg
toggle. Both lines sit in a shared centered text-muted-foreground
container with small vertical gap.
2026-04-21 15:45:07 +00:00
Neeldhara Misra
3b7387e579 admin: computing-pi: mark T10 done 2026-04-21 20:48:17 +05:30
Neeldhara Misra
bc61479cb6 admin: computing-pi: mark T9 done 2026-04-21 20:48:16 +05:30
Neeldhara Misra
5ed8eb9332 admin: computing-pi: add T10 2026-04-21 18:29:52 +05:30
Neeldhara Misra
9c5fa3f60a admin: computing-pi: add T9 2026-04-21 18:29:47 +05:30
Claude
6ea57f2a48
computing-pi: call the Propp source a preprint, not a paper 2026-04-21 12:53:56 +00:00
Claude
2863ec16b4
computing-pi: Propp footnote, in-progress counter, per-tile clicks, note
T5: Added a centered <footer> below the Card crediting Jim Propp's
paper, the LinkedIn post, and Arghya Dutta — markdown links rendered
as anchor tags with target=_blank rel=noopener noreferrer.

T6: Reset button shows a mono ({stoppedCount}/{n}) suffix while any
run is still active; the suffix disappears once all runs stop.

T7: Tile clickability is now per-run (run.stopped) instead of gated
on allStopped. Since stopped runs are immutable, the detail Dialog
stays accurate while unrelated tiles keep ticking.

T8: Added a small instruction note between the header and the tile
grid: 'Click on any of the completed runs to view the full sequence.'
The old 'All runs complete' banner is reduced to the discarded-runs
callout only.
2026-04-21 12:49:32 +00:00
Neeldhara Misra
b14c922369 admin: computing-pi: add T8 2026-04-21 18:15:12 +05:30
Neeldhara Misra
64d130425c admin: computing-pi: add T7 2026-04-21 18:14:34 +05:30
Neeldhara Misra
9ebb2cf45a admin: computing-pi: add T6 2026-04-21 18:14:11 +05:30
Neeldhara Misra
b99e8aa508 admin: computing-pi: add T5 2026-04-21 18:13:35 +05:30
Claude
ee2d249513
computing-pi: shorten card description to one sentence 2026-04-21 12:36:47 +00:00
Claude
f752b45810
computing-pi: move fraction dot onto the H/T row's bottom border 2026-04-21 12:34:21 +00:00
Claude
80ae2ecaa8
computing-pi: fraction-indicator dot on the H/T header
Small black dot on the H/T row at left: (H / total) * 100%. The
midpoint corresponds to H = T, so the dot crosses the middle exactly
when a run hits the stopping condition (H > T). Discarded runs end
the simulation with their dot still left of center.
2026-04-21 12:31:11 +00:00
Claude
1efdec5e44
computing-pi: raise cap to 5000, amber levels, discard, H/T counters
T1: MAX_TOSSES_PER_RUN is now 5000.

T2: Tiles in progress past 500 tosses wear a progressively darker
amber wash (units of 500, up to 9 levels). Completed runs stay green.

T3: Runs that hit the cap are now flagged discarded. They carry a red
wash and an italic 'discarded' footer, are excluded from avg × 4, and
the summary / detail dialog note how many were dropped.

T4: Added a grey H/T header strip to each tile showing the running
heads count on the left and tails count on the right.
2026-04-21 12:17:55 +00:00
Neeldhara Misra
58b10a6d99 admin: computing-pi: add T4 2026-04-21 17:43:40 +05:30
Neeldhara Misra
d3beff69d3 admin: computing-pi: add T3 2026-04-21 17:42:49 +05:30
Neeldhara Misra
59968be0c3 admin: computing-pi: add T2 2026-04-21 17:42:38 +05:30
Neeldhara Misra
01eebdd3de admin: computing-pi: add T1 2026-04-21 17:42:09 +05:30
Neeldhara Misra
dc9b38a402 admin: clear override after committing eternal-domination-game status 2026-04-21 17:40:09 +05:30
Neeldhara Misra
f2fc043b32 admin: set eternal-domination-game to draft 2026-04-21 17:40:08 +05:30
Neeldhara Misra
b38711b429 admin: override eternal-domination-game status to draft 2026-04-21 17:40:07 +05:30
Neeldhara Misra
a8e7a722e8 admin: clear override after committing eternal-domination-game status 2026-04-21 17:40:01 +05:30
Neeldhara Misra
a177f76745 admin: set eternal-domination-game to draft 2026-04-21 17:40:00 +05:30
Neeldhara Misra
5822a50de2 admin: override eternal-domination-game status to draft 2026-04-21 17:39:59 +05:30
Neeldhara Misra
26e543e230 admin: clear override after committing eternal-domination-game status 2026-04-21 17:39:47 +05:30
Neeldhara Misra
ca8acdd4ef admin: set eternal-domination-game to draft 2026-04-21 17:39:47 +05:30
Neeldhara Misra
07081e6547 admin: override eternal-domination-game status to draft 2026-04-21 17:39:45 +05:30
Claude
f527a712be
Implement neighbor-sum-avoidance polish + new computing-pi interactive
neighbor-sum-avoidance (T2-T6):
- Start button now reads just "Start" (no mode suffix).
- Available numbers and shuffled preview arrangements render pre-start
  so the arena isn't empty while the user is still deciding.
- Mode switch + count slider stay mounted once active; they're just
  disabled, so starting no longer causes a layout jump.
- Guided-mode instructions expanded to call out light grey edges, red
  violation arcs, and the green valid-neighbor line explicitly.
- Draggable numbers honor isActive for the draggable attribute and
  onDragStart, showing opacity-60 + cursor-not-allowed when locked.

computing-pi (new interactive under Miscellany):
- N parallel first-passage simulations: toss until heads > tails,
  record the fraction. Average × 4 converges to π.
- Header row: runs slider | live average × 4 | Start/Reset.
- Tile grid uses a mask-gradient marquee so long sequences scroll
  their tail while staying readable.
- Click any tile once all runs complete to see the full toss sequence
  in a Dialog.
- Safety cap of 1000 tosses per run (first-passage time has infinite
  expectation, so without the cap a pathological run could block).
- Registered in interactives.ts + InteractiveRenderer + the parallel
  interactive-components map. Filled in three-bank-accounts in the
  latter while there, since it was missing.

admin-data.json updated to mark T2-T6 done with remarks, remove the
implemented Computing Pi idea, and add an implementation note.
2026-04-21 11:58:45 +00:00
Claude
014d90a36b
CLAUDE.md: document Fizzy todo/idea mirror workflow
Agents processing todos/ideas from admin-data.json should mirror them
as cards on the author's Fizzy board. Slug → tag, progress → Review
column, staging branch link in the card description. PAT is read
from FIZZY_PAT env var; never hardcoded.
2026-04-21 11:12:45 +00:00
Neeldhara Misra
dc3c7ea094 admin: add idea "Computing Pi" 2026-04-21 16:39:01 +05:30
Claude
9dc0a68219
CLAUDE.md: redact admin password, add design & aesthetics section
- Replace literal admin password with a pointer to where it lives and
  the ADMIN_PASSWORD env var override.
- Add a design section covering the shadcn-first approach, OKLCH
  design tokens, mandatory dark-mode pairing, typography pairing
  (Castoro serif display + Imprima/Geist sans), radius scale, motion
  libraries and reduced-motion handling, and the tab/card/alert
  patterns that published interactives tend to share.
2026-04-21 10:40:02 +00:00
Claude
9e5538a73d
Add CLAUDE.md to orient future agents
Documents the three-place registration dance for interactives
(interactives.ts, InteractiveRenderer.tsx, interactive-components.ts),
the admin function's text-editing of source files, routing, and
Netlify-specific build workarounds.
2026-04-21 10:34:13 +00:00
Neeldhara Misra
e7dd3ed8eb admin: descriptive commit messages + dev-mode sync fallback
Server side: writeData() now takes a message, and each action in the
POST handler computes its own — e.g. "admin: add idea "Title"", "admin:
clear note on slug". For setTodos (which ships the whole blob), diff
old vs new per slug to produce messages like "neighbor-sum-avoidance:
add T6" or "mark T1 done, add T5".

Client side: syncFromServer() falls back to the bundled admin-data.json
when /api/admin is unreachable, so the admin panel reflects committed
state under `astro dev` (which doesn't run Netlify Functions).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 18:26:27 +05:30
Neeldhara Misra
0d0365cf6d admin: update admin data 2026-04-17 10:41:22 +05:30
Neeldhara Misra
c95b9aaa28 admin: update admin data 2026-04-17 10:40:00 +05:30
Neeldhara Misra
ac0e1013c9 admin: update admin data 2026-04-17 10:39:26 +05:30
Neeldhara Misra
3de9806fe7 admin: update admin data 2026-04-17 10:39:10 +05:30
Neeldhara Misra
0448c26220 admin: update admin data 2026-04-17 10:39:01 +05:30
Neeldhara Misra
486fd6aa2d admin: update admin data 2026-04-17 10:38:28 +05:30
Neeldhara Misra
46086795a2 admin: update admin data 2026-04-17 10:38:05 +05:30
Neeldhara Misra
1c754de4f7 neighbor-sum-avoidance: render arena pre-start with interactions disabled
Show the circle arena before the user clicks Start (greyed via
opacity-60 pointer-events-none), and guard drag/drop/click handlers on
isActive. Clicking Start enables interactions and kicks off the timer
as before. Also resync slot count with the Numbers slider while idle.

Marks T1 done.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 09:22:23 +05:30
Neeldhara Misra
fcbdcfccdf admin: update admin data 2026-04-17 04:01:45 +05:30
Neeldhara Misra
0c9940485d Remove debug logging from admin function
GitHub API working correctly with fine-grained PAT.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 03:58:55 +05:30
Neeldhara Misra
9f5fbd99aa Add debug logging to admin function 2026-04-17 03:57:35 +05:30
Neeldhara Misra
cb252a5841 trigger redeploy for env var update 2026-04-17 03:53:04 +05:30
Neeldhara Misra
96cc344391 Remove unused form.tsx to fix dev server warning
The form.tsx UI component imported react-hook-form and
@radix-ui/react-slot which aren't installed. Nothing uses
this component — removing it cleans up the dev server output.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 03:50:35 +05:30
Neeldhara Misra
8e61afac2b Switch to standalone Netlify Function for admin API
Remove Astro adapter (causes esbuild bundling errors on Netlify)
and use a pure static build + standalone Netlify Function instead.

- Removed @astrojs/netlify adapter — site builds as fully static
- Created netlify/functions/admin.mts as a standalone Netlify Function
- Function handles all admin API operations via GitHub API
- Removed src/pages/api/admin.ts (Astro SSR route)
- Local dev: admin syncs to localStorage (server sync fails silently)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 03:44:01 +05:30
Neeldhara Misra
a90cd7283c Sanitize rollup chunk filenames for Netlify compatibility
Vite/Rollup generates chunk names with !~{} characters that cause
esbuild syntax errors on Netlify's build system. Added sanitizeFileName
to replace special characters with underscores.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 03:37:55 +05:30