Commit graph

64 commits

Author SHA1 Message Date
Claude
6139278fbc
Merge remote-tracking branch 'origin/main' into staging 2026-04-22 10:19:10 +00:00
Claude
10ec8f21e6
kasuti: friendlier intro blurb under the three rules
Replaces the terse graph-theory equivalence line with an invitation to
experiment with the editor — mentions picking a premade motif or
making / saving / sharing your own, and flags that disjoint designs
aren't supported yet.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 10:16:08 +00:00
Claude
19b009f936
analytics: add neeldhara analytics script to BaseHead
Single defer'd <script> in BaseHead so it lands on every page
(homepage, theme pages, full interactives, embeds, admin, blog).
is:inline keeps Astro from processing it.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 10:13:29 +00:00
Claude
4180ecc3c3
kasuti: acknowledgement footer with links
Adds a centered footer under the dead-end banner thanking Priyam and
linking to the Wikipedia page, the rocksea tutorial, the IITGN
course, Guddi Crafts, and the Instagram handle.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 10:11:35 +00:00
Claude
aad29dd832
kasuti: grey-tint both fabrics on a dead-end
Lifted the legal-stitches check into a deadEnd flag shared by the
banner and both fabric panels. When the user runs out of legal moves
on the active side, both SVG canvases fade to bg-muted (a light grey)
with a smooth transition — a passive cue to match the existing amber
banner.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 10:02:05 +00:00
Claude
34679d1ae1
kasuti: allow diagonal stitches in the editor (and main game)
isNeighbor now also accepts unit-diagonal steps, and the editor adds
two diagonals per cell on top of the orthogonal edges. Diagonal hit
areas are rendered underneath the orthogonal ones so edge clicks
still prefer the straight segment and centre-of-cell clicks hit the
diagonal. Uploaded motif files with diagonal segments pass
validation.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 09:50:51 +00:00
Claude
82521d5551
kasuti: current vertex red on active side + one-shot ping ring
The active-side current vertex is red (primary) again; the green is
reserved for the go-indicators. A ring pulses briefly (SMIL animate
on r + opacity, keyed on side+vertex) each time the cursor lands,
to draw the eye — browsers won't let us move the OS mouse pointer.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 09:47:09 +00:00
Claude
d2fa216b8f
kasuti: reel polish, greener cues, custom colours, motif file I/O
UI cleanups:
- MiniPreview fits every motif into a 60×60 box (Snowflake no longer
  overshoots its card).
- Reel replaces the native overflow scrollbar with a scroll container
  plus left/right chevron buttons and edge fades that appear only when
  there is more content in that direction.
- Legal-next vertex markers are green instead of red; the current
  vertex renders green on the active side and muted grey on the
  inactive side (making the side-flip obvious without a jump).

Thread colours:
- Each fabric panel now has an extra swatch opening the native colour
  picker, so the user can dial in any thread colour beyond the five
  presets. The swatch shows a conic rainbow and highlights when the
  current colour isn't one of the presets.

Editor:
- Validation simplified to connectivity only (the alternating Eulerian
  tour on the doubled graph exists for every connected base graph, so
  odd-degree vertices don't actually block solvability — the extra
  warning was misleading).
- Download button exports the current motif as a small JSON file
  ({kind: "kasuti-pattern", version: 1, edges: [...]}); Upload reads
  one back in, validates structure (orthogonal unit segments only,
  fits in the editor grid), and loads it centered for editing.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 08:37:19 +00:00
Claude
12803052fd
kasuti: four new motifs + custom pattern editor
Adds Rose, Totem, Figurine, and Snowflake to the motif reel — inspired
by patterns 1/2/4 on the reference sketch and the red snowflake
sample. Each is an Eulerian graph so an alternating tour exists
(36/24/34/52 stitches respectively).

Appends a "+ Make your own" tile at the end of the reel that opens a
dialog-based pattern editor: click between dots on a 14×14 grid to
toggle stitch segments. The editor reports connectivity and Eulerian
status live and only enables "Use this motif" once the pattern is
connected. The saved custom pattern is centered into the main grid
and selected immediately.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 08:08:51 +00:00
Claude
197f7b681b
kasuti: new interactive — alternating Eulerian tour on a grid
Trace traditional Kasuti embroidery motifs so the design appears
identical on both sides of the fabric. Two side-by-side 20×20 SVG
fabrics (front/back); the active side flips after every stitch, and
only legal unvisited pattern edges from the current vertex are
clickable. Seven Eulerian motifs in the top reel (Square → Temple),
per-side thread colour pickers (default black on front, red on back),
undo / reset, completion detection + canvas-confetti.

Implemented from the idea in admin-data.json; idea removed and
replaced with a note on the slug.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-21 18:33:32 +00:00
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