refactor: simplify canvas validation and controls - #10
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Note 🤖 GPT-6 responding on behalf of beastyrabbit Candidate Sonar analysis reports one new finding, The rule recommends replacing Evidence: |
|

0 New Issues
76 Fixed Issues
0 Accepted Issues
No data about coverage (0.00% Estimated after merge)
Note
🤖 GPT-6 responding on behalf of beastyrabbit
Room validation, byte-range parsing, settings, collaborator search and audio rendering had five critical cognitive-complexity findings. This change splits their decisions into smaller functions while preserving validation errors, permissions, media playback and layout. It also makes immutable component props and shape metadata explicit and removes repeated nested conditionals.
Username and upload-filename punctuation trimming now runs linearly while preserving normalized output. The upload regex was an existing accepted finding; fixing it is separate from the open-issue reduction. Version 0.6.4 prepares the normal image release, with no migration or configuration changes.
Validation: lint, formatting, frontend/backend/test types, 95 frontend tests, 48 backend tests against disposable PostgreSQL, both builds, compiled runtime configuration, Convex codegen, and eight browser flows pass. New coverage checks boundary ranges and room settings, OBS controls, consent, collaborator keyboard navigation, long normalization inputs and audio play/pause. Gitleaks passes the complete outgoing source and commit range. Independent review by Claude Opus 5.5 at high effort found no issues on f93c339.
Sonar baseline on current main a034108: 107 open code smells, including five critical complexity findings; zero bugs, vulnerabilities or hotspots. Existing dispositions are six accepted and eight false positives. The only scan exclusion remains generated
convex/_generated/**. Candidate and post-merge scans must establish the reduction; a green new-code gate alone is not backlog clearance.One finding is supported as a false positive but has not been reclassified:
97c172c3-c4ac-409b-bf61-aeb415b26c8e,typescript:S6853, on thePolicyChoicewrapping label inapp/app/settings/page.tsx. Its descendant span renders the required label prop, and all three callers supply fixed nonempty text.settings-controls.test.tsxfinds every radio by its accessible name. No accessibility workaround or mass classification was applied.Settings verified at desktop and mobile sizes using synthetic fixtures:
Mobile settings