This website requires JavaScript.
63e5881972
test(e2e): disable rate limiting in the Playwright backend webserver
fix/production-hardening
Michael Chihlas
2026-06-12 20:14:05 -04:00
c4947218a4
fix(prod): harden production configuration for launch
Michael Chihlas
2026-06-12 19:22:35 -04:00
b69447767a
Merge pull request 'feat(l1): AI decision-tree builder — Phase 2A' (#193 ) from feat/l1-ai-tree-builder-phase-2a into main
main
chihlasm
2026-06-12 23:41:15 +00:00
8a9f03adf5
test(l1): e2e intake test must use an out-of-scope problem for the ad-hoc path
feat/l1-ai-tree-builder-phase-2a
Michael Chihlas
2026-06-12 19:28:45 -04:00
0e41a990ed
docs(handoff): record answer-label fix (9c34d1e ) + smoke-test note
Michael Chihlas
2026-06-11 15:56:04 -04:00
9c34d1e82d
fix(l1): answer buttons must match the question — yes_label/no_label end-to-end
Michael Chihlas
2026-06-11 15:03:15 -04:00
db446e1fd6
docs(handoff): PR #193 all 10 review findings resolved + 2 decisions
Michael Chihlas
2026-06-09 15:56:03 -04:00
9afaf37fb3
fix(l1): resolve PR #193 frontend review findings (2a,2b,3,4,5,7)
Michael Chihlas
2026-06-09 15:55:55 -04:00
ac89e7b2fa
fix(l1): resolve PR #193 backend review findings (1,4,5,6,7,8,9,10)
Michael Chihlas
2026-06-09 15:55:45 -04:00
42a4536c63
docs(review): PR #193 review findings — 10 confirmed defects, merge blocked; handoff points to fix plan
Michael Chihlas
2026-06-09 14:58:24 -04:00
2ad83cdf96
docs: correct Phase 2A test count to verified 86 passed/0 errors; full serial suite is non-deterministic (environmental)
Michael Chihlas
2026-05-31 00:06:13 -04:00
222521a889
docs: correct test-count record — Phase 2A files 124 passed/0 errors; full serial suite 723p/507e is pre-existing asyncpg contention, not a regression
Michael Chihlas
2026-05-30 23:14:16 -04:00
fa805a28a4
docs(session-log): Phase 2A entry — backend suite 1376 passed/18 skipped/0 failed (verified)
Michael Chihlas
2026-05-30 21:12:53 -04:00
5d7fcde14b
docs(handoff): Phase 2A complete — backend suite 1376 passed/18 skipped/0 failed; add SESSION_LOG entry
Michael Chihlas
2026-05-30 21:00:48 -04:00
9037dec981
docs(handoff): Phase 2A complete — all 19 tasks, PR #193 open
Michael Chihlas
2026-05-30 20:52:32 -04:00
8ce6bc80fa
feat(l1): proposal L1-source block + engineer L1-escalations section
Michael Chihlas
2026-05-30 20:48:30 -04:00
1b7aedb204
feat(l1): admin L1 category settings page + route + settings card
Michael Chihlas
2026-05-30 20:43:59 -04:00
503b243ed4
docs(handoff): fix frontend HEAD ref to real sha 076a9ec
Michael Chihlas
2026-05-30 20:34:45 -04:00
267e748647
docs(handoff): correct frontend status to verified HEAD 4d3e2f1 (Tasks 1-15 done)
Michael Chihlas
2026-05-30 20:26:02 -04:00
076a9ec98d
fix(l1): actually wire Tasks 14-15 (prior commit ad9c4c8 was committed broken)
Michael Chihlas
2026-05-30 20:24:44 -04:00
c547d2f834
docs(handoff): correct Tasks 14-15 status (broken-then-fixed @ 2cc7c83); stop at Task 16
Michael Chihlas
2026-05-30 20:19:42 -04:00
ad9c4c8cd6
fix(l1): repair Tasks 14-15 frontend — restore real component contracts
Michael Chihlas
2026-05-30 20:18:45 -04:00
3e23a837d4
docs(handoff): Tasks 1-15 done (backend + frontend 13-15); resume at Task 16
Michael Chihlas
2026-05-30 20:14:51 -04:00
f483196e91
feat(l1): walker renders AI-built nodes via next-node + disclaimer banner
Michael Chihlas
2026-05-30 20:11:40 -04:00
df7150fc29
feat(l1): dashboard intake dispatch on match_or_build outcome
Michael Chihlas
2026-05-30 20:08:09 -04:00
03e87488b0
feat(l1): frontend api/types for next-node, intake outcome, categories
Michael Chihlas
2026-05-30 20:06:43 -04:00
7c25b42fb0
docs(handoff): Phase 2A backend (Tasks 1-12) complete; resume at frontend Task 13
Michael Chihlas
2026-05-30 20:04:48 -04:00
04b5511bdd
test(l1): integration — intake build -> walk -> resolve -> proposal; escalate -> notify -> list
Michael Chihlas
2026-05-30 20:02:19 -04:00
1d3f9d0a8a
feat(l1): account L1 category settings API (owner/admin write)
Michael Chihlas
2026-05-30 20:01:32 -04:00
04d2cfb9a5
fix(l1): add missing next-node + escalations routes; reconcile Phase-1 intake tests
Michael Chihlas
2026-05-30 19:58:22 -04:00
c3d50069cc
fix(l1): escalations queue orders by last_step_at (escalated_at column does not exist)
Michael Chihlas
2026-05-30 19:36:30 -04:00
b57089d523
test(l1): rewrite AI-build API tests on proven register/login/subscription helpers
Michael Chihlas
2026-05-30 19:33:36 -04:00
633a208742
feat(l1): intake dispatch via match_or_build + next-node + escalations endpoints
Michael Chihlas
2026-05-30 03:54:23 -04:00
af3b1c0123
feat(l1): ai_tree_builder skips meta category-carrier entry in context + normalize
Michael Chihlas
2026-05-30 03:51:50 -04:00
cc41f20668
fix(l1): drop duplicate T9 tests + honor explicit empty notify recipients
Michael Chihlas
2026-05-30 03:45:13 -04:00
e3da5b7502
test(l1): T9 — flywheel capture + engineer notification tests
Michael Chihlas
2026-05-29 22:30:54 -04:00
80771b86b1
feat(l1): flywheel capture on resolve + engineer notification on escalate
Michael Chihlas
2026-05-29 20:49:28 -04:00
68a4b99246
feat(l1): advance_ai_build — record answer + generate next node
Michael Chihlas
2026-05-29 18:22:05 -04:00
0facf2f8c9
feat(l1): start_ai_build_session
Michael Chihlas
2026-05-29 17:03:05 -04:00
e1112a9a36
feat(l1): match_or_build orchestrator + classify (match-first, gate-on-build)
Michael Chihlas
2026-05-29 16:40:38 -04:00
c6e37ce83c
feat(l1): ai_tree_builder — constrained node generation, validation, normalize
Michael Chihlas
2026-05-29 15:57:55 -04:00
4b0d2e6b1c
feat(l1): category service (defaults + hard floor) and AI action keys
Michael Chihlas
2026-05-29 15:49:30 -04:00
0796874376
feat(l1): FlowProposal l1_session_id source linkage (nullable source_session_id + exactly-one check)
Michael Chihlas
2026-05-29 15:34:05 -04:00
9a5cbc35ae
feat(l1): add accounts.enabled_l1_categories with default allowlist
Michael Chihlas
2026-05-29 14:49:14 -04:00
16b9abf2e2
feat(l1): add ai_build session kind (model + migration)
Michael Chihlas
2026-05-29 14:42:45 -04:00
87236b57d2
Merge PR #192 : chore(ci): mirror with --prune so GitHub branch deletes propagate
chihlasm
2026-05-29 18:21:29 +00:00
0c5bd9734f
Merge PR #191 : docs: L1 Phase 2A design/plan + plan-taxonomy decision
chihlasm
2026-05-29 17:36:42 +00:00
d5d4405ac2
fix(ci): mirror — push refs/heads + refs/tags, not all refs
Michael Chihlas
2026-05-29 13:34:22 -04:00
16a07e1682
chore: gitignore .mcp.json
Michael Chihlas
2026-05-29 13:29:19 -04:00
84dc9b07bf
chore(ci): mirror to GitHub with --mirror so deletes propagate
Michael Chihlas
2026-05-29 13:24:31 -04:00
5c38fb8904
docs(decisions): record plan-tier taxonomy centralization decision (Option B)
docs/phase-2a-plus-taxonomy
Michael Chihlas
2026-05-29 11:25:28 -04:00
23dbcec86e
docs(plan): L1 AI decision-tree builder — Phase 2A implementation plan
Michael Chihlas
2026-05-29 03:16:10 -04:00
f62712d11c
docs(spec): resolve 6 Codex review findings on L1 AI tree builder spec
Michael Chihlas
2026-05-29 03:04:49 -04:00
5b58702b20
docs(spec): L1 AI decision-tree builder — Phase 2A design
Michael Chihlas
2026-05-29 01:22:37 -04:00
57d28ac08e
Merge PR (#189 ) feat(l1): L1 workspace Phase 1 (internal-only) into main
chihlasm
2026-05-29 05:18:47 +00:00
890cb80bef
fix(l1): confine L1 techs to their surface + accessible rail nav labels
Michael Chihlas
2026-05-29 01:06:02 -04:00
aca1360164
fix(l1): replace any casts with structural error types (eslint)
Michael Chihlas
2026-05-29 00:48:14 -04:00
4c83cebfca
Merge branch 'main' into feat/l1-workspace
Michael Chihlas
2026-05-29 00:24:54 -04:00
1d92893573
Merge pull request 'feat(ai): robust response extraction + structured-output foundation (flag-gated)' (#188 ) from feat/ai-structured-outputs into main
chihlasm
2026-05-29 04:23:28 +00:00
5bfbc2c096
Merge pull request 'feat(landing): redesign hero + editorial layout with Atkinson Hyperlegible' (#187 ) from feat/landing-redesign into main
chihlasm
2026-05-29 04:23:27 +00:00
83d1f4cecd
fix(l1): block L1 users from engineer-only AI routes (/pilot, /assistant)
Michael Chihlas
2026-05-29 00:05:52 -04:00
2f2f4eea29
docs(l1): post-final-review fixes addendum to acceptance report
Michael Chihlas
2026-05-28 16:49:30 -04:00
02db15f118
docs(decisions): scope structured outputs to flat-array JSON (close 3c)
Michael Chihlas
2026-05-28 15:09:16 -04:00
60b1e654f8
feat(landing): redesign hero + editorial layout with Atkinson Hyperlegible
Michael Chihlas
2026-05-28 14:48:18 -04:00
b5d8e82f64
fix(l1): handle 402 seat_limit_exceeded on invite
Michael Chihlas
2026-05-28 16:21:38 -04:00
3fde3369c8
chore: gitignore core dumps (core.<pid>)
Michael Chihlas
2026-05-28 14:54:36 -04:00
f436def20e
fix(l1): toast on intake failure in L1Dashboard
Michael Chihlas
2026-05-28 16:20:48 -04:00
067574ad6a
feat(ai): robust response extraction + structured-output foundation
Michael Chihlas
2026-05-28 14:54:30 -04:00
457f77eeb0
docs(l1): explain why L1 router uses _tenant_deps, not _pro_deps
Michael Chihlas
2026-05-28 16:19:58 -04:00
e8ca15d245
docs(l1): document session-ownership policy in _get_session_or_404
Michael Chihlas
2026-05-28 16:19:46 -04:00
7882b4723b
fix(l1): write audit_logs rows at resolve/escalate with acting_as
Michael Chihlas
2026-05-28 16:19:26 -04:00
10b5d4e9b0
docs(l1): Phase 1 acceptance validation report
Michael Chihlas
2026-05-28 16:07:23 -04:00
6937bcaabd
test(l1): E2E Playwright suite + seed L1 + coverage engineer test users
Michael Chihlas
2026-05-28 14:42:31 -04:00
1acc780359
feat(l1): drafts + tickets pages + coverage banner + seat counter widget
Michael Chihlas
2026-05-28 14:28:27 -04:00
d3fd9143d7
feat(l1): adhoc walker variant with debounced notes autosave
Michael Chihlas
2026-05-28 14:22:15 -04:00
c0bddc289e
feat(l1): L1WalkPage tree variant with Resolve/Escalate modals
Michael Chihlas
2026-05-28 14:17:02 -04:00
4e9610c252
feat(l1): real L1 dashboard with empty-state + resume widget
Michael Chihlas
2026-05-28 14:09:34 -04:00
d0561be6a1
feat(l1): register /l1/* routes + L1RouteGuard + page stubs
Michael Chihlas
2026-05-28 14:03:26 -04:00
fbe25b3d68
feat(l1): role-based sidebar nav + L1 post-login redirect
Michael Chihlas
2026-05-28 13:58:34 -04:00
4586010b87
feat(l1): usePermissions extensions for l1_tech + coverage flag
Michael Chihlas
2026-05-28 13:54:52 -04:00
465b8ff880
test(l1): RLS regression tests for internal_tickets + l1_walk_sessions
Michael Chihlas
2026-05-28 13:49:39 -04:00
e5bcf3b28e
feat(l1): APScheduler hourly cleanup job for abandoned L1 sessions
Michael Chihlas
2026-05-28 13:37:55 -04:00
96973c7968
feat(l1): L1 endpoint surface (intake/queue/step/notes/resolve/escalate)
Michael Chihlas
2026-05-28 13:33:18 -04:00
054e9da49b
feat(l1): l1_session_service resolve / escalate / escalate_without_walk
Michael Chihlas
2026-05-28 13:25:17 -04:00
e803a78ded
feat(l1): l1_session_service record_step + update_notes
Michael Chihlas
2026-05-28 13:20:20 -04:00
6e7c4afc7d
feat(l1): l1_session_service start_flow/proposal/adhoc
Michael Chihlas
2026-05-28 13:16:37 -04:00
44a000a723
fix(l1): make get_ticket keyword-only for consistency
Michael Chihlas
2026-05-28 13:13:55 -04:00
7a36aeb410
feat(l1): internal_ticket_service with CRUD + status transitions
Michael Chihlas
2026-05-28 13:11:21 -04:00
e15897c76f
feat(l1): PATCH /accounts/me/members/{id}/coverage for engineer L1-coverage flag
Michael Chihlas
2026-05-28 13:07:09 -04:00
7056ed9e6d
feat(l1): GET /accounts/me/seats endpoint for seat counter widget
Michael Chihlas
2026-05-28 13:02:20 -04:00
8010da8745
fix(l1): T8 review fixes — oauth status const + bulk-invite structured error
Michael Chihlas
2026-05-28 12:58:35 -04:00
47ff8ad2b5
feat(l1): enforce seat limits on invite, accept-invite, role-change
Michael Chihlas
2026-05-28 12:49:59 -04:00
02fc47c832
feat(l1): seat_enforcement service for engineer + L1 seat limits
Michael Chihlas
2026-05-28 12:40:48 -04:00
874dee7263
fix(l1): add index=True to L1WalkSession.last_step_at model column
Michael Chihlas
2026-05-28 12:37:39 -04:00
960ea71a20
feat(l1): create l1_walk_sessions table with target-consistency check + RLS
Michael Chihlas
2026-05-28 12:35:24 -04:00
394f729595
feat(l1): create internal_tickets table with RLS
Michael Chihlas
2026-05-28 12:30:51 -04:00
c576c6609e
feat(l1): extend FlowProposal with source/linked_ticket/validated_by_outcome
Michael Chihlas
2026-05-28 12:27:07 -04:00
8bad2fe945
feat(l1): add require_l1, require_l1_or_coverage, require_l1_or_above deps
Michael Chihlas
2026-05-28 12:23:16 -04:00
c977196206
feat(l1): add L1 columns + extend account_role CHECK constraint
Michael Chihlas
2026-05-28 12:19:38 -04:00
8cf6a66154
feat(l1): add l1_tech role to permissions docstring
Michael Chihlas
2026-05-28 12:09:27 -04:00