docs/implementation-status.md
Linked repository file from this build.
# Implementation status
Reconciled September 14, 2026. Behavior authority:
[SNAP Negative review specification](./snap-negative-vertical-slice-minimal-spec.md).
## Implemented coverage
| Area | Coverage |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Search | Quick filter flyout, active search button, concise combined operators, month pickers, bottom actions, ordered field/column sorts and Clear Sort to Relevance |
| Queues | Scoped SQL pages, common review layout, flags/unread versions, five-minute visible refresh, separate manager coverage and acceptance work |
| Notifications | Compact time/number/kind rows, ten before scroll, explicit scoped Clear notifications with a cutoff |
| Identity | Server-derived Clerk actor, role/program/team guards, blocking missing-metadata setup message with QC administrator contact |
| Workflow | Separate supervisor, PEC, memo and reporting flags, manager-approved Drops, examiner-only fact edits and senior kickback |
| Received copies | Import/submission/manager snapshots, section Clear/Reset, confirmed Clear all/Reset all, no invented historic reset copies |
| Computation | v4 dated policy and AF farm/non-farm profit/loss, compact income rows and Add/Edit dialogs, Final SAQC source and threshold labels, six ranked discrepancy columns |
| Preferences | Clerk autosave and differences, both default off, explicit computation Save, short client undo across saves/tabs/section changes |
| Review | FNS sections, one editable element/nature pair, readable historic extras, FS 75 explanation, unchanged narrative preset labels |
| Collaboration | Activity retains return reasons and PEC decisions; scoped PDF documents remain. Working notes and field linking are deferred. |
| Manager | Review Memo tab, generated draft after PEC, outbound status, editable CAO deadline, reported root cause and release guards |
| Reporting | Program Error Summary uses release flags. Transmittal field TSV also includes manager-approved Drops. No automatic upload or external EPP write. |
| Policy | Immutable dated rows, 20 household rows and every specified numeric field, role-guarded publication, serialized concurrent publication, seeded FFY 2026 table |
| Intake | Verified VBA A:AP map, quoted pipe fields, no individual records, source lineage, received snapshot and frozen policy binding |
| Appointments | Eastern date/time scheduling and saved Activity. Notice selection and generation remain pending. |
| Seed generator | Deterministic FFY policy tables, frozen bindings, current workflow flags, received snapshots, letters/CAO responses, one variance pair and self-employment examples |
The local baseline contains 4,800 reviews across FFYs 2023-2026. Historical calculation
versions v1-v3 remain supported. New v4 uses dated policy and self-employment losses. The initial policy
starts October 2025 and remains in force until a later row. FY27 draft threshold defaults
to $59. Other FY27 values are not invented. CAO response days remain unset until published.
## Management-dependent limits
Working notes, field linking and the separate PEC conditions editor are outside the current demo.
Management must decide correction ownership, acknowledgement, field-link history and visibility
before work resumes. The removed panel remains available in Git history.
Return reasons, PEC decisions, Activity and saved note data remain intact.
The Review-tab defect map is still open. New non-drop supervisor approval/routing and
memo classification show an explicit guard. A memo with no confirmed type cannot be
approved. The implementation does not use `value != 1` or a guessed field list.
Other open decisions remain in the knowledge register: defect-free Valid PEC referral,
CAO reassignment after dispute, extra drop fields, narrative template bodies and the final
Activity policy. No FNS drop or likely-conclusion ruleset was added. Actual memo sending,
notice PDFs/print queues and test transmittal generation remain for the next iteration.
## Validation
The September 14 review passed 537 unit and database tests with no skips against the
configured local PostgreSQL database. Production build, TypeScript and lint checks passed.
The migration was also checked against a fiscal-year change in stored history. Rebuilding
report projections preserved export totals.
All 93 runnable browser cases passed across the full and targeted runs; two checks requiring
provisioned Clerk accounts were skipped. Browser tests use the scoped local test actor and
explicitly restore the editable demo fixture. They do not test real Clerk provisioning, email or federal upload. Test results
belong in ignored local artifacts, not the repository.
Browser wire-size checks passed. Local cold entry to Home measured 1.51 seconds and Search
2.50 seconds against the 1.5-second target. These single-repeat latency checks remain open;
their limits were not increased. The corrected report verification passed for both local
and simulated internet profiles.
## Deployment
Migration `0005_mature_the_professor.sql` creates and seeds policy storage and invalidates
old report eligibility projections. Apply it before using the new code, then run the report
index backfill described in [data loading](./data-loading.md). The migration does not rewrite
snapshots or grant reporting release to historical Approved reviews.
Migration `0006_fiscal_year_review_keys.sql` introduced FFY-qualified text keys. Migration
`0007_opaque_review_identity.sql` replaces those keys with UUIDs, updates snapshot IDs,
and remaps index, touch and event references in one transaction. The index separately
enforces `(program, fiscal_year, review_number)` uniqueness. List responses carry fiscal
year explicitly. Apply migrations through `0008` with the matching application deployment.
Legacy number-only and `FFY:number` links no longer resolve.
Synthetic seeds use deterministic UUIDv5 IDs; the default generator seed is 42. New imports
receive UUIDv7, while refreshes retain the saved ID. Migration-generated UUIDs are random
and do not match fixture IDs. Opening a missing review no longer initializes demo data,
and stored supervisor assignments are no longer overridden by demo examiner codes.
See [review identity](./review-identity.md) for the contract and remaining demo boundaries.
The reported four-year seed command passes a dry run with 4,800 cases. Pure tests cover
number-range boundaries, FFY counter resets, deterministic generation and intake/save
isolation. Database integration checks cover save, search, queue and flag isolation.
No migration was applied to the configured database in this run. Local PDF bytes, production
identity/records hardening, federal format certification and portal submission remain
outside the synthetic application.
September 21 intake layout verification: all 42 user-confirmed headers and their
uses are recorded in [BIS Negative input fields](./bis-negative-input.md). The parser
accepts an optional exact-order header row and includes address line 2, middle
initial and telephone. Other source fields remain in exact raw lineage pending
confirmed destinations/code meanings. Synthetic attestation remains required.