Parent tracker: #62
Spec: docs/superpowers/specs/2026-05-21-edge-case-hardening-design.md
Milestone: P3
Depends on: P3.6
Goal
Fire findings for tokens stored or transmitted via client-accessible channels.
Acceptance criteria
New check IDs
token_in_local_storage
token_in_session_storage
token_in_url_path_or_fragment
client_secret_in_browser_code
Files touched
crates/sessionscope-classifier/src/client_storage.rs (new)
Fixture expectations
Audit-then-decide
token_in_local_storage, token_in_session_storage: high_confidence_misconfiguration, severity high for literal token-shape keys.
token_in_url_path_or_fragment: high_confidence_misconfiguration, severity high.
client_secret_in_browser_code: dynamic_review_required, severity high (review-required because file-path heuristic).
- Feed into the consolidated P4.8 audit.
Doc-update checklist
Parent tracker: #62
Spec:
docs/superpowers/specs/2026-05-21-edge-case-hardening-design.mdMilestone: P3
Depends on: P3.6
Goal
Fire findings for tokens stored or transmitted via client-accessible channels.
Acceptance criteria
token_in_local_storagefires whenlocalStorage.setItemwrites a token-shaped key.token_in_session_storagefires forsessionStorage.setItem.token_in_url_path_or_fragmentfires for URL builders embedding token-shaped keys in path segments or fragment identifiers (not query params — those remain covered by the existing detector).client_secret_in_browser_codefires when a literal that looks like a client secret (or an identifier namedclient_secret,clientSecret) appears in a file path matching client-side heuristics (e.g.,pages/,app/,src/components/,public/). Review-required since SessionScope cannot prove browser-only execution.New check IDs
token_in_local_storagetoken_in_session_storagetoken_in_url_path_or_fragmentclient_secret_in_browser_codeFiles touched
crates/sessionscope-classifier/src/client_storage.rs(new)Fixture expectations
localStorage.setItem('theme', 'dark')— confirm no fire.Audit-then-decide
token_in_local_storage,token_in_session_storage:high_confidence_misconfiguration, severityhighfor literal token-shape keys.token_in_url_path_or_fragment:high_confidence_misconfiguration, severityhigh.client_secret_in_browser_code:dynamic_review_required, severityhigh(review-required because file-path heuristic).Doc-update checklist
docs/USAGE.mdcheck catalog: four new IDs.docs/COVERAGE_MATRIX.md: four rows.CHANGELOG.mdunreleased entry.