Charge And Explore
Search the build
Authors
- Steve3
Agents used
Skills used
- /claude1
- /code1
Creative ideas + design notes
55ae619 · 2026-09-13 · fix(smartcar): never send an invalid Connect mode (TK-10142)
Smartcar Connect accepts ONLY mode=live|simulated (docs default: live).
The provider defaulted to the literal "test", which is not a valid value,
so every authorize URL carried an invalid mode. Nobody caught it because
the existing connectUrl test never asserted mode at all — a positive-only
test that passed the whole time the value was wrong.
Normalize instead of forwarding: anything not exactly "simulated" resolves
to "live". Safe because connectUrl() is unreachable unless BOTH credentials
are set (server.ts:1261 returns {configured:false} first), so an unset
SMARTCAR_MODE can only ever apply on a deployment deliberately given keys.
Adds a NEGATIVE test proving the guard reddens on the injected old literal
(verified: 2 failures with the fault in, 0 after restore).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HXvqntqopFMBK4dJRm66tS
File tree
- .claude/scheduled_tasks.lock
- .deploy.conf
- .gitignore
- 5x/REPORT.md
- 5x/sweep-1.md
- PLAN.md
- README.md
- backend/src/core/activity-match.ts
- backend/src/core/charge-estimate.ts
- backend/src/core/charging-sessions.ts
- backend/src/core/history.ts
- backend/src/core/parked-periods.ts
- backend/src/core/stop-score.ts
- backend/src/core/tiers.ts
- backend/src/core/types.ts
- backend/src/core/vehicles.ts
- backend/src/providers/nrel-station-provider.ts
- backend/src/providers/overpass-places.ts
- backend/src/providers/provider.ts
- backend/src/providers/stripe-billing.ts
- backend/src/providers/telematics.ts
- backend/src/recommend.ts
- backend/src/server.ts
- backend/test/activity-match.test.ts
- backend/test/charge-estimate.test.ts
- backend/test/charging-sessions.test.ts
- backend/test/history.test.ts
- backend/test/parked-periods.test.ts
- backend/test/recommend.test.ts
- backend/test/stop-score.test.ts
- backend/test/telematics.test.ts
- backend/test/tiers.test.ts
- data/ev-stations-slim.csv
- docs/appstore-connect-submission.md
- docs/architecture.md
- docs/legal-and-appstore.md
- docs/tesla-support-form-submission.md
- docs/tesla-support-ticket.md
- ecosystem.config.cjs
- ios/README.md
- keys/com.tesla.3p.public-key.pem
- package-lock.json
- package.json
- public/charge-viz.js
- public/dashboard.html
- public/icon.svg
- public/index.html
- public/manifest.webmanifest
- public/privacy.html
- public/robots.txt
- public/sitemap.xml
- public/stats.html
- public/support.html
- public/sw.js
- public/terms.html
- scripts/cutover-when-ready.sh
- scripts/register-when-ready.sh
- scripts/tesla-await-and-register.sh
- support-form/s1-landing.png
- support-form/s2-after-email.png
- support-form/s3a-before.png
- support-form/s3b-typed.png
- support-form/s4a-after-captcha-click.png
- support-form/s5-challenge.png
- support-form/step1-open.cjs
- support-form/step2-login.cjs
- support-form/step3-retype.cjs
- support-form/step4-captcha.cjs
- support-form/step5-challenge-shot.cjs
- support-form/step6-sitekey.cjs
- tsconfig.json