CodeIssuesPull RequestsActionsSecurityInsights
✨ AI
More
Settings

Main #4096

MergedXLccantynz wants to mergemainclaude/build-email-service-3R7eoopened Apr 24, 20260/15 tasks
fix(inbound): never auto-create domains rows; case-insensitive domain resolve (#111)
CC LABS App committed 22d ago
13beb1c
fix(inbound): case-insensitive domain + mailbox lookup in the router (#110)
CC LABS App committed 22d ago
45d5800
feat(inbound): HTTP_HOST bind address so the webhook can be tailnet-only (#109)
CC LABS App committed 22d ago
0fb2f6a
feat(web): show a "new version available" prompt instead of requiring a manual hard-refresh (#108)
CC LABS App committed 23d ago
bb840c0
fix(nav): fail open on unknown role + feat(domains): move a domain to another workspace (#107)
CC LABS App committed 23d ago
cee0163
feat(mail): AlecRae⇄Vapron adapters — outbound relay provider + inbound webhook (#171) (#106)
CC LABS App committed 24d ago
694fce8
docs: correct the mail architecture — AlecRae rides on Vapron (kill the dedicated-mail-box fiction) (#105)
CC LABS App committed 24d ago
065ead6
fix(domains): normalize domain to lowercase + case-insensitive lookups (mailbox/send/receive) (#104)
CC LABS App committed 24d ago
9e7266c
docs: record the 2026-08-08 production deploy (c908fc4); tick go-live Phase 0 (#103)
CC LABS App committed 24d ago
e14258b
docs: add the canonical business-email go-live checklist (#102)
CC LABS App committed 24d ago
c908fc4
fix(dns): add a per-domain fix hint to Porkbun auth errors (#101)
CC LABS App committed 24d ago
f0660f9
feat(admin): make multi-platform business email come together — mailbox-aware inbox, setup wizard, workspace badges, nav de-clutter (#100)
CC LABS App committed 24d ago
e359680
feat(mta): MTA_RELAY_MODE overflow - send at full volume via relay while the cold IP warms in parallel (#99)
CC LABS App committed 24d ago
c3a09c0
docs: close issue #143 to the archive - the e2e suite now executes in CI (PR #96) (#98)
CC LABS App committed 24d ago
288e308
ci: execute the e2e API suite against a live API on every push (#143) (#96)
CC LABS App committed 24d ago
4f93437
fix(honesty): eliminate the fabricated-output batch - real implementations or honest refusals at ~16 sites (#166) (#97)
CC LABS App committed 24d ago
3ba7dd0
feat(inbound): emit email.received events + webhooks for mail arriving on our own MX (#169, bounded half) (#95)
CC LABS App committed 24d ago
36515b7
fix(spine): close the receive chain's six breaks + send-path traps found by the 2026-08-07 spine audit (#164, #165) (#94)
CC LABS App committed 25d ago
2555afa
docs: restructure CLAUDE.md into a lean operating doc; archive full history (#93)
CC LABS App committed 25d ago
e80f344
chore: allow gh pr merge/ready and gh read commands without prompting
ccantynz-alt committed 26d ago
22945bb
docs: record the 2026-08-06 production deploy; close issue #104
ccantynz-alt committed 26d ago
2203514
Merge audit/production-readiness-2026-07-28: issues #120-#163
CC LABS App committed 26d ago
f9d1528
fix(ci): make the dependency audit actually audit; correct four SOC 2 attestations (#161)
ccantynz-alt committed 27d ago
db97082
docs: record #159/#160 as fixed; tidy the disabled scripts endpoint
ccantynz-alt committed 27d ago
6417875
fix(warmup): make adaptive safety actually fire, on every send path, in recipients (#159)
ccantynz-alt committed 27d ago
b1989aa
fix(security): encrypt DKIM private keys at rest (#160)
ccantynz-alt committed 27d ago
26d7536
docs: record the 2026-08-05 production-readiness audit (issues #155-160) + 115-commit prod-stale finding
ccantynz-alt committed 27d ago
dd8ff15
fix(ops): box-deploy must not restart the emergency-stopped MTA; drift check must see IPv6 binds
ccantynz-alt committed 27d ago
8e6dd5c
fix(security): unscanned attachment is not a clean verdict
ccantynz-alt committed 27d ago
f86e212
fix(send): derive compliance unsubscribe/address from the real body, not hardcoded false
ccantynz-alt committed 27d ago
4db7316
fix(scripts): disable RCE via /scripts/:id/test new Function() escape
ccantynz-alt committed 27d ago
f09370d
fix(db): correct out-of-order migration journal that would skip 0008-0010 on next deploy
ccantynz-alt committed 27d ago
1a0557b
docs: regenerate route-coverage.md (was 3+ weeks stale while listed as authoritative)
ccantynz-alt committed 27d ago
677098b
fix(web): make all legal pages publicly reachable; remove footer links to nonexistent pages
ccantynz-alt committed 27d ago
8677c04
fix(ui): define the accent and text-text colour vocabularies; stop the attachments header claiming virus scanning
ccantynz-alt committed 27d ago
189aa8a
fix(health): MTA probe verifies a worker is consuming the queue, not just that the queue is readable
ccantynz-alt committed 27d ago
315b40d
fix(ui): define the 573 colour utilities the app was already using
ccantynz-alt committed 28d ago
b731cb3
fix(inbound): close the open relay in the receiver, before it is deployed
ccantynz-alt committed 28d ago
cfa89ee
docs: record the business-email path, and #152/#153/#154
ccantynz-alt committed 28d ago
827ad63
fix(send): unify the pre-send gate across every producer (#151)
ccantynz-alt committed 28d ago
c9b7353
feat(mailboxes): mailbox management UI + PATCH endpoint
ccantynz-alt committed 28d ago
603f8d3
fix(inbound): file quarantined mail into spam instead of the user's inbox
ccantynz-alt committed 28d ago
1d85a07
docs: session pause — resume point at the top of NEXT ACTIONS
ccantynz-alt committed Jul 29, 2026
86f502d
docs: reopen+refix #124 on the agent builder; log #151 (producers skipping the gates)
ccantynz-alt committed Jul 29, 2026
c756892
fix(agent): header injection on the agent send path (issue #124, second builder)
ccantynz-alt committed Jul 29, 2026
906a6ce
docs: record #76(c) as fixed — both label systems were write-only
ccantynz-alt committed Jul 29, 2026
6d122c0
fix(labels): unify the two label systems and make labels readable at all (#76c)
ccantynz-alt committed Jul 29, 2026
ac75a52
docs: record the route-header mount-path fix across all six files
ccantynz-alt committed Jul 29, 2026
2cece2a
fix(docs): route headers stated mount paths that did not exist (#73k, #74h, #75f)
ccantynz-alt committed Jul 29, 2026
c969a87
docs: record #75(d) as fixed, noting both halves were understated
ccantynz-alt committed Jul 29, 2026
d24da87
fix(scheduling): conflict window looked at the wrong date; meeting type was never classified
ccantynz-alt committed Jul 29, 2026
85b00f4
docs: record #75(b) and #75(c) as fixed
ccantynz-alt committed Jul 29, 2026
1dd66e5
fix(sentiment): repair trends query and two more mismatched cursors (issue #75b, #75c)
ccantynz-alt committed Jul 29, 2026
26598be
docs: record #73(a) and the #74(g) cursor half as fixed
ccantynz-alt committed Jul 29, 2026
7beb42e
fix(meetings,pagination): stop persisting fabricated summaries; correct keyset cursors
ccantynz-alt committed Jul 29, 2026
77e8f59
docs: record #73(e)(f) and #76(g) as fixed
ccantynz-alt committed Jul 29, 2026
15f0ff6
fix(delegation,programs): enforce expiry and reviewer authz; stop dry-runs polluting stats
ccantynz-alt committed Jul 29, 2026
ce99116
docs: record #76(b) fixed and #76(d) already-fixed-but-listed-open
ccantynz-alt committed Jul 29, 2026
9acba63
fix(inbox,dns): real thread identity for mutes; honest Vapron DNS failure
ccantynz-alt committed Jul 29, 2026
87ec7e4
docs: issue #111 fully closed — Redis client pooling
ccantynz-alt committed Jul 29, 2026
2e62591
refactor(redis): one shared client, closed once (closes issue #111)
ccantynz-alt committed Jul 29, 2026
4628d9b
docs: record issues #149 (split-box Redis) and #150 (unrunnable preflight)
ccantynz-alt committed Jul 29, 2026
8b03082
fix(infra): shared Redis over the tailnet, and make preflight actually runnable
ccantynz-alt committed Jul 29, 2026
a292717
docs: issue #113 fully closed — (b) SMTPUTF8/punycode and (c) MIME bounds
ccantynz-alt committed Jul 28, 2026
bec1168
fix(mta): punycode domains and detect SMTPUTF8 need (issue #113b)
ccantynz-alt committed Jul 28, 2026
6cac46f
fix(mime): bound multipart nesting and width (issue #113c)
ccantynz-alt committed Jul 28, 2026
cefc9a0
docs: record the DNS and AI halves of issue #111 as fixed
ccantynz-alt committed Jul 28, 2026
80348f0
fix(ai): handle Claude 429/529 explicitly instead of failing over silently
ccantynz-alt committed Jul 28, 2026
cee4651
fix(mta,inbound): bound every DNS lookup (issue #111, DNS half)
ccantynz-alt committed Jul 28, 2026
f9f0b2d
docs: record issue #113(a) as fixed — three charset bugs, not one
ccantynz-alt committed Jul 28, 2026
5efd70c
fix(email-parser): honour declared charset on import (issue #113a)
ccantynz-alt committed Jul 28, 2026
a2335b5
fix(dns): customer DMARC reports could never be delivered (issue #148)
ccantynz-alt committed Jul 28, 2026
3477a0e
docs: record the provider 429-backoff half of issue #111 as fixed
ccantynz-alt committed Jul 28, 2026
97a5775
fix(sync): back off when Gmail/Outlook rate-limit us (issue #111, first half)
ccantynz-alt committed Jul 28, 2026
11382df
fix(tracking): throttle event recording — the public endpoints amplified into customer webhooks
ccantynz-alt committed Jul 28, 2026
ac43afd
docs: record issues #144-146 (DKIM fail-open, open redirect, unrun services)
ccantynz-alt committed Jul 28, 2026
2f7412e
fix(tracking): close the click-tracking open redirect
ccantynz-alt committed Jul 28, 2026
5db1f32
fix(mta): refuse to send unsigned mail — DKIM signing was failing open
ccantynz-alt committed Jul 28, 2026
95651fe
docs: record issues #141-143 (fabricated virus verdict, random rule test, dead e2e suite)
ccantynz-alt committed Jul 28, 2026
6b8ee25
fix(attachments,rules): stop fabricating a virus verdict; make rule-testing real
ccantynz-alt committed Jul 28, 2026
6223b67
fix(lint,test): clear the four lint errors and a CI flake in the dunning tests
ccantynz-alt committed Jul 28, 2026
af83ea9
docs: record the warmup-ramp and API_URL findings (issues #139, #140)
ccantynz-alt committed Jul 28, 2026
93da779
fix(deliverability): enforce the IP warmup ramp and require API_URL in production
ccantynz-alt committed Jul 28, 2026
0f3f03f
docs: record the false-automation empty states (#138)
ccantynz-alt committed Jul 28, 2026
316796f
fix(web): six empty states promised automation that will never happen
ccantynz-alt committed Jul 28, 2026
95baebb
docs: record the ignored-degradation findings (#137)
ccantynz-alt committed Jul 28, 2026
6f82013
fix: honest degradation signals the UI ignored — placeholder text shown as AI output
ccantynz-alt committed Jul 28, 2026
4beedbd
docs: record the envelope/contract sweep (#136)
ccantynz-alt committed Jul 28, 2026
713feed
fix: response-envelope and request-contract mismatches found by a sweep
ccantynz-alt committed Jul 28, 2026
9eb4cd9
docs: record the AI-quota-on-reads finding (#135)
ccantynz-alt committed Jul 28, 2026
bd92f28
fix: AI quota was charged for reads that make no AI call
ccantynz-alt committed Jul 28, 2026
e117a6a
docs: record the Sent-page 422 (#133) and the fabricated-fallback sweep (#134)
ccantynz-alt committed Jul 28, 2026
13c2feb
fix(web): delete dead API surfaces that fabricated user data
ccantynz-alt committed Jul 28, 2026
a06b578
docs: tick off Sent; record that the audit missed a rejected request
ccantynz-alt committed Jul 28, 2026
2174ef9
fix: the Sent page 422'd on every load, and its "Opened" badge was always false
ccantynz-alt committed Jul 28, 2026
018ae31
docs: record the auth-mount gaps (#131) and correct the dispatcher estimate (#132)
ccantynz-alt committed Jul 28, 2026
6ae76d1
fix: five routers 401'd on every request — no authMiddleware was mounted
ccantynz-alt committed Jul 28, 2026
b1d028f
docs: record the unbounded ingestion AI spend (#130)
ccantynz-alt committed Jul 28, 2026
d217837
fix: bound AI spend on the mail-ingestion path (unbounded per-message cost)
ccantynz-alt committed Jul 28, 2026
3348b5c
docs: Phase 1 complete — all seven broken journeys closed
ccantynz-alt committed Jul 28, 2026
b94097e
fix: repair the Integrations page — the last broken journey
ccantynz-alt committed Jul 28, 2026
004df2e
docs: tick off Security Overview in the journey audit
ccantynz-alt committed Jul 28, 2026
63ca150
fix: repair the Security Center Overview tab (404'd for every user)
ccantynz-alt committed Jul 28, 2026
36c7528
docs: record the E2EE fabrication (#129)
ccantynz-alt committed Jul 28, 2026
cd9b1c1
fix(security): stop the server minting encryption keys; remove the false E2EE claim
ccantynz-alt committed Jul 28, 2026
402ca99
docs: record iteration 4 (MTA receiver root cause #128, credential stuffing #117)
ccantynz-alt committed Jul 28, 2026
298a740
feat(security): per-account failed-login tracking + credential-stuffing detection (#117)
ccantynz-alt committed Jul 28, 2026
0d99cd8
fix(mta): the outbound service should never have listened on port 25 (#105 root cause)
ccantynz-alt committed Jul 28, 2026
579244a
docs: record the open-relay and Return-Path findings (#127, #82a)
ccantynz-alt committed Jul 28, 2026
851829b
fix(mta): close the open relay (#105) — it was never actually fixed
ccantynz-alt committed Jul 28, 2026
e2cbf11
feat(mta): VERP return path so async bounces actually reach suppression (#82a)
ccantynz-alt committed Jul 28, 2026
e0cc476
docs: record the spam-protection pass (issues #117, #124-126)
ccantynz-alt committed Jul 28, 2026
cb92310
feat(security): send-volume anomaly detection; close connected-account abuse gaps
ccantynz-alt committed Jul 28, 2026
57951f7
fix(security): close header injection on the send path; wire the outbound spam gate
ccantynz-alt committed Jul 28, 2026
741746a
fix: repair the Achievements journey; stop rendering invented badges
ccantynz-alt committed Jul 28, 2026
26f41b8
docs: correct stale claims found by the 2026-07-28 audit
ccantynz-alt committed Jul 28, 2026
bcc272c
feat: make Drafts real — persistence, list filter, reopen without data loss
ccantynz-alt committed Jul 28, 2026
49dbae8
fix: repair the Files journey; enforce storage quota, which nothing did
ccantynz-alt committed Jul 28, 2026
1b2a2c9
fix: repair the Translation journey end to end; stop quota burn on reads
ccantynz-alt committed Jul 28, 2026
5ddf75d
fix(web): make PlanGate derive its tier from FEATURE_PLANS
ccantynz-alt committed Jul 28, 2026
3f7dea4
fix: repair @alecrae/ai-engine packaging; restore 46 non-executing tests
ccantynz-alt committed Jul 28, 2026
08dbedc
docs: full 49-journey ground-truth audit + build plan
ccantynz-alt committed Jul 22, 2026
d557bad
feat: GDPR Article 15 self-service export; fix Google OAuth test-user doc gap
ccantynz-alt committed Jul 20, 2026
86fd5ca
feat: dunning notification emails, real Vapron transport, real file/voice storage
ccantynz-alt committed Jul 20, 2026
ec08f85
docs: record round 2 of the audit backlog fixes (9 more issues closed)
ccantynz-alt committed Jul 20, 2026
57fd3e1
fix: handle Outlook delta-query deletions (issue #113e)
ccantynz-alt committed Jul 20, 2026
3b65b05
fix: prevent duplicate Stripe subscriptions on repeat checkout
ccantynz-alt committed Jul 20, 2026
4dc6405
docs: warn that JWT_SECRET rotation breaks OAuth token decryption
ccantynz-alt committed Jul 20, 2026
b078ae4
feat: add live service/port drift detection (issue #112)
ccantynz-alt committed Jul 20, 2026
5b38015
fix: wire the real bounce classifier into delivery events (issue #113d)
ccantynz-alt committed Jul 20, 2026
8312dce
fix: anti-injection framing for lib/ai.ts's aiComplete() (issue #118)
ccantynz-alt committed Jul 20, 2026
53c270b
docs: verify migration 0008's unique constraint is safe on production
ccantynz-alt committed Jul 20, 2026
a5ca622
fix: delegation cross-workspace/cross-account gaps + push re-parent
ccantynz-alt committed Jul 20, 2026
ca60d3f
fix: apply SSRF guard to webhook delivery, integration test, transcription
ccantynz-alt committed Jul 20, 2026
0bfdc12
docs: record the incident, the full audit, and remaining findings
ccantynz-alt committed Jul 20, 2026
b4d5f97
fix: add Stripe webhook idempotency
ccantynz-alt committed Jul 20, 2026
a97fd56
fix: account deletion honors a real 30-day soft-delete window
ccantynz-alt committed Jul 20, 2026
93d6ac2
feat: add process-wide AI spend circuit breaker
ccantynz-alt committed Jul 20, 2026
2345659
feat: add PII redaction before the automatic AI triage call
ccantynz-alt committed Jul 20, 2026
94729b2
fix: anti-injection framing for all ai-writing.ts prompts
ccantynz-alt committed Jul 20, 2026
4d69c66
fix: DB-level dedup constraint + apply Gmail-reported deletions locally
ccantynz-alt committed Jul 20, 2026
84e48c3
fix: wire the built-and-tested DSN bounce processor into inbound
ccantynz-alt committed Jul 20, 2026
e798ac2
fix: unsubscribe now actually writes to suppression, not just analytics
ccantynz-alt committed Jul 20, 2026
5b390a2
fix: make offline compose actually queue and send, not just claim to
ccantynz-alt committed Jul 20, 2026
e19abb2
fix: add per-IP abuse throttling to the MTA SMTP listener
ccantynz-alt committed Jul 20, 2026
5208e42
fix: wire TlsManager into the MTA — was hardcoded off entirely
ccantynz-alt committed Jul 20, 2026
299fc32
fix: scope gamification leaderboard to caller's account
ccantynz-alt committed Jul 20, 2026
4f2821a
fix: close cross-tenant passkey deletion in account.ts
ccantynz-alt committed Jul 20, 2026
1d7f56b
fix: close chat.ts IDOR — every channel route trusted the URL alone
ccantynz-alt committed Jul 20, 2026
92e427f
docs: record the Jarvis production deploy + drift-check timer going live
ccantynz-alt committed Jul 19, 2026
4260525
fix: deploy-drift-check bugs found during first live install on Jarvis
ccantynz-alt committed Jul 19, 2026
614ddff
feat: wire email.received webhook event, fix event-type naming mismatch
ccantynz-alt committed Jul 19, 2026
51c763e
fix: stop files/upload and voice-message record silently losing data
ccantynz-alt committed Jul 19, 2026
6e0d3b8
docs: enable branch protection on main, record issue #66 follow-up
ccantynz-alt committed Jul 19, 2026
666e8e3
feat: deploy-drift detection — expose commit SHA + scheduled drift check
ccantynz-alt committed Jul 19, 2026
a96d0cc
docs: record issue #102 (AI usage quotas) and close out this session's pass
ccantynz-alt committed Jul 19, 2026
da4b5f2
feat: add AI usage quotas — no ceiling on Claude spend previously existed
ccantynz-alt committed Jul 19, 2026
0af5b41
docs: record issues #98-101 — voice-clone gating, ai-writing honesty, scope audit, dictation UI
ccantynz-alt committed Jul 19, 2026
de22f64
feat: wire dictation into compose — "reply by voice" is now real
ccantynz-alt committed Jul 19, 2026
e8846ef
fix: grant 6 more missing baseline scopes — agent, collaborate, dictation, templates, translate, programs, calendar, analytics:read
ccantynz-alt committed Jul 19, 2026
6bed16c
fix: ai-writing.ts — honest degraded flag instead of fake confidence on fallback
ccantynz-alt committed Jul 19, 2026
a0859ce
fix: voice-clone plan gating + honest AI-unavailable response
ccantynz-alt committed Jul 19, 2026
1ba8d83
docs: record issues #93-96 — rule engine, semantic-search indexing, ai-intelligence fakes, local grammar
ccantynz-alt committed Jul 19, 2026
6254b23
fix: ai-intelligence.ts writing-coach + predictive-actions — real Claude calls
ccantynz-alt committed Jul 19, 2026
599a12e
feat: wire the local WebGPU grammar engine into compose
ccantynz-alt committed Jul 19, 2026
59ba341
fix: auto-index new mail into semantic search
ccantynz-alt committed Jul 19, 2026
d0dc74d
feat: build the email-rules execution engine — rules previously never ran
ccantynz-alt committed Jul 19, 2026
815aa97
docs: record issues #88-92 — state persistence, snooze, undo-send, DNS page, 5-router accountId bug
ccantynz-alt committed Jul 19, 2026
b40a86f
fix: broken accountId context lookup in 4 more Tier-7 AI routers
ccantynz-alt committed Jul 19, 2026
5235cd2
fix: sentiment-timeline.ts — real Claude analysis + broken accountId lookup
ccantynz-alt committed Jul 19, 2026
ab5db74
fix: encrypt OAuth tokens + IMAP/SMTP passwords at rest (issue #80)
ccantynz-alt committed Jul 19, 2026
0572880
fix: close the send-time engagement tracking loop
ccantynz-alt committed Jul 19, 2026
e3c8f82
fix: domains page shows real DNS records; translate.ts cross-tenant cache leak
ccantynz-alt committed Jul 19, 2026
a9d88f9
fix: wire up undo-send — registerUndoable had zero callers
ccantynz-alt committed Jul 19, 2026
0a78299
fix: snooze end to end — missing list endpoint, metadata clobbering, no resurface
ccantynz-alt committed Jul 19, 2026
d9fa34b
fix: real read/starred/folder state for emails — archive/delete/star now persist
ccantynz-alt committed Jul 19, 2026
fc0e1ed
fix: grant inbox:*/recall:* baseline session scopes (issue #45/#49 class)
ccantynz-alt committed Jul 19, 2026
632546b
docs: record the 2026-07-19 audit + Big Five fixes (issues #79, #84-87)
ccantynz-alt committed Jul 19, 2026
fec610d
fix: enforce plan tiers server-side for Pro-gated AI features
ccantynz-alt committed Jul 19, 2026
e5b7caf
fix: make workspace invitations actually reachable end to end
ccantynz-alt committed Jul 19, 2026
d509e53
fix: Gmail/Outlook sync accountId bug, background re-sync, honest security data
ccantynz-alt committed Jul 19, 2026
b9b44ef
docs: known issue #83 — VAPRON_API_KEY wrong scheme (vpk_ vs btf_sk_), all Vapron integrations 401 in prod
ccanty labs committed Jul 14, 2026
fab6112
docs: record Vapron DNS provider ship + deliverability pre-send gate (issue #82)
ccanty labs committed Jul 14, 2026
425ce0a
test: raise timeout on first snooze.js import test (flaked 2x under parallel load)
ccanty labs committed Jul 14, 2026
c1acc7d
feat(dns): Vapron DNS auto-config provider — zero-credential record push
ccanty labs committed Jul 14, 2026
4a1b1f8
docs: ground-truth pass — deploy drift incident, Redis reality, new known issues 78-81
ccanty labs committed Jul 14, 2026
c3c2f82
feat(web): add Domains to admin sidebar nav
ccanty labs committed Jul 14, 2026
1b6d2b6
fix(web): founder bypass in PlanGate and session diagnostics on settings
ccanty labs committed Jul 14, 2026
f3f86e4
fix(api): reconcile owner plan on /me and switch-workspace, expose isFounder and scopes
ccanty labs committed Jul 14, 2026
870d691
docs: refresh DEVOPS_TRACKER coverage snapshot after wiring campaign
ccanty labs committed Jul 13, 2026
7a16aa3
feat: UI wiring tranche 5 — settings cluster + semantic search (75% -> 78% floor)
ccanty labs committed Jul 13, 2026
cddce99
feat: UI wiring tranche 4 — inbox/compose power features + 3 domains (68% -> 75%)
ccanty labs committed Jul 13, 2026
b718ebb
feat: UI wiring tranche 3 — intelligence/analytics tail, 5 domains (61% -> 68%)
ccanty labs committed Jul 13, 2026
b3d7f47
feat: UI wiring tranche 2 — AI-intelligence cluster, 5 domains, ~55 endpoints (53% -> 61%)
ccanty labs committed Jul 13, 2026
b34f2e9
feat: UI wiring tranche 1 — 5 domains, ~56 endpoints (46% -> 53% coverage)
ccanty labs committed Jul 13, 2026
d96d082
fix: eqeqeq lint errors in godaddy.ts — CI lint (and everything gated on it) red since 2026-07-04
ccanty labs committed Jul 13, 2026
0154bbf
docs: Phase 0 COMPLETE — PTR changed to smtp.alecrae.com, FCrDNS verified
ccanty labs committed Jul 13, 2026
9b9501a
docs: Phase 0 mail DNS executed — smtp.alecrae.com is the MTA identity
ccanty labs committed Jul 13, 2026
0b392e8
docs: add DNS end-state roadmap — staged Cloudflare exit onto Vapron DNS
ccanty labs committed Jul 13, 2026
6d60148
docs: record mail-box decision (Option A: 158 stays as dedicated mail box)
ccanty labs committed Jul 13, 2026
4dc361e
docs: disambiguate box naming — 158 = 149.28.119.158 (old Vapron box)
ccanty labs committed Jul 13, 2026
adc140a
docs: full 2026-07-13 audit — Bible overhaul, mail plan, postmortem, infra doc sweep
ccanty labs committed Jul 13, 2026
a8437d4
fix: repair 3 typecheck breaks that kept main red since 2026-07-04
ccanty labs committed Jul 13, 2026
7b3e8c6
docs: record 2026-07-07..11 outage root cause + resolution in DEVOPS_TRACKER
ccanty labs committed Jul 11, 2026
35dc6d4
feat: automated route-coverage tracker + kill orphaned apps/admin
ccanty labs committed Jul 10, 2026
e3a2ebf
fix: first full codebase audit — ~30 bugs across 16 files
ccanty labs committed Jul 4, 2026
0947895
fix: inbox error boundary + workspace domain filter race condition
ccanty labs committed Jul 4, 2026
54b1165
Merge pull request #90 from ccantynz-alt/claude/admin-workspace-account-limit-gm2wza
CC LABS App committed Jul 4, 2026
be2550b
fix: plan tier never reached the UI, plus pre-existing CI lint/type errors
Claude committed Jul 3, 2026
6ee0009
feat: multi-workspace support — one login, several separate businesses
Claude committed Jul 3, 2026
7a6697c
fix(documents): wire AI-assist endpoint to Claude via aiComplete()
Craig Canty committed Jul 2, 2026
da2614b
fix(documents): implement real markdown and HTML document export
Craig Canty committed Jul 2, 2026
03d8496
fix(billing): unify quota enforcement to Redis counter as single source of truth
Craig Canty committed Jul 2, 2026
86655a3
fix(billing): wire processExpiredGrace() on a daily interval at startup
Craig Canty committed Jul 2, 2026
d5f0a73
fix(billing): normalize API plan tier names to frontend PlanTier values
Craig Canty committed Jul 2, 2026
7929821
fix(auth): unblock /dpa/sign and /forgot-password from auth middleware
Craig Canty committed Jul 2, 2026
7f45091
fix(auth): issue admin:read and admin:write scopes to owner/admin roles
Craig Canty committed Jul 2, 2026
4f4bd66
fix(security): verify WebAuthn assertion signature in passkey login
Craig Canty committed Jul 2, 2026
0726c57
feat: wire Postmaster Tools v1 reputation + v2 compliance monitoring
Craig Canty committed Jul 1, 2026
af713ea
docs: ground-truth CLAUDE.md update from 2026-07-01 audit
Craig Canty committed Jul 1, 2026
a7f915f
fix: encrypt meeting tokens with AES-256-GCM (closes known issue #29)
Craig Canty committed Jul 1, 2026
8c2740a
chore(security): stop tracking .env.production/.env.test in git
Craig Canty committed Jul 1, 2026
c29a90c
Merge pull request #89 from ccantynz-alt/claude/ecstatic-hopper-77iamv
CC LABS App committed Jun 20, 2026
8f81c87
fix: use strict equality in ai-triage page (eqeqeq lint rule)
Claude committed Jun 20, 2026
a0af8fc
feat: AI Triage page + fix Inbox Agent broken endpoint + docs sweep (part 2)
Claude committed Jun 20, 2026
fc0beed
docs: sweep all infra docs to Vapron-only, remove Vercel/Fly.io/CF Pages
Claude committed Jun 20, 2026
8b2f9c5
fix: prevent stale-page caching that broke platform after deploys
Claude committed Jun 20, 2026
fc9642e
Merge pull request #88 from ccantynz-alt/claude/ecstatic-hopper-77iamv
CC LABS App committed Jun 20, 2026
bc6ae10
feat: DNS auto-configuration for Cloudflare, GoDaddy, and Porkbun
Claude committed Jun 20, 2026
692525c
docs(claude): record issues #56 and #57 as fixed in PR #87
Claude committed Jun 20, 2026
722875a
Merge pull request #87 from ccantynz-alt/claude/ecstatic-hopper-77iamv
CC LABS App committed Jun 20, 2026
cc9ca9b
feat(domains): DNS setup wizard with provider-specific instructions and auto-polling
Claude committed Jun 20, 2026
666b368
fix(domains): add loading state and inline result feedback to Verify Now button
Claude committed Jun 20, 2026
b434aa3
docs(claude): Vapron Type 2 migration complete — all DNS verified, smoke test passed
Claude committed Jun 20, 2026
49bd46a
Merge pull request #86 from ccantynz-alt/claude/ecstatic-hopper-77iamv
CC LABS App committed Jun 20, 2026
4e14cb9
fix(dns): remove non-null assertion to satisfy no-non-null-assertion lint rule
Claude committed Jun 20, 2026
5c24db5
fix(dns): handle split DKIM TXT records from providers like Porkbun
Claude committed Jun 20, 2026
3638b5d
fix(docs): correct Step 8 smoke test curl format in vapron-migration-type2
Claude committed Jun 20, 2026
8baa93b
Merge pull request #85 from ccantynz-alt/claude/ecstatic-hopper-77iamv
CC LABS App committed Jun 20, 2026
bb58e02
fix: repair test mocks broken by connected-account fast-path
Claude committed Jun 20, 2026
9183341
fix: route connected Gmail/Outlook sends through provider API, bypass MTA domain check
Claude committed Jun 20, 2026
f215829
fix: remove all env-derived data from log output to clear CodeQL taint alert
Claude committed Jun 20, 2026
8eab13a
fix: mask ACCOUNT_ID in log output to resolve CodeQL sensitive-data alert
Claude committed Jun 20, 2026
34e6263
docs: add Vapron Type 2 migration runbook and seed-vapron-templates script
Claude committed Jun 20, 2026
75f3781
Merge pull request #84 from ccantynz-alt/claude/ecstatic-hopper-77iamv
CC LABS App committed Jun 20, 2026
e29f02f
fix: replace != with !== to satisfy eqeqeq lint rule in import routes
Claude committed Jun 19, 2026
3af5855
fix: resolve no-empty-function lint error in workspace page catch handler
Claude committed Jun 19, 2026
c7cfdc2
fix: go-live audit — Gmail/Outlook import, scope bugs, sidebar 404s, auth refresh
Claude committed Jun 19, 2026
6782df5
Merge pull request #83 from ccantynz-alt/claude/compassionate-johnson-wx8jgb
CC LABS App committed Jun 18, 2026
1787428
fix(ui): remove duplicate onBodyChange declaration in compose-editor
Claude committed Jun 17, 2026
765cd56
Merge remote-tracking branch 'origin/claude/compassionate-johnson-wx8jgb' into worktree-agent-ad66dda893bc71a5c
Claude committed Jun 17, 2026
250f471
feat: dashboard overhaul — plan gating, 8 new product pages, sidebar reorganization, AI visibility
Claude committed Jun 17, 2026
b5ebfee
docs(claude): record issue #51 dashboard gap fix, update session status + timestamp
Claude committed Jun 17, 2026
5b5cf22
feat(dashboard): plan-gated product pages + professional sidebar overhaul
Claude committed Jun 17, 2026
9d5f412
Merge pull request #82 from ccantynz-alt/claude/elegant-wozniak-yd2br4
CC LABS App committed Jun 17, 2026
88c7c29
fix(domains): crash-proof DomainCard and mapDomain against unexpected status values
Claude committed Jun 16, 2026
121e2df
fix: DNS records modal — tap-to-select values, Copy button with visual confirmation
Claude committed Jun 16, 2026
af3c61a
fix: correct Domain.status field name mismatch (API returns status, not verificationStatus)
Claude committed Jun 16, 2026
623e3ae
docs: record issues #48-50 and update session status
Claude committed Jun 16, 2026
1ca4a6b
fix: crash-causing Box as=option, Automations scope errors, and auth bypass
Claude committed Jun 16, 2026
ba9c47d
fix(web): fix React hydration error #418 in QuickReply
Claude committed Jun 16, 2026
d79ec45
docs(claude): update status — PRs #80+#81 merged, 9 new UI pages live
Claude committed Jun 16, 2026
f04e80b
Merge pull request #81 from ccantynz-alt/feat/missing-ui-pages-batch2
CC LABS App committed Jun 16, 2026
83e739f
feat(web): add A/B Testing page
Claude committed Jun 16, 2026
c22e407
feat(web): add Documents page (AlecRae Docs replacement)
Claude committed Jun 16, 2026
317c97e
Merge pull request #80 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 16, 2026
f3792d4
docs(claude): record fixes #43-47 (hydration, MTA port, grammar, DNS modal, UI pages)
Claude committed Jun 16, 2026
76b75f6
feat(web): add Team Chat page
Claude committed Jun 16, 2026
83d2127
feat(web): add Mail Merge page with campaign management
Claude committed Jun 16, 2026
e16ab7a
feat(web): add Shared Inboxes and Delegation page
Claude committed Jun 16, 2026
7c7b86a
feat(web): add Smart Folders page with full CRUD
Claude committed Jun 16, 2026
e9ebe84
feat(compose+domains): wire AI grammar checking + DNS records modal
Claude committed Jun 16, 2026
c10c7d4
Merge pull request #79 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 16, 2026
8f20a01
fix(mta): use caught error in warn message (no-unused-vars)
Claude committed Jun 16, 2026
cd03381
Merge pull request #78 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 16, 2026
2836254
fix(mta): make health server non-fatal, default port 8080→8082
Claude committed Jun 16, 2026
b9443ef
Merge pull request #77 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 16, 2026
a7fc642
fix(web): fix navigator.onLine hydration mismatch (React error #418)
Claude committed Jun 16, 2026
5ea2110
Merge pull request #76 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 15, 2026
22732a9
Merge branch 'main' into claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 15, 2026
5cef6bc
docs(infra): update DNS zone + morning-setup for box deployment + Resend relay
Claude committed Jun 15, 2026
5b3d7db
chore: fix stale Vienna comment + document alecrae.com gateway routing
Claude committed Jun 15, 2026
0584d98
fix(api): graceful 503 when Redis unavailable on email send + CLAUDE.md status update
Claude committed Jun 15, 2026
ae9ae7d
fix(infra): fix env template + docs for MTA/Redis/Resend on the box
Claude committed Jun 15, 2026
65af3f4
fix(ui): guard navigator.platform access in QueryConsole for SSR
Claude committed Jun 15, 2026
78fdb1e
docs: update CLAUDE.md — mark issues #41/#29 fixed, update status + timestamp
Claude committed Jun 15, 2026
42c32e6
fix(api): resolve ESLint errors in health.ts breaking CI
Claude committed Jun 15, 2026
7b4c8d2
fix: unmount warmup route + add morning setup runbook for Craig
Claude committed Jun 15, 2026
6f5556d
feat: enable warmup route + fix health detailed DB probe
Claude committed Jun 15, 2026
72efef4
fix(web): remove react-hooks/exhaustive-deps eslint-disable comment
Claude committed Jun 15, 2026
47a6732
feat(web): add indeterminate progress bar animation to Tailwind config
Claude committed Jun 15, 2026
dbd4463
fix(onboarding): wire Go to inbox CTA to handleGoToInbox handler
Claude committed Jun 15, 2026
b32067c
feat: smart startup health check + real onboarding progress
Claude committed Jun 15, 2026
2d4b37e
feat(ai): auto-triage every incoming email with Claude Haiku
Claude committed Jun 15, 2026
4eca12d
fix(sync): exactOptionalPropertyTypes — conditionally spread receivedAt
Claude committed Jun 15, 2026
79815bb
fix(sync): correct ReceivedAddress shape — use address field not email
Claude committed Jun 15, 2026
ee9ee1e
fix: wire Gmail/Outlook sync to DB, remove Vercel, clean up for Vapron
Claude committed Jun 15, 2026
518f868
Merge pull request #75 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 15, 2026
062918a
fix(infra): fix env template + docs for MTA/Redis/Resend on the box
Claude committed Jun 15, 2026
d8592b9
Merge pull request #74 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 15, 2026
4a566fd
fix(ui): guard navigator.platform access in QueryConsole for SSR
Claude committed Jun 15, 2026
a1fc93e
Merge pull request #73 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 15, 2026
16e6951
docs: update CLAUDE.md — mark issues #41/#29 fixed, update status + timestamp
Claude committed Jun 15, 2026
539f0b8
Merge pull request #72 from ccantynz-alt/claude/code-audit-vapron-migration-6jya3k
CC LABS App committed Jun 15, 2026
2a5a443
fix(api): resolve ESLint errors in health.ts breaking CI
Claude committed Jun 15, 2026
6a4b9d9
fix: unmount warmup route + add morning setup runbook for Craig
Claude committed Jun 15, 2026
fbf4846
feat: enable warmup route + fix health detailed DB probe
Claude committed Jun 15, 2026
f0d22e5
fix(web): remove react-hooks/exhaustive-deps eslint-disable comment
Claude committed Jun 15, 2026
681b7e4
feat(web): add indeterminate progress bar animation to Tailwind config
Claude committed Jun 15, 2026
e478dff
fix(onboarding): wire Go to inbox CTA to handleGoToInbox handler
Claude committed Jun 15, 2026
c4819db
feat: smart startup health check + real onboarding progress
Claude committed Jun 15, 2026
4cb330b
feat(ai): auto-triage every incoming email with Claude Haiku
Claude committed Jun 15, 2026
8a5fe77
fix(sync): exactOptionalPropertyTypes — conditionally spread receivedAt
Claude committed Jun 15, 2026
c023b05
fix(sync): correct ReceivedAddress shape — use address field not email
Claude committed Jun 15, 2026
0a41999
fix: wire Gmail/Outlook sync to DB, remove Vercel, clean up for Vapron
Claude committed Jun 15, 2026
360a33e
Merge pull request #71 from ccantynz-alt/claude/dreamy-wozniak-hlrxof
CC LABS App committed Jun 13, 2026
fe2713a
feat: real MBOX/EML import + nullable-domain email model (gap #39, 3/3)
Claude committed Jun 13, 2026
f96683c
feat(web): workspace setup (mailboxes + team) + fix systemic scope/auth trap (gap #39, 2/3)
Claude committed Jun 13, 2026
8129ae5
feat(web): real admin console wired to /v1/admin/* (gap #39, 1/3)
Claude committed Jun 13, 2026
8c3da3e
Merge pull request #70 from ccantynz-alt/claude/dreamy-wozniak-hlrxof
CC LABS App committed Jun 13, 2026
dc0769b
fix: sidebar re-expand, silent token refresh, working Gmail/Outlook connect
Claude committed Jun 13, 2026
c8c9129
Merge pull request #69 from ccantynz-alt/claude/loving-edison-25o6q3
CC LABS App committed Jun 13, 2026
fdee170
feat(web): adopt the official 'Email, Evolved.' tagline on the landing page
Claude committed Jun 12, 2026
a4778d7
feat(auth): owner allowlist — founder gets full access, never plan-gated
Claude committed Jun 12, 2026
714a698
Merge pull request #68 from ccantynz-alt/claude/loving-edison-25o6q3
CC LABS App committed Jun 12, 2026
69d5b12
ci(deploy): one-command box deploy script + manual 'Deploy to Box' workflow
Claude committed Jun 12, 2026
17e509a
Merge pull request #66 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 12, 2026
005285b
Merge pull request #67 from ccantynz-alt/claude/loving-edison-25o6q3
CC LABS App committed Jun 12, 2026
9f903b9
feat(web,ui): re-skin dashboard to AlecRae identity + surface the AI layer
Claude committed Jun 12, 2026
f63ca6c
feat(web): premium landing redesign + first-run onboarding routing + role badge
Claude committed Jun 12, 2026
115a78e
fix(api): use stable JWT_SECRET (HS256) instead of ephemeral keys
Claude committed Jun 12, 2026
5234a9e
Merge pull request #65 from ccantynz-alt/claude/code-audit-feature-gaps-acq2mv
CC LABS App committed Jun 12, 2026
631e98c
docs(bible): record box-is-production deployment state; fix(web): Secure session cookie
Claude committed Jun 12, 2026
6219477
feat(web): public /api/version deployment fingerprint
Claude committed Jun 12, 2026
e016a70
Merge pull request #64 from ccantynz-alt/claude/code-audit-feature-gaps-acq2mv
CC LABS App committed Jun 11, 2026
46b584a
feat(deploy): Vapron job reads VAPRON_API_KEY from Vercel production env
Claude committed Jun 11, 2026
ad9c41d
feat(deploy): make Vapron deploy manually triggerable via workflow_dispatch
Claude committed Jun 11, 2026
14ab233
feat(deploy): one-command Vapron deploy path — script, runbook, gated CI job
Claude committed Jun 11, 2026
7802847
Merge pull request #63 from ccantynz-alt/claude/code-audit-feature-gaps-acq2mv
CC LABS App committed Jun 11, 2026
aa79e63
feat(api,db): migrate all in-memory stores to Postgres + audit close-out (issues #26–#28, #31, #32)
Claude committed Jun 11, 2026
2c79120
fix(services): remaining .dev placeholder hosts in inbound/imap/support → .com / env-driven
Claude committed Jun 11, 2026
0c6ceaf
feat(web,dns,mta,api): wire orphaned features, expose 7 new UI domains, kill .dev hosts, env fail-fast
Claude committed Jun 11, 2026
33a9f5d
fix(web): satisfy typed routes in sidebar onNavigate (router.push as Route)
Claude committed Jun 11, 2026
9b724d9
Merge pull request #62 from ccantynz-alt/claude/code-audit-feature-gaps-acq2mv
CC LABS App committed Jun 11, 2026
e6968f8
fix(web,api): dead sidebar navigation + unprotected /v1/admin endpoints
Claude committed Jun 11, 2026
bc31734
docs: full feature-gap audit — web UI exposes ~20% of backend (issues #27–#30)
Claude committed Jun 11, 2026
b819d1d
Merge pull request #61 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 11, 2026
cb30427
fix(web): allow /google/callback through the auth middleware
Claude committed Jun 11, 2026
49697c8
Merge pull request #60 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 11, 2026
83eb83c
fix(lint): use T[] instead of Array<T> in google-workspace (eslint array-type)
Claude committed Jun 11, 2026
e929352
feat(email): Google Workspace domain import (Phase 1) + approved Business pricing
Claude committed Jun 11, 2026
b0dbe1e
Merge pull request #59 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 11, 2026
911c1a6
feat(email): native mailbox provisioning + harden Google sign-in
Claude committed Jun 11, 2026
983d74b
Merge pull request #58 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 11, 2026
24968a7
fix(api): gate Redis on 'ready' to fix lazy-connect race (rate-limit/idempotency/quota)
Claude committed Jun 11, 2026
3cf9b7f
fix(db): complete migration baseline (136 tables) + schema-drift CI guard
Claude committed Jun 11, 2026
64bb23a
fix(db): reconcile schema drift that broke db:seed on fresh DB
Claude committed Jun 11, 2026
1d77efe
Merge pull request #57 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 11, 2026
17cc3d5
feat(api): support HOST env for loopback binding
Claude committed Jun 11, 2026
af9a35c
Merge pull request #56 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 10, 2026
533d18b
fix(api): boot from repo root on Vapron; fix BullMQ colon queue crash
Claude committed Jun 10, 2026
54ed799
fix(web): point client at production API instead of localhost
Claude committed Jun 10, 2026
167eec7
test(encryption): give DB keygen tests headroom over the 5s default
Claude committed Jun 10, 2026
cc0fbb1
Merge pull request #55 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 10, 2026
8bd0a24
fix(sync): correct Gmail-connect redirect URI default
Claude committed Jun 10, 2026
c2c1006
Merge pull request #54 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 10, 2026
3a6144c
fix(vapron): rebuild platform client against published tRPC API
Claude committed Jun 10, 2026
653690f
Merge pull request #52 from ccantynz-alt/claude/fix-web-lint-pricing
CC LABS App committed Jun 10, 2026
5c506b4
Merge pull request #53 from ccantynz-alt/claude/google-login-setup-p7ke2e
CC LABS App committed Jun 10, 2026
9d30123
docs(infra): add Google sign-in go-live checklist
Claude committed Jun 10, 2026
a658dee
ci: gate credential-dependent workflows to keep the board green
Claude committed Jun 9, 2026
4d29d27
fix(web): restore green CI — Reveal import + checkout Suspense
Claude committed Jun 9, 2026
2334e4f
fix(web): remove unused fadeUp var failing web lint
Claude committed Jun 9, 2026
cdae2ae
Merge pull request #51 from ccantynz-alt/claude/docs-clean-and-green
CC LABS App committed Jun 8, 2026
048b7b5
chore(docs): enforce clean + green docs with timestamp CI gate
Claude committed Jun 8, 2026
ce242fd
Merge pull request #50 from ccantynz-alt/claude/chore-docs-timestamp-remove-aws
CC LABS App committed Jun 8, 2026
be111ad
Merge branch 'main' into claude/chore-docs-timestamp-remove-aws
CC LABS App committed Jun 8, 2026
10f702c
chore(ci,docs): remove off-stack AWS deploy; add doc timestamp rule
Claude committed Jun 8, 2026
092c59d
Merge pull request #49 from ccantynz-alt/claude/vigilant-keller-7chXT
CC LABS App committed Jun 8, 2026
f37a152
Merge branch 'main' into claude/vigilant-keller-7chXT
CC LABS App committed Jun 8, 2026
37a16dd
Merge pull request #48 from ccantynz-alt/claude/google-oauth-setup-UYn0R
CC LABS App committed Jun 8, 2026
0484373
feat(ai,email): Vapron AI fallback + transactional email + Face ID label
Claude committed Jun 8, 2026
93ef359
feat(vapron): typed REST client for Vapron platform (email, AI, storage, secrets)
Claude committed Jun 8, 2026
21e39e6
feat(auth): add Sign in with Google (identity-only) to login
Claude committed Jun 8, 2026
766bdc9
Merge pull request #47 from ccantynz-alt/claude/solid-block-specs-copy-vtOdH
CC LABS App committed Jun 8, 2026
65b1a16
ci: use canonical gitleaks [allowlist] format for test SAML keypair
Claude committed Jun 8, 2026
14137e2
ci: allowlist test-only SAML keypair in gitleaks; mark S1-S5/P4 done
Claude committed Jun 8, 2026
774cb58
fix: verify SAML assertion signatures + guard fallback secrets (S1, S4)
Claude committed Jun 8, 2026
6176bad
fix: ssrf-guard lint errors + Framer Motion off Hero (P4)
Claude committed Jun 8, 2026
c8d04ed
fix: SSRF guard on link-preview fetch (S3)
Claude committed Jun 8, 2026
16401f1
fix: persist E2E encryption keys to Postgres (S5)
Claude committed Jun 8, 2026
a31dbba
fix: sign OAuth state to prevent account-linking CSRF (S2)
Claude committed Jun 8, 2026
8518ff1
docs: record security review results + decision items (S1-S5, P4)
Claude committed Jun 8, 2026
445f8f7
docs: SOC 2 Type I starter kit (C4 groundwork)
Claude committed Jun 8, 2026
3d5ef30
perf: cut landing-page JS + add real bundle-size CI gate
Claude committed Jun 8, 2026
55777e1
fix: critical auth-bypass + reflected XSS; wire real status-page uptime
Claude committed Jun 8, 2026
fc478ff
Merge pull request #46 from ccantynz-alt/claude/solid-block-specs-copy-vtOdH
CC LABS App committed Jun 8, 2026
ed243b4
docs: update go-live gaps — G1-G5/G8-G10 done, add bundle/perf gaps P1-P5
Claude committed Jun 7, 2026
a64d555
feat: AI fallback hardening + dunning test + preflight/load-test polish
Claude committed Jun 7, 2026
01594bd
Merge pull request #45 from ccantynz-alt/claude/solid-block-specs-copy-vtOdH
CC LABS App committed Jun 7, 2026
f9ed72a
ci: make GateTest a real gate (lint+typecheck+test+build)
Claude committed Jun 7, 2026
a02df0f
feat: launch-hardening — preflight, dunning, DPA signing, load tests
Claude committed Jun 7, 2026
47c0cc5
docs: add verified go-live gaps audit and Craig infra checklist
Claude committed Jun 7, 2026
3da95ee
fix(types): exactOptionalPropertyTypes for participants + Route casts in billing/settings/pricing
Claude committed May 30, 2026
3afe6ee
feat(ai): wire priority scoring, smart replies, sentiment, categorization, context extraction to Claude
Claude committed May 30, 2026
6cda57b
feat(web): add Stripe checkout flow and billing management page
Claude committed May 30, 2026
5417b07
chore: ignore Claude Code internal worktree directories
Claude committed May 30, 2026
e61a676
docs(claude): session update 2026-05-29 — CI green, marketing landing live
Claude committed May 29, 2026
53dde98
Merge pull request #44 from ccantynz-alt/claude/vigilant-keller-7chXT
CC LABS App committed May 29, 2026
7637d73
feat(web): wire full dark marketing landing page + add ProductSuite section
Claude committed May 29, 2026
1e1f4a1
fix(ci): drop Node 20 from matrix and fix build command
Claude committed May 29, 2026
3a0f122
fix(ci): remove Turbo cache restore-keys to prevent stale cross-commit cache hits
Claude committed May 29, 2026
6427acb
fix(tests): make full test suite pass across all packages
Claude committed May 29, 2026
1fa5e69
fix(build): cast Footer link hrefs to Route for Next.js typedRoutes
Claude committed May 29, 2026
8383bed
fix(ci): replace bunx tsc --noEmit with bun run typecheck (no root tsconfig.json)
Claude committed May 29, 2026
76f31f3
fix(lint): resolve remaining API lint errors (non-null assertions, eqeqeq, import types, inferrable types)
Claude committed May 29, 2026
d339fa6
fix(typecheck): resolve all 93 pre-existing TypeScript errors in API package
Claude committed May 29, 2026
6fc0f8e
fix(lint): resolve all API package lint errors (93 errors across 41 files)
Claude committed May 29, 2026
fd07e13
fix(lint): resolve all MTA service lint errors
Claude committed May 29, 2026
6dea36a
fix(typecheck): repair CachedEmail mapping and remaining unused-var lint errors
Claude committed May 29, 2026
2d4e47e
fix(lint): clear remaining no-empty-function and no-unused-vars errors
Claude committed May 29, 2026
2672cea
fix(lint): resolve all remaining lint and typecheck failures in CI
Claude committed May 29, 2026
db43c09
fix(ci): resolve workflow failures blocking CI green
Claude committed May 29, 2026
5b41296
fix: resolve pre-existing lint and typecheck failures blocking CI
Claude committed May 29, 2026
33d8d18
feat(mobile): rename app to Rae for App Store + fix all submission blockers
Claude committed May 29, 2026
da1bbaa
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts