Repository navigation
feat(meetings): global recording, persistence, summary, tools, discreet detection - #350
Merged
Merged
Conversation
…et detection Stage 2 of the Nova 2 Sonic meeting features: - Recording survives navigation: the Sonic engine is lifted into a global RecordingProvider (contexts/RecordingContext.tsx) mounted in _app.tsx, so a live meeting recording keeps running when leaving the meeting page. Streams are cleaned up on app-level unmount (fixes the previous stream leak). - Header recording indicator: audio pulse, elapsed time, link back to the active meeting, and a stop control usable from anywhere in the app. - Provisional transcript + summary persistence on the Meeting (sonicTranscript, sonicSummary, sonicTranscriptUpdatedAt), rehydrated when returning to the meeting; transcript persisted periodically while recording. - Discreet person detection: replaces the always-on detected-people bar with a marker (unconfirmed-count badge + transient "detected" hint + knocking popover) reused on the meeting page and in the header. - Server-side meeting summarizer (summarize-meeting Lambda + query, Sonnet 4.5) producing per-project accomplishments/tasks/blockers grounded in the transcript; suggested-projects bar + summary view. - Meeting context enrichment for Sonic: participants + open-project list at startup and cross-modal updates, suggest_project tool. - User prompt (Tools): per-context user background fed into the Sonic system prompt; /profile/tools tab with on-blur autosave. - Dev helper: copy-project-to-sandbox supports multiple projects + skip-images.
added 3 commits
September 22, 2026 21:12
The PR gate ran `npm run build` (tsc + next build), but amplify_outputs.json is
generated by the Amplify backend deploy and is git-ignored, so it is absent in
the CI checkout. tsc/next then fail with "Cannot find module
'@/amplify_outputs.json'". Amplify Hosting generates the real file at deploy
time; for the type-check/build gate we only need a type-satisfying placeholder.
Adds a step (after npm ci, before build) that writes a minimal placeholder ONLY
when the file is absent, so it never clobbers a real one. The shape mirrors the
fields the app reads (storage.buckets[].{name,bucket_name,aws_region}); the rest
is passed opaquely to Amplify.configure. Verified the placeholder compiles under
tsc --noEmit.
The backend type-check (tsc -p amplify/tsconfig.json) resolves $amplify/env/<name> via the tsconfig path .amplify/generated/env, which Amplify generates and git-ignores — so it's absent in CI and tsc fails with "Cannot find module '$amplify/env/...'". Add a step that writes a permissive stub (`export const env: any = process.env`) for every env module name the backend imports (grepped from source, so it auto-tracks new functions), only when absent. Real typings come from the Amplify build; this only unblocks the offline type-check gate.
Drop next build and the Amplify tsc type-checks from the PR gate. They import artifacts that only exist after an Amplify backend deploy (amplify_outputs.json, .amplify/generated/env/*), which are git-ignored and absent in a bare CI checkout — forcing placeholder hacks that add maintenance and can mask real type errors. The gate's real purpose is the lockfile/platform class that broke a past prod deploy, so it now runs just `npm ci` (clean Linux + Node 22) + lint. Full type-check/build against the real generated schema runs in the Amplify deploy and locally. Reverts the two placeholder steps.
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.
Summary
Stage 2 of the Nova 2 Sonic meeting features. The recording now survives navigation, is controllable from the header, persists its transcript + summary, and the person detection is far less intrusive.
Recording survives navigation
Header indicator
Provisional persistence
Discreet person detection
Server-side summarizer + context
User prompt (Tools)
Dev helper
Testing
Notes / follow-ups