Tyler
daccb2d223
feat(frontend): add FilterChips primitive
2026-06-19 19:36:41 -06:00
Tyler
511230ec04
feat(frontend): add ErrorState primitive
2026-06-19 19:36:22 -06:00
Tyler
fb6730813f
feat(frontend): add EmptyState primitive
2026-06-19 19:35:59 -06:00
Tyler
f094b250b5
feat(frontend): add Skeleton primitive with scanline-shimmer
2026-06-19 19:35:43 -06:00
Tyler
a355922b4c
feat(frontend): add shimmer, scan, row-flash keyframes
2026-06-19 19:35:28 -06:00
Tyler
ebd5566d7a
feat(frontend): wrap App in QueryClientProvider
2026-06-19 19:35:11 -06:00
Tyler
a92ec14a37
feat(frontend): add @tanstack/react-query ^5.59.0
2026-06-19 19:34:55 -06:00
Tyler
300522aac1
fix(backend): default GET list endpoints to JSON per spec 6.2
...
Spec 6.2 says: 'Default JSON response wraps the same data in a
{items, total, returned, has_more} envelope so the frontend can
paginate uniformly.' Previously the GET list endpoints defaulted
to NDJSON (consistent with the parse endpoints), which forced
every curl call to set Accept: application/json.
Now NDJSON is strictly opt-in via Accept: application/x-ndjson;
JSON is the default. Parse endpoints keep their existing NDJSON
default (browser uploads).
T8 test 'test_claims_default_accept_returns_ndjson' updated to
assert the new default.
2026-06-19 19:32:45 -06:00
Tyler
07ceeaf4cd
feat(backend): bind serve to 127.0.0.1:8000, honor CYCLONE_PORT/CYCLONE_RELOAD
2026-06-19 19:30:55 -06:00
Tyler
74a673a360
feat(backend): add NDJSON streaming on list endpoints
2026-06-19 19:28:17 -06:00
Tyler
cbffdbd2af
feat(backend): add GET /api/{remittances,providers,activity}
2026-06-19 19:26:58 -06:00
Tyler
cab8ff6656
feat(backend): add GET /api/claims with filter/sort/pagination
2026-06-19 19:26:17 -06:00
Tyler
39379d2d5e
feat(backend): add GET /api/batches and GET /api/batches/{id}
2026-06-19 19:25:54 -06:00
Tyler
86e69d5b95
feat(backend): wire parse-837/parse-835 to persist to InMemoryStore
2026-06-19 19:25:23 -06:00
Tyler
ca645db518
refactor(store): code quality fixes per review
...
- iter_claims/iter_remittances now return list[dict] (snapshot under
the lock, return outside) so slow consumers no longer hold the
write lock during iteration
- iter_claims gains payer (case-insensitive substring) and
date_from/date_to filters via the new _date_in_bounds helper
- iter_remittances wires date_from/date_to and payer
- BatchRecord split into BatchRecord837 / BatchRecord835 with
__new__ dispatch so isinstance narrows result correctly,
eliminating the four 'type: ignore[assignment]' band-aids
- BatchRecord now rejects naive parsed_at via model_validator
- to_ui_remittance's adjustmentAmount=0.0 is documented as a
TODO for sub-project 2 reconciliation
151 passed, 1 skipped (no regressions; +6 tests for new filters)
2026-06-19 19:22:44 -06:00
Tyler
d0411b8186
fix(store): spec compliance fixes per review
2026-06-19 19:13:52 -06:00
Tyler
0fa80e29d5
feat(backend): add store iterators (claims, remits, providers, activity)
2026-06-19 19:06:10 -06:00
Tyler
2a78d129ca
feat(backend): add store mappers (claim, remittance, provider, activity)
2026-06-19 19:05:42 -06:00
Tyler
112c08fe14
feat(backend): add cyclone.store with BatchRecord and InMemoryStore
2026-06-19 19:04:53 -06:00
Tyler
da4d02e6e8
chore: ignore .worktrees for subagent-driven development
2026-06-19 18:44:45 -06:00
Tyler
d7ef35dd9a
docs: add production-readiness implementation plan (33 tasks, 4 phases)
...
Phases:
1. Backend (T1-T10): cyclone.store module, 6 GET routes, NDJSON streaming,
parse persistence, uvicorn 127.0.0.1 bind, full test suite run
2. Frontend (T11-T27): react-query wiring, 5 new UI primitives (Skeleton,
EmptyState, ErrorState, FilterChips, Pagination), Layout-level refetch
indicator, 5 page refactors (Claims, Remittances, Providers, ActivityLog,
Upload), 6 hooks, 3 keyframes, api.test.ts
3. Docs (T28-T32): 4 reference notes (837p, 835, x12naming, co-medicaid),
root README rewrite
4. Smoke (T33): end-to-end manual test with full acceptance checklist
Self-review included at end of plan (spec coverage table + placeholder
scan + type consistency check).
For agentic workers: superpowers:subagent-driven-development (recommended)
or superpowers:executing-plans.
2026-06-19 18:43:17 -06:00
Tyler
078de28cc4
docs: add live-data UX section + aesthetic acceptance checks
...
- Replace 7.6 (skeleton) with hairline + scanline-shimmer design that
matches the existing precision-instrument voice (Cabinet Grotesk + Geist
Mono, true-black + electric-blue, hairline chrome, radial light + grain)
- Add 7.7 Live-data UX patterns: skeleton variants, EmptyState primitive,
ErrorState primitive, Layout-level refetch indicator, Active filter chips,
newly-streamed row highlight, status color alignment, pagination footer
- Add 13.1 visual / aesthetic acceptance checks
- Voice decision: stay the course — additive only, no new accent / typeface /
layout primitive / light theme
2026-06-19 18:36:39 -06:00
Tyler
9e34f22cb3
docs: add production-readiness design spec (local-only, sub-project 1 of 4)
2026-06-19 18:31:40 -06:00
Tyler
d34a68ef91
Merge feat/frontend-integration: wire Vite frontend to FastAPI parser with NDJSON streaming
2026-06-19 17:33:38 -06:00
Tyler
3d3bdfb07c
feat(frontend): wire Vite app to FastAPI parser with NDJSON streaming + Upload page
2026-06-19 17:31:59 -06:00
Tyler
999889ecb3
Merge feat/835-era-parser: 835 ERA parser with BPR/CLP/SVC balancing, CO Medicaid config, CLI, and FastAPI route
2026-06-19 17:07:57 -06:00
Tyler
12ac72f915
fix(backend): make 835 summary counts consistent with total_claims
2026-06-19 17:07:54 -06:00
Tyler
8ea951f436
feat(backend): 835 ERA parser with BPR/CLP/SVC balancing, CO Medicaid config, CLI, and FastAPI route
2026-06-19 17:01:57 -06:00
Tyler
3dff38045a
Merge feat/api-endpoint: FastAPI surface with NDJSON streaming and CORS for Vite
2026-06-19 16:41:21 -06:00
Tyler
1a7a4d3ce4
Merge feat/clm05-co-validation: CLM05-1 POS + CLM05-2 qualifier validation
2026-06-19 16:41:18 -06:00
Tyler
eb7d42d2d8
feat(backend): tighten CLM05 validation for CO Medicaid (CLM05-1 POS, CLM05-2 qualifier)
2026-06-19 16:39:02 -06:00
Tyler
07a8fbb720
feat(backend): FastAPI endpoint with NDJSON streaming and CORS for Vite frontend
2026-06-19 16:35:53 -06:00
Tyler
ab4d8c318e
Merge feat/837p-parser: 837P parser module with CO Medicaid validation
2026-06-19 16:13:20 -06:00
Tyler
464a31be09
docs(backend): README with install, CLI, and programmatic usage
2026-06-19 16:01:25 -06:00
Tyler
d4f3b204ef
feat(backend): click CLI for parse-837
2026-06-19 16:00:47 -06:00
Tyler
f1e86979f8
feat(backend): per-claim JSON writer + summary.json
2026-06-19 15:56:09 -06:00
Tyler
2d509d92f4
test(backend): multi-claim CO Medicaid fixture + integration test
2026-06-19 15:54:46 -06:00
Tyler
1f7cb11fd5
feat(backend): 837P parser orchestrator with HL walker
2026-06-19 15:52:58 -06:00
Tyler
1cab95ffc3
feat(backend): structural + CO Medicaid validation rules
2026-06-19 15:45:17 -06:00
Tyler
9db793c108
test(backend): add minimal 837P fixture
2026-06-19 15:42:04 -06:00
Tyler
bb35ecd40c
feat(backend): PayerConfig with co_medicaid and generic factories
2026-06-19 15:40:09 -06:00
Tyler
aa801805ce
feat(backend): Pydantic v2 models for 837P claims
2026-06-19 15:39:08 -06:00
Tyler
8475e672a7
feat(backend): X12 segment tokenizer with ISA delimiter detection
2026-06-19 15:36:01 -06:00
Tyler
760d031535
fix(backend): make parsers __init__ re-exports lazy via __getattr__
2026-06-19 15:32:26 -06:00
Tyler
260b32afac
feat(backend): add CycloneParseError and CycloneValidationError
2026-06-19 15:31:06 -06:00
Tyler
ce7fb50e79
feat(backend): scaffold cyclone package skeleton
2026-06-19 15:26:52 -06:00
Cyclone
5ed59ef01a
Add 837P parser implementation plan
...
- 12 tasks: project skeleton, exceptions, segments, models, payer config,
fixtures, validator, parser orchestrator, CO fixture, writer, CLI, README
- TDD throughout; each task has 4-6 bite-sized steps with full code
- Optional prodfile smoke test (skipped if docs/prodfiles absent)
- Self-review checklist confirms full spec coverage
2026-06-19 15:12:04 -06:00
Cyclone
d9dc8a86bd
Add 837P parser design spec
...
- Approved design for the Python 837P parser module under backend/
- Pydantic v2, click CLI, structural + CO Medicaid validation
- One JSON file per claim, summary.json, continue-on-failure
- Includes .gitignore for the Python + Node stack
2026-06-19 15:07:52 -06:00