Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7c87277161
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| engineRef.current = new AudioEngine(); | ||
| await engineRef.current.startMic(); | ||
| setAnalyzer(engineRef.current.getAnalyzer()); |
There was a problem hiding this comment.
Retry mic startup instead of caching failed engine instance
When startMic() rejects (for example, permission denied or no input device), engineRef.current has already been set, so later clicks skip initialization and never call startMic() again. In that failure path the UI can still be marked active without a working microphone pipeline, and the user cannot recover without a full reload.
Useful? React with 👍 / 👎.
| const saved = localStorage.getItem('voxgrain_user_presets'); | ||
| return saved ? JSON.parse(saved) : []; |
There was a problem hiding this comment.
Guard preset hydration against invalid localStorage JSON
The initial userPresets state parses raw localStorage data without error handling, so any malformed or legacy value in voxgrain_user_presets throws during render and prevents the app from mounting. This should fall back to an empty preset list instead of crashing startup.
Useful? React with 👍 / 👎.
Motivation
AudioEngineand subsystem services in real time.Description
src/App.tsxthat implements the top-levelAppReact component and small internal UI components (LEDBar,WaveformSymbol,HelpOverlay).AudioEngine,BasinService,FMJService,CRISPRService,DirectorService, andNeuralSuitService, and exposed control functions includingstartEngine,updateSetting, andhandlePersonaGen.useState,useEffect,useRef) to update levels, agent activity, basin/sub-module states, and integrity effects; added looper functions (toggleRecording,removeLoop,toggleMute), Chain Lab playback (captureNode,triggerChain,playStep) and preset management (savePreset,deleteUserPreset).handleExportManifest).Testing
Codex Task