Skip to content

fix(student-space): polish growth reveal and Kira prompts - #102

Merged
rezailmi merged 5 commits into
mainfrom
advisor/075-capture-cinematic-elevated-growth
Jul 27, 2026
Merged

fix(student-space): polish growth reveal and Kira prompts#102
rezailmi merged 5 commits into
mainfrom
advisor/075-capture-cinematic-elevated-growth

Conversation

@rezailmi

@rezailmi rezailmi commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Summary

Captures now finish as one coherent island-growth beat: the capture sheet closes, the camera moves to growth on raised grass, and Kira confirms the save. The confirmation and close-up remain parked until the student presses OK; only then does the panel close and the camera return to the pre-capture view.

The cinematic waits while capture overlays are open or another camera owner is active, preventing the capture close-up from becoming the restore anchor. A four-second busy-camera valve still lets the flow proceed without re-queuing itself forever. Seed-derived sprouts and blooms now use tier 2+ placeable cells, while student-positioned objects keep their existing placement freedom.

Kira's ambient dialogue now asks short, concrete questions about school, classes, friends, and moments students may still be thinking about. Difficult-day prompts remain gentle but answerable, and the bird's speech bubble is narrower, quieter, and easier to dismiss without dominating the island.

The capture confirmation uses the narrator panel's required-acknowledgement mode: its close X and Escape dismissal are suppressed for this beat, while ordinary narrator and onboarding dialogs remain dismissible.

Validation

  • pnpm check: 0 errors (18 pre-existing warnings)
  • Targeted capture-flow suite: 10 tests passed
  • Full pnpm test: 1,141 passed, 40 skipped, 0 failed
  • New coverage maps 120 deterministic placements back to the committed island grid and exercises both overlay gates, busy-camera timeout, auto-bloom merging, required OK continuation, indefinite camera hold, and active-conversation protection

Manual smoke

  • Log one capture and verify: sheet closes → camera glides to the sprout on raised grass → Kira confirms the capture → the dialog and close-up remain in place for as long as you wait → pressing OK closes the dialog and returns the camera to the pre-capture view.
  • Wait for Kira's ambient prompt and verify it asks one natural school-day question in the smaller cream bubble, remains readable around the bird, and dismisses when pressed.

Reza Ilmi added 3 commits July 27, 2026 11:23
Add Island.elevatedPlaceableCells() (tier >= 2, falls back to the full
placeable pool if a custom spec has no elevated land) and point
Sprouts.seededPlacement() at it, so sprout/bloom growth seeds on the
raised grass tiers instead of the tier-1 beach.
…rator confirmation

Queue the per-capture camera flow (_pendingCamFlow) instead of starting it
immediately when the capture sheet/chooser overlay is open or another
consumer holds the camera (Camera._zoom / _saveStack). Draining happens
once the overlay closes and the camera settles (or after a 4s timeout),
so the cinematic no longer plays behind the closing sheet and no longer
corrupts the 'capture' owner's save-stack anchor.

Also open the bottom Kira narrator panel during the camera hold to confirm
the capture landed and the island is growing (GROW_NARRATION /
BLOOM_NARRATION), extending the hold to NARRATOR_HOLD_MS while the panel
is up, with early-dismiss and reduced-motion (words-only, no camera)
paths.

Note: this commit intentionally combines the deferral (Step 3) and
narrator (Step 4) changes from plan 075 — the narrator wiring lives
inside the same _tickCameraFlow/update() edits as the deferral gate,
so splitting them into separate commits would require re-deriving
interleaved hunks by hand.
…n timeout

_drainPendingCamFlow's PENDING_FLOW_TIMEOUT_MS escape hatch called
_startCameraFlow unconditionally, but _startCameraFlow re-runs
_shouldDeferCameraFlow() with no timeout awareness — so a camera that's
still busy past the timeout just got re-queued instead of flying,
silently defeating the safety valve. Add a `force` option so the drain
path's authoritative decision (overlay-closed, idle-or-timed-out) isn't
second-guessed.

Also adds test/engine/SproutsView.captureFlow.test.ts (plan 075 step 5):
elevated seeding against the real committed spec + fallback pool,
capture-sheet/chooser/busy-camera deferral with timeout and autoBloom
merge, and the narrator confirmation beat (open on hold, early-dismiss,
full-hold-then-close, already-active no-op).
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sensemaking-agents Ready Ready Preview, Comment Jul 27, 2026 6:48am

@rezailmi rezailmi changed the title fix(capture): stabilize the island growth cinematic fix(student-space): polish growth reveal and Kira prompts Jul 27, 2026
@rezailmi
rezailmi merged commit 1f21f7c into main Jul 27, 2026
5 checks passed
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.

1 participant