Code Review Log
Last updated: 2026-04-07 13:18 EDT Owner: BionicLoop engineering
Purpose
Persist code-review outcomes with commit-level traceability, captured findings, and linked requirement IDs.
Commit Process Requirement
For each commit intended for merge:
- Record review outcome in this log (
passorfindings). - If findings exist, record fix commit(s) and closure status.
- Tag impacted requirements (
SRS-*) or markN/Awhen no product requirement changed. - Keep entries concise and append-only.
- For high-risk runtime merges (
BionicLoopCoreruntime, app runtime, pump/cgm integrations, Home runtime wiring), include STR-SIM evidence linkage fromDocs/Quality/Evidence/{Working|Formal}/STR-SIM-001/...and list coveredTV-SIM-*IDs in Findings summary.
Entries (Seed)
| CR-ID | Review date | Reviewed commit | Result | Findings summary | Fix commit(s) | Impacted requirements | Status |
|---|---|---|---|---|---|---|---|
| CR-2026-02-09-01 | 2026-02-09 | 0d2877e |
Findings | Meal announce availability incorrectly blocked when pump status cache was empty (deliveryState == nil treated as signal loss). |
0d2877e |
SRS-MEAL-003, SRS-UI-002 |
Closed |
| CR-2026-02-10-01 | 2026-02-10 | 11876e8 |
Findings | Home pod status did not reliably refresh on reconnect/disconnect unless user opened pump settings. | 11876e8 |
SRS-PUMP-004, SRS-PUMP-005 |
Closed |
| CR-2026-02-12-01 | 2026-02-12 | a7dfc23 |
Findings | Pump alert normalization/retraction mismatch left incompatible alerts stuck active. | a7dfc23 |
SRS-ALERT-001, SRS-ALERT-005, SRS-ALERT-009 |
Closed |
| CR-2026-02-12-02 | 2026-02-12 | b6b81dd |
Findings | Background alert notification dedupe state was not fully cleared on alert retraction; resolved alerts could remain pending/delivered. | b6b81dd |
SRS-ALERT-005, SRS-ALERT-007 |
Closed |
| CR-2026-02-12-03 | 2026-02-12 | 335ef90 |
Findings | Local notification authorization prompt for badges was missing in upgraded installs, preventing icon-badge visibility. | 335ef90 |
SRS-ALERT-007 |
Closed |
| CR-2026-02-17-01 | 2026-02-17 | 0525fd6 |
Pass | Behavior-preserving refactor (HomeInlineInsulinChartView helper extraction) with added unit tests; no actionable regression found. |
N/A | SRS-UI-001 (no behavior change) |
Closed |
| CR-2026-02-17-02 | 2026-02-17 | c2054dc |
Pass | Behavior-preserving CGM delegate boundary refactor (CGMAlertLifecycleHandler, CGMAlertSyncPlanner) with focused unit tests and full regression run. |
N/A | SRS-ALERT-001, SRS-ALERT-005 (no behavior change) |
Closed |
| CR-2026-02-18-01 | 2026-02-18 | dc2fe83 |
Pass | Docs-only quality/planning refactor adding FDA-traceable Algo2015 verification campaign (RA-014, SRS-ALG-*, TV-ALG-*, Workstream L) with no runtime code-path changes. |
N/A | SRS-ALG-001, SRS-ALG-002, SRS-ALG-003, SRS-ALG-004, SRS-ALG-005 |
Closed |
| CR-2026-02-18-02 | 2026-02-18 | c582a05 |
Findings | Coverage harness review found unsafe post-step Algo2015 helper invocations and a tautological open-loop assertion in golden-vector tests; both were corrected and rerun with passing tests and regenerated STR artifacts. | c582a05 |
SRS-ALG-001, SRS-ALG-002, SRS-ALG-003 |
Closed |
| CR-2026-02-18-03 | 2026-02-18 | e72c125 |
Pass | Evidence reset/rerun and quality-doc alignment review; added execution-tracking roadmap linking legacy V&V methods to phased Algo2015 verification closure. | N/A | N/A |
Closed |
| CR-2026-02-18-04 | 2026-02-18 | 77d10ac |
Findings | Phase-E review found coverage-packaging defects (iso_now undefined in coverage script) and a brittle continuity assertion in golden-vector testing that compared full raw state bytes; both were corrected and full staged verification rerun passed. |
01a8dec |
SRS-ALG-002, SRS-ALG-004 |
Closed |
| CR-2026-02-18-05 | 2026-02-18 | 01a8dec |
Pass | Phase-E closeout review confirmed hardened exception package outputs (JSON + markdown sign-off metadata) and stable deterministic core suite rerun after continuity-assertion robustness fix. | N/A | SRS-ALG-002, SRS-ALG-004 |
Closed |
| CR-2026-02-18-06 | 2026-02-18 | cd2b842 |
Pass | Phase-F review confirmed static-analysis lane integration, package-level quality-lane linkage (codeReviewLinkage, misraLinkage), and clean analyzer execution without workspace side effects. |
N/A | SRS-ALG-001, SRS-ALG-002 |
Closed |
| CR-2026-02-18-07 | 2026-02-18 | 554d2ff |
Pass | Phase-G review confirmed submission-grade package checks (str-template-check.json), assertion trace map generation, reproducibility recipe output, and checksum-consistent staged verification rerun. |
N/A | SRS-ALG-001, SRS-ALG-002 |
Closed |
| CR-2026-02-18-08 | 2026-02-18 | b206654 |
Pass | Docs sweep and reorg review confirmed Algo2015 execution/verification docs moved from Docs/Quality to Docs/Planning, navigation/link references updated, and no stale old-path references remained. |
N/A | SRS-ALG-001, SRS-ALG-002 |
Closed |
| CR-2026-02-19-01 | 2026-02-19 | ada7e71 |
Pass | Phase-H harness review confirmed deterministic SaveData fault-injection seams, expanded targeted branch probes, staged verification pass, and quality-doc sync with improved working coverage (90.58% branch). |
N/A | SRS-ALG-001, SRS-ALG-002 |
Closed |
| CR-2026-02-19-02 | 2026-02-19 | 1848780 |
Pass | Quality-policy alignment review: shifted Algo2015 MISRA handling to risk-based conditional closure while keeping static-analysis mandatory for formal runs; synchronized SRS/SDD/SVVP/RA/RTM and planning references with new SRS-ALG-006/007 and TV-ALG-011 linkage. |
N/A | SRS-ALG-006, SRS-ALG-007 |
Closed |
| CR-2026-02-19-03 | 2026-02-19 | 5ada114 |
Pass | Planning-doc review confirmed pregnancy protocol config contract now includes explicit design options and phased checkbox execution checklist, with ExecutionPlan cross-link for single-entry review flow. |
N/A | N/A |
Closed |
| CR-2026-02-19-04 | 2026-02-19 | e1903db |
Pass | Planning sync review confirmed both Algo2015 planning docs now align on consolidated Phase I execution (I1..I5), enforcing matrix-first closure before warning-code parity replacement and updating immediate next-action order accordingly. |
N/A | N/A |
Closed |
| CR-2026-02-19-05 | 2026-02-19 | 217ac7e |
Pass | Follow-up review confirmed Phase I planning is now cpp/bridge-grounded (legacy warning-code parity made optional), with no conflicting references left in roadmap or verification-plan execution flow. | N/A | N/A |
Closed |
| CR-2026-02-19-06 | 2026-02-19 | f78a2de |
Pass | I1 review confirmed machine-readable current-surface matrix captures active/fixed/legacy classifications, references actual cpp/bridge/runtime surfaces, and maps rows to Phase-I closure tasks. | N/A | SRS-ALG-001, SRS-ALG-003 |
Closed |
| CR-2026-02-19-07 | 2026-02-19 | 8eaafe1 |
Pass | I2 review confirmed matrix-driven row observations now emit from both staged suites with complete I2 row coverage and passing deterministic checks, including suite packaging checks for matrix artifacts. | N/A | SRS-ALG-001, SRS-ALG-003 |
Closed |
| CR-2026-02-19-08 | 2026-02-19 | d556241 |
Pass | I3 review confirmed new deterministic characterization suite captures current meal-time invalid handling, reconciliation variant response, offline/BG fallback behavior, and subject-id token target sensitivity; staged core-reqs integration passed. | N/A | SRS-ALG-001, SRS-ALG-003 |
Closed |
| CR-2026-02-19-09 | 2026-02-19 | f1cb087 |
Pass | I4 review confirmed bridge normalization tests now verify non-zero availability normalization and request-time sentinel mapping, with staged core-reqs execution and matrix fixed-assumption rows passing. | N/A | SRS-ALG-003 |
Closed |
| CR-2026-02-19-10 | 2026-02-19 | bb80597 |
Pass | I5 review confirmed legacy/dead-path decision register is in place with sign-off placeholders and RTM RA-014 linkage updated to the new classification register artifact. |
N/A | SRS-ALG-003, SRS-ALG-005 |
Closed |
| CR-2026-02-19-11 | 2026-02-19 | b7461b5 |
Pass | I6 rerun review confirmed full staged verification pass in 2026-02-19-tv-alg-phase-i-i6-rerun (all suites pass) and synchronized roadmap/verification/RTM baseline references. |
N/A | SRS-ALG-001, SRS-ALG-002, SRS-ALG-003 |
Closed |
| CR-2026-02-19-12 | 2026-02-19 | 9250666 |
Findings | Medium-fidelity harness review found stale run-scoped probe/pump outputs when reusing SimulationScenarioRunner; fixed by resetting observations and pump command logs per run(_:) and adding regression coverage for repeated-run isolation. |
9250666 |
SRS-RUN-001, SRS-RUN-002, SRS-STATE-001 |
Closed |
| CR-2026-02-19-13 | 2026-02-19 | d4f2e1b |
Findings | Review found nondeterministic countdown-refresh assertion in TV-SIM-005 (fixed single sleep to timeout-bounded polling) and STR-SIM default output overwrite risk (fixed with unique run-stamped default path + existing-dir fail-fast guard). |
8e50171 |
N/A (verification harness stability) |
Closed |
| CR-2026-02-20-01 | 2026-02-20 | c3492fb |
Pass | Safety-review pass for stale CGM masking: values older than 11 minutes now display as -- with trend suppressed, with targeted unit coverage for stale live reading, stale persisted fallback, and fresh persisted fallback control path. |
N/A | SRS-UI-005, SRS-UI-002 |
Closed |
| CR-2026-02-20-02 | 2026-02-20 | 92101f6 |
Pass | Safety-review pass for unreliable CGM masking: non-reliable current readings are masked to --, trend suppressed, and unreliable points are excluded from UI chart-history ingestion, including restore edge case where unreliable reading exists without timestamp (no fallback numeric display). |
N/A | SRS-UI-005 |
Closed |
| CR-2026-02-20-03 | 2026-02-20 | 92101f6 |
Findings | CGM alert fallback keyword mapping could escalate temporary/unavailable issues to failed/expired via text collisions; fixed by prioritizing unavailable tokens and restricting failed/expired fallback classification to source identifiers, with regression tests for collision and message-only failed text. | 92101f6 |
SRS-ALERT-001, SRS-ALERT-006 |
Closed |
| CR-2026-02-20-04 | 2026-02-20 | fb073ae |
Findings | Fixed two P1 safety regressions: critical pumpFault/pumpIncompatible alerts are no longer auto-retracted merely because hasActivePod == false, and persisted unresolved critical alerts are no longer marked retracted during restore; also corrected meal-unavailable precedence so no-active-pod maps to noPump before signal-loss messaging. |
fb073ae |
SRS-ALERT-001, SRS-ALERT-005, SRS-ALERT-009, SRS-MEAL-003 |
Closed |
| CR-2026-02-21-01 | 2026-02-21 | 47d098e |
Pass | Auth/cloud config and settings-account-session review: runtime lifecycle now gates on auth state and login-flow task cancellation avoids stale async state updates; targeted infrastructure test and full app unit suite passed. | N/A | SRS-SEC-001, SRS-SEC-004, SRS-UI-001 |
Closed |
| CR-2026-02-21-02 | 2026-02-21 | d43d217 |
Pass | Planning-doc review: telemetry integration plan aligned to live cloud ingest contract, phased event taxonomy defined (including critical UI interaction telemetry for subject-story reconstruction), and Workstream J/DevChangePlan synchronized. | N/A | N/A (planning only) |
Closed |
| CR-2026-02-21-03 | 2026-02-21 | 13205f0 |
Pass | Planning-doc review: added CloudWatch severity-filtered client logging roadmap (default error, settings threshold, remote TTL override precedence, governance, and verification gates) and synchronized Workstream J + DevChangePlan implementation touchpoints. |
N/A | N/A (planning only) |
Closed |
| CR-2026-02-21-04 | 2026-02-21 | ca69526 |
Pass | Planning-doc review: added Algo2015 native diagnostic stream routing plan (BP_LOG tail -> structured app.log.batch upload), severity mapping, correlation strategy, and Workstream J/DevChangePlan checklist updates. |
N/A | N/A (planning only) |
Closed |
| CR-2026-02-21-05 | 2026-02-21 | 6f208aa |
Pass | Focused auth/session architecture cleanup review: introduced app-layer secure session boundary (AppAuthSessionManager, AuthenticatedAPIClient), launch-time restore/sign-out-clear behavior, and targeted infrastructure tests for token parsing, refresh, restore, and unauthorized retry; no actionable regressions found. |
N/A | SRS-SEC-003, SRS-SEC-004, SRS-SEC-006 |
Closed |
| CR-2026-02-21-06 | 2026-02-21 | ce193b9 |
Pass | Password-recovery flow review: added unauthenticated forgot-password routing, Cognito reset-code request/confirm service behavior, and UI reset/resend workflow with targeted infrastructure tests for ForgotPassword and ConfirmForgotPassword success paths; no actionable regressions found. |
N/A | SRS-SEC-004, SRS-SEC-006, SRS-SEC-007 |
Closed |
| CR-2026-02-21-07 | 2026-02-21 | 1feaf6f |
Pass | Auth UX/security review: restored iOS Password AutoFill/Strong Password semantics by using username + newPassword text-content metadata across login/create/reset forms so reset/login paths can participate in system credential update/save heuristics; no functional regressions in targeted infra suite. |
N/A | SRS-SEC-004, SRS-SEC-007 |
Closed |
| CR-2026-02-21-08 | 2026-02-21 | bd65737 |
Findings | Safety review found auth-state coupling that stopped/reset loop runtime when unauthenticated; fixed by decoupling runtime lifecycle from auth state (AppRuntimeLifecyclePolicy), preserving local therapy continuity, and adding regression tests for unauthenticated runtime run policy and UI-test-only suppression. |
3ac4874 |
SRS-SEC-006, SRS-RUN-003 |
Closed |
| CR-2026-02-21-09 | 2026-02-21 | 3ac4874 |
Pass | Auth continuity/access review: launch now forces explicit login prompt while preserving active-loop Home fallback, persistent ALERT-AUTH-LOGIN-REQUIRED is shown until re-authentication, and Home alert includes direct Log In action. Added regression tests for active-algorithm-state detection, unauthenticated Home-bypass eligibility, and auth-recovery alert construction; targeted runtime/infrastructure suites passed. |
N/A | SRS-SEC-006, SRS-SEC-008, SRS-SEC-009, SRS-UI-002, SRS-ALERT-003 |
Closed |
| CR-2026-02-21-10 | 2026-02-21 | 508a0a6 |
Pass | Auth session lifecycle review: removed launch-time forced sign-out/login and restored seamless token-based launch behavior (restoreAuthenticatedSessionIfPossible), while preserving explicit-login fallback and active-loop auth-recovery alert path. Added launch-policy regression tests to verify keep-authenticated vs require-login outcomes. |
N/A | SRS-SEC-006, SRS-SEC-008, SRS-SEC-009, SRS-UI-001 |
Closed |
| CR-2026-02-21-11 | 2026-02-21 | 508a0a6 |
Findings | Review found launch-restore race where stale initiallyAuthenticated could re-authenticate app state after explicit user sign-out during restore. Fixed by re-checking current auth state post-restore and preserving current unauthenticated state (preserveCurrentState) instead of forcing completeAuthentication/showLogin; added regression test for sign-out-during-restore policy. |
508a0a6 |
SRS-SEC-008, SRS-SEC-009 |
Closed |
| CR-2026-02-21-12 | 2026-02-21 | a893a5b |
Pass | Workstream J initial implementation review: added authenticated telemetry envelope reporter (event_id/session_id/version/build/env), wired non-blocking runtime loop-step and alert lifecycle emits, and added unit tests for envelope contract + environment normalization + subject fallback. Focused alert/runtime/infrastructure suites passed. |
N/A | SRS-LOG-001, SRS-LOG-002, SRS-LOG-003 |
Closed |
| CR-2026-02-21-13 | 2026-02-21 | f50b518 |
Pass | Telemetry identity-correlation review: cloud envelope now includes auth_user_sub, populated from Cognito ID-token sub extraction with controlled UNSET fallback; contract docs updated to require server-side JWT sub truth enforcement and mismatch policy. Added infrastructure tests for envelope field presence, token-derived sub extraction, and malformed-token handling. |
N/A | SRS-LOG-001, SRS-LOG-003, SRS-SEC-003, SRS-SEC-004 |
Closed |
| CR-2026-02-21-14 | 2026-02-21 | b3ba0b3 |
Pass | Telemetry emitter expansion review: added app lifecycle/auth session telemetry emits, CGM connection/state/processed-masked reading emits, pump connection/status/command-result emits, runtime loop session/command emits, and alert notification schedule/clear/tap emits; docs navigation updated for telemetry contract visibility. Full BionicLoopTests suite passed (xcodebuild ... -only-testing:BionicLoopTests test). |
N/A | SRS-LOG-001, SRS-LOG-003, SRS-ALERT-007 |
Closed |
| CR-2026-02-22-01 | 2026-02-22 | d7d8bf3 |
Pass | Telemetry contract alignment review: loop step emits now include explicit step_executed_at for execution semantics independent of envelope created_at; runtime tests updated and contract docs synchronized. |
N/A | SRS-LOG-001 |
Closed |
| CR-2026-02-22-02 | 2026-02-22 | 429e399 |
Pass | Auth/session and dev-config hardening review: finalized auth flow wiring and CC-DEV Cognito/telemetry configuration with updated infrastructure test coverage and no actionable regressions. | N/A | SRS-SEC-003, SRS-SEC-004, SRS-SEC-006, SRS-LOG-001 |
Closed |
| CR-2026-02-21-15 | 2026-02-21 | bc85b60 |
Findings | Telemetry/auth review found four issues: over-emission of loop.command.blocked for non-command skips, mixed schema use for pump.command.result, token-scope validation ordering that could persist unusable recovered tokens, and stale has_sensor telemetry in cgm.state.changed. Fixes added command-telemetry mapping guards, schema separation, scope-before-persist validation, and refreshed-state CGM telemetry derivation with targeted runtime/infrastructure tests. |
cf6434a |
SRS-LOG-001, SRS-LOG-003, SRS-SEC-004 |
Closed |
| CR-2026-02-23-01 | 2026-02-23 | cf6434a |
Findings | Telemetry review found (1) duplicate/contradictory meal submit outcomes due to pre-validation UI success emit plus runtime emit, (2) non-canonical manual-BG tap element_id, and (3) repeated alert.notification.cleared emissions from idempotent retract calls. |
9feac5b |
SRS-LOG-001, SRS-LOG-003, SRS-UI-002, SRS-ALERT-007 |
Closed |
| CR-2026-02-25-01 | 2026-02-25 | 91017b4 |
Findings | Pump telemetry review found repeated unchanged pump.command.result (request_step idle) emissions during status refresh loops, creating cloud-side noise and false activity perception. Fix added change-driven snapshot gating across step/requested/delivered/state with pod-inactive/session-reset snapshot clearing; added evaluator regression tests and updated telemetry design/contract docs. |
91017b4 |
SRS-LOG-001, SRS-LOG-003 |
Closed |
| CR-2026-02-26-01 | 2026-02-26 | 5f09729 |
Pass | Algorithm-surface review confirmed TMAX plumbing is now end-to-end across host bridge and C++ Configure path (tmaxMinutes -> customValues[0] -> PeakT/T_95_Runtime) with deterministic differential replay assertions and full regression suites passing (swift test for BionicLoopCore and xcodebuild ... -only-testing:BionicLoopTests test). |
N/A | SRS-ALG-003, SRS-ALG-005 |
Closed |
| CR-2026-02-26-02 | 2026-02-26 | ae73134 |
Pass | Meal-upfront integration review confirmed bridge/runtime/core consumption path (mealUpfrontPercent -> customValues[1] -> cpp normalization + PP_TargetRs) with deterministic differential replay assertions (target, mealUpfrontPercent, tmaxMinutes) and synchronized planning/quality trace docs. Regression validation passed via swift test (BionicLoopCore, 91/91) and focused app runtime/infrastructure suite (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopRuntimeTests -only-testing:BionicLoopTests/BionicLoopInfrastructureTests test). |
N/A | SRS-ALG-003, SRS-ALG-005 |
Closed |
| CR-2026-02-26-03 | 2026-02-26 | 5978aea |
Pass | Clinical Settings UX/lock-flow review confirmed routed Clinical Settings entry, auto-lock behavior on exit, and save-review confirmation UX updates remained behavior-safe; K4 regression coverage was added to verify Start/Reset semantics are unchanged after relocation and Reset does not clear persisted clinical config values. Full app unit suite passed (xcodebuild ... -only-testing:BionicLoopTests test). |
N/A | SRS-CLIN-001, SRS-CLIN-002, SRS-CLIN-003, SRS-CLIN-008 |
Closed |
| CR-2026-02-26-04 | 2026-02-26 | 57d12fc |
Pass | K5 verification/traceability review confirmed clinical save policy extraction and regression coverage for blocked/review/save/cancel semantics, deterministic ui.critical telemetry mapping for Clinical Settings save flow, and quality-trace synchronization (SRS/SDD/SVVP/RTM/ExecutionPlan). Test evidence: full app unit suite pass (xcodebuild ... -only-testing:BionicLoopTests test) and UITest compile validation via build-for-testing (CODE_SIGNING_ALLOWED=NO), with direct UITest execution still blocked by scheme/test-plan membership. |
N/A | SRS-CLIN-001, SRS-CLIN-002, SRS-CLIN-003, SRS-CLIN-007, SRS-CLIN-008, SRS-LOG-001, SRS-LOG-005 |
Closed |
| CR-2026-02-27-01 | 2026-02-27 | ada4c39 |
Pass | Review confirmed clock-sync safety slice is internally consistent: midpoint UTC drift calculation with retries/unavailable handling, launch/foreground/time-change trigger policy, lifecycle timezone/clock telemetry fields, and non-blocking skew alert rate-limited to once per 24h. Also confirmed UITest scheme enablement and clinical-save UI test hardening updates. Test evidence: xcodebuild ... -only-testing:BionicLoopTests/BionicLoopInfrastructureTests test, xcodebuild ... -only-testing:BionicLoopUITests test, plus focused rerun LoopTelemetryStoreTests.testCSVExportIncludesAlgorithmInputOutputHeadersAndRowValues (pass). |
N/A | SRS-LOG-006, SRS-UI-006, SRS-LOG-005, SRS-CLIN-007 |
Closed |
| CR-2026-03-08-01 | 2026-03-08 | 1a80a59 |
Pass | UI polish review: Settings now exposes read-only current Clinical Settings values (Subject ID, Weight, Glucose Target, Meal Split, TMAX) without unlock; Alert Center now renders alert timestamps with full date + time in both Active and Recently Cleared lists. Targeted UI regression tests passed (testUI008, testUI010) and simulator build passed. |
N/A | SRS-CLIN-001, SRS-ALERT-002, SRS-ALERT-008 |
Closed |
| CR-2026-03-09-01 | 2026-03-09 | 86514e3 |
Pass | A1 closeout verification review: added deterministic meal-upfront differential assertions (75% vs 90%) and DASH minimum-quantum reconciliation regression coverage (requested vs delivered feedback), then synced planning + SVVP + RTM status/evidence references. Full BionicLoopCore suite passed (98/98, swift test). |
N/A | SRS-ALG-005, SRS-PUMP-003, SRS-LOG-001 |
Closed |
| CR-2026-03-09-02 | 2026-03-09 | dbfce45 |
Pass | Traceability closeout review: RTM RA-014 now points to a concrete staged STR package (manifest.json + evaluation-summary.json + coverage/static-analysis artifacts), and planning checklists (ExecutionPlan, NextSprintChecklist) were synchronized to mark L4 evidence-link closure. |
N/A | N/A (docs/traceability only) |
Closed |
| CR-2026-03-09-03 | 2026-03-09 | d02c3d4 |
Pass | Planning review: added dedicated uncovered-branch signoff packet (Algo2015UncoveredBranchReviewPacket.md) with required reviewers, pre-read artifact links, agenda, and signoff template; synchronized Algo2015ExecutionRoadmap, ExecutionPlan, and NextSprintChecklist to current evidence paths and review sequencing. |
N/A | N/A (planning only) |
Closed |
| CR-2026-03-09-04 | 2026-03-09 | ed642a1 |
Findings | Telemetry-volume review found repeated no-op clear/retract paths causing redundant alert.notification.cleared churn during pump/CGM sync loops. Fix added no-op clear guards in Home alert condition updates, active-only retract planning for pump expiration sync, and active-key retract gating in CGM sync; added regression coverage for all three spam paths. |
ed642a1 |
SRS-ALERT-004, SRS-ALERT-007, SRS-LOG-001 |
Closed |
| CR-2026-03-10-01 | 2026-03-10 | 066aeeb |
Pass | BionicLoop-only review confirmed exact Algo2015 BP artifact telemetry upload behavior: BP/BP_LOG sources bypass generic log threshold, preserve exact line text + line numbering + blank lines, upload chunked artifact batches without truncation, and add focused infrastructure regression coverage. IDE submission quality docs now include the baseline freeze plan and updated operating order. Test evidence: focused infrastructure suite passed (xcodebuild -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests/BionicLoopInfrastructureTests test). |
N/A | SRS-LOG-001, SRS-LOG-003 |
Closed |
| CR-2026-03-10-02 | 2026-03-10 | ce024c3 |
Pass | Structured inspection telemetry redesign phases 1-4 app-side baseline review passed: added canonical algorithm.session.snapshot / algorithm.step.snapshot payloads, bridge-expanded typed inspection snapshots for full BP rows plus BP_LOG A, AD/G24h, B, C, D, S, dual-write equivalence rendering for single-step golden BP/BP_LOG output, and synchronized planning/Part 11 docs. Focused verification passed via swift test --package-path BionicLoopCore and xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests/BionicLoopRuntimeTests -only-testing:BionicLoopTests/BionicLoopInfrastructureTests -only-testing:BionicLoopTests/BionicLoopTests test. |
N/A | SRS-LOG-001, SRS-LOG-003 |
Closed |
| CR-2026-03-10-03 | 2026-03-10 | b53a12c |
Pass | Structured inspection telemetry extension review passed: surfaced the remaining native BP_LOG families (I, G, ~I, ~G, PA, P) as typed app-side inspection payloads, extended equivalence rendering in legacy order, added bridge-fed regression coverage for confirmed-dose and treatment-family capture, and synchronized the Scout handoff, contract, execution, telemetry, and Part 11 planning docs to reflect full currently generated BP/BP_LOG family coverage. Verification passed via full core suite (swift test --package-path BionicLoopCore, 108/108) and focused app suite (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests/BionicLoopInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeTests -only-testing:BionicLoopTests/BionicLoopTests). |
N/A | SRS-LOG-001, SRS-LOG-003 |
Closed |
| CR-2026-03-11-01 | 2026-03-11 | ca6ecc5 |
Pass | Runtime/alert review for CGM interruption handling passed: added distinct ALERT-CGM-DATA-INTERRUPTION with 15-minute accepted-reading deadline reset semantics, foreground recomputation from persisted receipt time, clear-on-recovery/disarm behavior, synchronized architecture/SRS/SDD/SVVP/RTM docs, and explicit disarmed-path regression coverage before closeout. Verification passed via full app unit suite (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests). |
N/A | SRS-CGM-005, SRS-ALERT-013, SRS-UI-001, SRS-UI-002 |
Closed |
| CR-2026-03-11-02 | 2026-03-11 | f3c1d42 |
Pass | Runtime/alert review for step-based interruption handling passed: replaced the CGM-receipt-specific interruption alert with ALERT-ALGORITHM-STEPPING-INTERRUPTED, keyed to 15 minutes without a successful algorithm step while armed, with session-start fallback before first successful step, blocker-detail messaging, Home notification routing, and clear-on-success/disarm behavior. SRS/SDD/SVVP/RTM/architecture/planning docs were synchronized to the new baseline. Verification passed via focused interruption regressions and the broader app unit suite (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'id=21A8EB79-294B-4DB2-8AB5-9166F5B375A8' -only-testing:BionicLoopTests). |
N/A | SRS-CGM-005, SRS-ALERT-013, SRS-ALERT-014, SRS-UI-001, SRS-UI-002 |
Closed |
| CR-2026-03-11-03 | 2026-03-11 | f3c1d42 |
Findings | Follow-up review found two interruption-alert gaps: blocker-specific relaunch recomputation degraded to generic messaging because blocker detail depended on transient lastDoWorkResult, and ALERT-ALGORITHM-STEPPING-INTERRUPTED did not surface No Pod / Pump Signal Loss blocker detail even though controlled docs claimed blocker-aware content. Fix persisted durable interruption blocker context for relaunch recovery, derived blocker detail from active root-cause alerts where available, and added focused regression coverage for persisted missing-CGM, active no-pod, and active signal-loss foreground refresh cases. Verification passed via focused infrastructure tests and the full BionicLoopTests suite. |
a74c8fc |
SRS-ALERT-013, SRS-ALERT-014, SRS-UI-001, SRS-UI-002 |
Closed |
| CR-2026-03-11-04 | 2026-03-11 | 512b310 |
Pass | Runtime reconnect-fallback review passed: app runtime now dispatches guarded pumpReconnect wake attempts from pump-status recovery (not raw BLE connect), only after the first anchored step exists and only when accepted CGM receipt age exceeds 5 minutes; fresh CGM suppresses reconnect fallback again, and loop-off/pre-anchor states skip execution. Controlled docs (Architecture, Requirements, SRS, SDD, SVVP, RTM, RA, AlertInventory, ExecutionPlan, DevChangePlan, AGENTS) were synchronized to the implemented baseline. Verification passed via focused infrastructure/alert suites, swift test --package-path BionicLoopCore, and the broader app unit suite (xcodebuild ... -only-testing:BionicLoopTests). STR-SIM working evidence: Docs/Quality/Evidence/Working/STR-SIM-001/2026-03-11-pump-reconnect-fallback/; TV-SIM-* N/A for this slice, covered verification IDs were TV-RUN-003, TV-RUN-004, TV-RUN-005, TV-RUN-006, TV-CGM-005. |
N/A | SRS-RUN-003, SRS-RUN-004, SRS-RUN-005, SRS-CGM-005 |
Closed |
| CR-2026-03-11-05 | 2026-03-11 | 3bed77b |
Pass | Home chart empty-state review passed: the combined trend chart now distinguishes No CGM data in this time range from No CGM or insulin data in this time range, so insulin-only windows no longer imply that all timeline data is absent. Added focused regression coverage for CGM-only, insulin-only, and fully empty ranges; verification passed via focused BionicLoopHomeStateTests and the broader app unit suite (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests). |
N/A | SRS-UI-002 |
Closed |
| CR-2026-03-12-01 | 2026-03-12 | 586cef3 |
Pass | Home/meal UX review passed: meal announce composer now revalidates availability on foreground refresh and immediately before submit so stale open composers are converted into current blocked messaging instead of dispatching invalid requests; Home loop-status tile now refreshes from a time-driven source so cadence-state transitions (Active -> Aging) update without requiring a tap. Added focused regression coverage for foreground-only meal revalidation, unavailable continuation mapping, and the exact two-minute loop-status grace boundary. Verification passed via focused BionicLoopRuntimeTests, focused BionicLoopHomeStateTests, and the broader app unit suite (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests). |
N/A | SRS-MEAL-006, SRS-UI-001, SRS-UI-002 |
Closed |
| CR-2026-03-12-02 | 2026-03-12 | f5d2a4b |
Pass | Home chart BG-marker review passed: manual BG entries now render as blood-drop markers on the combined trend chart when the algorithm actually consumed a valid BG value, regardless of the eventual executed wake cause. Marker placement now follows the CGM vertical axis and clamps display position to the visible 40...400 mg/dL range so low/high entries stay on-chart without changing underlying algorithm input values. Focused regression coverage was added for BG-step selection and out-of-range marker clamping; simulator sample seeding was added for screenshot verification. Verification passed via focused BionicLoopHomeStateTests (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests/BionicLoopHomeStateTests). |
N/A | SRS-UI-002 |
Closed |
| CR-2026-03-12-03 | 2026-03-12 | 86ce7ba |
Pass | CGM telemetry-noise review passed: app-level cgm.connection.changed emission is now gated on a stable connection signature (lifecycleState, sensorID, hasSensor) so transient non-adopted peripheral churn and repeated unchanged connection callbacks no longer generate duplicate cloud events. Raw BLE trace remains available behind existing diagnostic filters; focused infrastructure verification passed (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests/BionicLoopInfrastructureTests). |
N/A | SRS-LOG-001, SRS-LOG-003 |
Closed |
| CR-2026-03-12-04 | 2026-03-12 | 8e5ab4c |
Findings | Cloud log batch review found app.log.batch.entries[*].timestamp was serialized via the generic Date encoder instead of the backend-required ISO-8601 UTC string format, causing permanent 400 invalid_payload_schema failures for BP/BP_LOG artifact uploads. Fixed by encoding each entry timestamp explicitly with a UTC fractional-seconds ISO-8601 formatter and adding focused regression assertions for both BP_LOG and BP matrix bypass paths. Verification passed via focused BionicLoopInfrastructureTests (xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:BionicLoopTests/BionicLoopInfrastructureTests). |
8e5ab4c |
SRS-LOG-001, SRS-LOG-003 |
Closed |
| CR-2026-03-12-05 | 2026-03-12 | fc25d56 |
Pass | Console logging review passed: app-owned runtime/API/telemetry/CGM BLE console prints now route through a shared formatter that prefixes local timestamps as YYYY-MM-DD HH:MM:SS.S, improving correlation of simulator/device logs without changing payload content. Added focused regression coverage for the formatter contract; verification passed via xcodebuild test -project BionicLoop.xcodeproj -scheme BionicLoop -destination 'id=21A8EB79-294B-4DB2-8AB5-9166F5B375A8' -only-testing:BionicLoopTests/BionicLoopInfrastructureTests. |
fc25d56 |
N/A (diagnostic logging only) |
Closed |
| CR-2026-03-13-01 | 2026-03-13 | 54d1330 |
Findings | Meal announce safety review found persisted pending-request state was being written before coordinator acceptance, allowing relaunch/crash to create false duplicate-blocks against requests that never secured an execution slot, and the initial persistence test used a fixed sleep that could flake under load. The fix moved pending-state persistence into the coordinator after concrete slot acceptance, removed app-side target-step guessing, replaced the timing-based test with bounded polling on real state transition, and extended Home/runtime handling so meal submit stays in a submitting state until runtime result is known, blocked/rejected outcomes present explicit recovery messaging, and uncertain command outcomes remain blocked until reconciliation. Verification passed via swift test --package-path BionicLoopCore --filter LoopRuntimeCoordinatorMealAnnouncementTests, focused BionicLoopRuntimeTests, focused BionicLoopHomeStateTests, and the broader xcodebuild ... -only-testing:BionicLoopTests suite. |
54d1330 |
SRS-MEAL-007, SRS-MEAL-008, SRS-MEAL-009, SRS-LOG-007, SRS-UI-002 |
Closed |
| CR-2026-03-15-01 | 2026-03-15 | 3e1e57d |
Pass | Meal slot-conflict review passed: Home now records the lastExecutedStep seen when the meal composer opens, coordinator compares that snapshot at acceptance time, and meal submit is blocked with explicit slot_conflict retry guidance if CGM or reconnect advanced the slot first. The implementation preserves the conservative policy of no silent reassignment to a later borrowed step, adds explicit runtime/Home presentation coverage for the new conflict path, and extends cloud-contract docs so mealSlotConflict is treated as a first-class skipped-step reason. Verification passed via swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinatorMealAnnouncementTests, focused xcodebuild ... -only-testing:BionicLoopTests/BionicLoopRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeStateTests, and the broader xcodebuild ... -only-testing:BionicLoopTests suite. |
3e1e57d |
SRS-MEAL-010, SRS-UI-002, TV-MEAL-011, SRS-LOG-007 |
Closed |
| CR-2026-03-15-02 | 2026-03-15 | b15151c |
Pass | Follow-up review on the meal slot-conflict hardening fix found no remaining issues in the submit-context patch. Home now snapshots the observed meal slot before launching async submit work, so background cancellation cannot nil the coordinator-facing slot snapshot, and pre-runtime ui.critical.submit telemetry links to the originally observed slot rather than the post-conflict next step. Added regression coverage for observed-slot submit linkage and fallback linkage when no observed slot exists. Verification passed via focused xcodebuild ... -only-testing:BionicLoopTests/BionicLoopHomeStateTests and the broader xcodebuild ... -only-testing:BionicLoopTests suite. |
b15151c |
SRS-MEAL-010, SRS-LOG-007, SRS-UI-002, TV-MEAL-011 |
Closed |
| CR-2026-03-27-01 | 2026-03-27 | a20f006 |
Pass | Clinical target-profile review passed: Clinical Settings now persists a clinician-controlled participant target-access profile (Pregnancy / Standard), participant-facing settings expose only profile-allowed targets, target changes require approval capture with staff name + approximate approval time before apply, and target-change/clinical-save telemetry now carries target_range_profile plus approval metadata. The clinician picker is constrained to the selected profile subset with nearest-allowed normalization on profile switch, and custom confirmation sheets now keep full-width cancel actions aligned with affirmative buttons without the inset divider artifact. Verification passed via focused UI xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'id=21A8EB79-294B-4DB2-8AB5-9166F5B375A8' -only-testing:BionicLoopUITests/testUI004a_CancelButtonsUseFullWidthActionStyle -only-testing:BionicLoopUITests/testUI014_RegularTargetChangeRequiresApprovalCaptureAndPersists -only-testing:BionicLoopUITests/testUI015_ClinicalTargetPickerFollowsSelectedProfileRange -only-testing:BionicLoopUITests/testUI016_ClinicalProfileChangeNormalizesTargetAndPersists and broader xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'id=21A8EB79-294B-4DB2-8AB5-9166F5B375A8' -only-testing:BionicLoopTests. |
N/A | SRS-CLIN-009, SRS-CLIN-010, SRS-CLIN-011, SRS-CLIN-012, SRS-LOG-008 |
Closed |
| CR-2026-03-27-02 | 2026-03-27 | c25c2bc |
Pass | Planning review passed: added the March 20, 2026 IDE readiness meeting packet and docs index link, including owner/domain suggestions, submission-readiness blockers, schedule framing toward a mid-April target, and decision prompts for protocol/consent, algorithm/investigational plan, and package-construction ownership. | N/A | N/A (planning packet only) |
Closed |
| CR-2026-03-27-03 | 2026-03-27 | 7ec1b28 |
Pass | Cloud handoff review passed: added a focused BionicScout telemetry handoff note summarizing the current structured inspection events, meal lifecycle correlation keyed by flow_id, explicit command_outcome semantics, target-profile/approval-capture settings telemetry, manual-BG marker guidance, and current cloud-side non-assumptions. This is a docs-only integration aid intended to keep backend/query work aligned with the committed app contract. |
N/A | N/A (handoff note only) |
Closed |
| CR-2026-03-27-04 | 2026-03-27 | 789250d |
Pass | STP/integration-log workflow review passed: authored the initial controlled STP-* protocol set and ownership map, added the STR execution/reporting guide, and implemented the debug Integration Test Session workflow with persisted active/last run IDs, per-entry session metadata enrichment, explicit start/stop/expiry markers, and idempotent active-session start behavior. The Home Settings panel now supports tester-facing start/stop/copy flow with UTC session details, and the planning/quality docs were tightened so reviewers rely on the tester-provided test_run_id plus UTC window until CloudWatch metadata preservation is verified end to end. Verification passed via focused infrastructure xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -only-testing:BionicLoopTests/BionicLoopInfrastructureTests, focused UI xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -only-testing:BionicLoopUITests/testUI017_CloudLoggingIntegrationSessionCanStartAndStop, and build sanity xcodebuild build -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17'. |
N/A | SRS-LOG-001, SRS-LOG-003, SRS-LOG-008 |
Closed |
| CR-2026-03-27-05 | 2026-03-27 | 7ca7684 |
Pass | Final review on the IDE-quality/testing-doc package passed: closure, readiness, baseline-freeze, STP index, execution-plan, and March 20 briefing docs are now consistently framed as engineering-side preparation of a handoff-ready final draft package rather than engineering-owned formal release. The updated set preserves document-control metadata expectations (revision history, reviewer/approver roles, decision/effective-date placeholders) while explicitly leaving formal review/approval/release handling to the receiving quality/submission team. No code-path changes or test execution were required because this was a docs-only scope clarification. | N/A | N/A (quality/planning handoff framing only) |
Closed |
| CR-2026-03-27-06 | 2026-03-27 | 2cbe325 |
Pass | Swift code-quality foundation review passed: added a draft Swift coding standard, rollout/baseline planning docs, draft report-only SwiftLint and SwiftFormat configs, and a reusable run_swift_quality_checks.sh runner without enabling enforcement or changing app logic. Validation confirmed the runner parses cleanly, report-only format/lint dry runs succeed with explicit “tool missing” output when local binaries are unavailable, and the initial xcodebuild analyze lane succeeds for BionicLoop; the zero-regression rule for the first cleanup pass is now explicit in the standard, plan, SOP, and execution plan. |
N/A | N/A (process/tooling quality standard only) |
Closed |
| CR-2026-03-27-07 | 2026-03-27 | 41f1b87 |
Pass | Swift quality-baseline review passed: installed local SwiftLint and SwiftFormat, narrowed the initial config set to a conservative, high-signal subset, added .swift-version, hardened the report-only runner so formatter/linter/analyzer findings are captured without mutating code, and generated the first real baseline summary. The current baseline shows formatter noise is mostly mechanical import/blank-line cleanup, while lint findings are concentrated in force_try, oversized files/types/functions, a small number of raw print calls, and one complexity hit; xcodebuild analyze is green for BionicLoop. |
N/A | N/A (process/tooling baseline only) |
Closed |
| CR-2026-03-27-08 | 2026-03-27 | f6a1361 |
Pass | Non-functional Swift quality cleanup review passed: removed try! usage from BionicLoopAlertTests.swift and BionicLoopInfrastructureTests.swift by converting affected tests/helpers to throwing flows and replacing force-unwrapped decode paths with XCTUnwrap, without changing app/runtime behavior. Before/after verification remained consistent: swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore, focused xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlertTests, focused xcodebuild ... -only-testing:BionicLoopTests/BionicLoopInfrastructureTests, and post-change isolated rerun of the known flaky LoopTelemetryStoreTests.testCSVExportIncludesAlgorithmInputOutputHeadersAndRowValues all passed; the broader BionicLoopTests suite still has the same pre-existing local result-bundle instability noted in the baseline doc. |
N/A | N/A (non-functional test-only code quality cleanup) |
Closed |
| CR-2026-03-27-09 | 2026-03-27 | ddade6e |
Pass | Non-functional Swift quality cleanup review passed: removed the final remaining try! from the pump alert regex initializer by switching to a static closure with deterministic fast-fail on invalid hard-coded pattern, added characterization coverage for abbreviated duration text in BionicLoopAlertTests, removed the remaining stray raw print(...) from BionicLoopCoreTests, and tightened the no_raw_print lint rule so the approved BionicLoopConsoleLogger wrapper is no longer falsely flagged. Verification remained green with xcodebuild build -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17', focused xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlertTests, focused xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlertTests/testPumpAlertMapperExpiringCountdownSupportsAbbreviatedDurationUnits, isolated xcodebuild ... -only-testing:BionicLoopTests/LoopTelemetryStoreTests/testCSVExportIncludesAlgorithmInputOutputHeadersAndRowValues, and swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore (113 tests passed). |
N/A | N/A (non-functional Swift code quality cleanup) |
Closed |
| CR-2026-03-27-10 | 2026-03-27 | a5e8eca |
Pass | Non-functional Swift quality cleanup review passed: split the old mixed-concern BionicLoopCoreTests.swift into focused test files for algorithm state behavior, snapshot compatibility, and inspection publication without changing test logic or assertions. The move reduced type_body_length baseline debt (10 -> 9) while preserving package coverage; verification stayed green with swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore before the split and again after the split (113 tests passed), plus a post-change swiftlint baseline rerun confirming only structural findings remain. |
N/A | N/A (non-functional core test-file split) |
Closed |
| CR-2026-03-27-11 | 2026-03-27 | ed1e9ce |
Pass | Non-functional Swift quality cleanup review passed: split the old BionicLoopHomeStateTests.swift app test monolith into focused Home view-state, action-coordinator, pod-status, and chart-derivation test files without changing assertions or app logic, and updated BionicLoop.xcodeproj membership manually so the app test target continues compiling without xcodegen. Focused before/after verification remained green (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopHomeStateTests before the split; xcodebuild ... -only-testing:BionicLoopTests/BionicLoopHomeViewStateBuilderTests -only-testing:BionicLoopTests/BionicLoopHomeActionCoordinatorTests -only-testing:BionicLoopTests/BionicLoopHomePodStatusTests -only-testing:BionicLoopTests/BionicLoopHomeChartTests after the split). The broader xcodebuild ... -only-testing:BionicLoopTests suite still lands on the same pre-existing unrelated LoopTelemetryStoreTests.testCSVExportIncludesAlgorithmInputOutputHeadersAndRowValues failure, and that test continues to pass in isolated reruns. |
N/A | N/A (non-functional app test-file split) |
Closed |
| CR-2026-03-27-12 | 2026-03-27 | 6b82f8f |
Pass | Non-functional Swift quality cleanup review passed: split the old BionicLoopAlertTests.swift app test monolith into focused alert-center, pump-alert-mapper, CGM-alert-mapper, alert-lifecycle, alert-persistence, pump-alert-monitoring, pump-status-alert, and CGM-observer-fanout test files without changing assertions or product logic, and updated BionicLoop.xcodeproj membership manually so the app test target continues compiling without xcodegen. Focused before/after verification remained green (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlertTests before the split; xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMapperTests -only-testing:BionicLoopTests/BionicLoopCGMAlertMapperTests -only-testing:BionicLoopTests/BionicLoopAlertLifecycleTests -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests -only-testing:BionicLoopTests/BionicLoopPumpStatusAlertTests -only-testing:BionicLoopTests/BionicLoopCGMObserverFanoutTests after the split), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed. A post-change swiftlint baseline rerun confirmed further structural debt reduction (file_length: 9, type_body_length: 7) with no new functional findings introduced. |
N/A | N/A (non-functional app alert test-file split) |
Closed |
| CR-2026-03-27-13 | 2026-03-27 | af131a4 |
Pass | Non-functional Swift quality cleanup review passed: split the old LoopRuntimeCoordinatorMealAnnouncementTests.swift SwiftPM test monolith into focused meal-execution and meal-announcement-durability files without changing assertions or core logic. Focused post-change verification remained green with swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinatorMeal, and the broader swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore suite also stayed green (113 tests passed). A post-change swiftlint baseline rerun confirmed that this organizational split reduced review surface without introducing any new structural findings. |
N/A | N/A (non-functional core meal test split) |
Closed |
| CR-2026-03-27-14 | 2026-03-27 | ad81276 |
Findings | Non-functional Swift quality cleanup review found one bookkeeping gap after the infrastructure-test split: the new focused BionicLoopTests/*InfrastructureTests.swift files and manual BionicLoop.xcodeproj membership updates were correct and focused verification passed, but the old BionicLoopInfrastructureTests.swift monolith had not yet been removed from git history. Broader xcodebuild ... -only-testing:BionicLoopTests still only showed the same pre-existing unrelated LoopTelemetryStoreTests.testCSVExportIncludesAlgorithmInputOutputHeadersAndRowValues failure, and that test passed in isolated rerun; the stale tracked monolith was then removed in follow-up commit 7c342fa. |
7c342fa |
N/A (non-functional app infrastructure test split) |
Closed |
| CR-2026-03-27-15 | 2026-03-27 | 7c342fa |
Pass | Follow-up review confirmed the obsolete BionicLoopInfrastructureTests.swift monolith is now removed from the repo, leaving the focused infrastructure test files plus shared support helpers as the sole source of that coverage. The split remains non-functional, the manual project wiring continues to compile, the focused infrastructure lane is green, and the only broad-suite failure remains the same isolated-rerun-stable LoopTelemetryStoreTests.testCSVExportIncludesAlgorithmInputOutputHeadersAndRowValues flake rather than any regression introduced by the split. |
N/A | N/A (non-functional app infrastructure test split) |
Closed |
| CR-2026-03-27-16 | 2026-03-27 | 8023980 |
Pass | Non-functional Swift quality cleanup review passed: split the old BionicLoopRuntimeTests.swift app test monolith into focused runtime-concern files for clinical settings, meal announcement, loop status, home alert policy, telemetry mappers, alert-center behavior, and Home UI-critical telemetry, plus shared support helpers, without changing assertions or product logic. Manual BionicLoop.xcodeproj membership updates compile cleanly without xcodegen; focused pre/post verification stayed green (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopRuntimeTests before the split; xcodebuild ... -only-testing:BionicLoopTests/BionicLoopClinicalSettingsRuntimeTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopTests/BionicLoopLoopStatusRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeAlertRuntimeTests -only-testing:BionicLoopTests/BionicLoopTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeUICriticalRuntimeTests after the split), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed. Post-change lint baseline shows the runtime monolith is retired (file_length: 7), though two focused runtime test classes remain above the type_body_length threshold for later follow-up. |
N/A | N/A (non-functional app runtime test split) |
Closed |
| CR-2026-03-27-17 | 2026-03-27 | d63be56 |
Pass | Non-functional Swift quality cleanup review passed: split the old BionicLoopUITests.swift UI test monolith into focused Home, Clinical Settings, Cloud Logging, and IFU capture files plus shared UI-test helpers, without changing product logic or test assertions. Manual BionicLoop.xcodeproj membership updates compile cleanly without xcodegen; regular-target UI queries were normalized to the actual XCTest-visible button labels, and the IFU capture flow was stabilized with a deterministic one-direction settings-row scroll helper for deep Settings rows. Focused verification stayed green (BionicLoopHomeUITests, BionicLoopClinicalSettingsUITests, BionicLoopCloudLoggingUITests, BionicLoopIFUCaptureUITests), and the broader xcodebuild ... -only-testing:BionicLoopUITests suite also passed (Test-BionicLoop-2026.03.27_16-10-15--0400.xcresult). Post-change lint baseline reduced file_length to 6 and type_body_length to 7, with only the long-scenario function_body_length bucket increasing to 17. |
N/A | N/A (non-functional UI test split) |
Closed |
| CR-2026-03-27-18 | 2026-03-27 | 31484d9 |
Pass | Non-functional Swift quality cleanup review passed: split the focused but still oversized BionicLoopMealAnnouncementRuntimeTests.swift file into separate runtime test files for meal-announcement availability/presentation, persisted pending-state behavior, and resolution/replay behavior without changing runtime assertions or product logic. Manual BionicLoop.xcodeproj membership updates compile cleanly without xcodegen; focused pre/post verification stayed green (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests before the split; xcodebuild ... -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementPersistenceRuntimeTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementResolutionRuntimeTests after the split), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed. Post-change lint baseline reduced type_body_length from 7 to 6 while keeping file_length: 6, function_body_length: 17, and cyclomatic_complexity: 1. |
N/A | N/A (non-functional meal runtime test split) |
Closed |
| CR-2026-03-27-19 | 2026-03-27 | a83152f |
Pass | Non-functional Swift quality cleanup review passed: split the old BionicLoopClinicalSettingsRuntimeTests.swift runtime test file into focused policy/profile, config-store, save-policy, and regular-target-approval files without changing assertions or product logic. Manual BionicLoop.xcodeproj membership updates compile cleanly without xcodegen; focused pre/post verification stayed green (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopClinicalSettingsRuntimeTests before the split; xcodebuild ... -only-testing:BionicLoopTests/BionicLoopClinicalSettingsRuntimeTests -only-testing:BionicLoopTests/BionicLoopClinicalConfigStoreRuntimeTests -only-testing:BionicLoopTests/BionicLoopClinicalSettingsSavePolicyRuntimeTests -only-testing:BionicLoopTests/BionicLoopRegularTargetChangeApprovalRuntimeTests after the split), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed. Post-change lint baseline reduced type_body_length from 6 to 5 while keeping file_length: 6, function_body_length: 17, and cyclomatic_complexity: 1. |
N/A | N/A (non-functional clinical-settings runtime test split) |
Closed |
| CR-2026-03-27-20 | 2026-03-27 | a2f2838 |
Pass | Non-functional Swift quality cleanup review passed: split the old BionicLoopTelemetryRuntimeTests.swift runtime test file into focused alert-lifecycle, step-telemetry, algorithm-inspection, and command-telemetry files without changing runtime telemetry assertions or product logic. Manual BionicLoop.xcodeproj membership updates compile cleanly without xcodegen; focused pre/post verification stayed green (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopTelemetryRuntimeTests before the split; xcodebuild ... -only-testing:BionicLoopTests/BionicLoopTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopStepTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopAlgorithmInspectionTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopCommandTelemetryRuntimeTests after the split), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed. Post-change lint baseline reduced type_body_length from 5 to 4 while keeping file_length: 6, function_body_length: 17, and cyclomatic_complexity: 1. |
N/A | N/A (non-functional telemetry runtime test split) |
Closed |
| CR-2026-03-27-21 | 2026-03-27 | d422453 |
Pass | Non-functional Swift quality cleanup review passed: extracted helper builders, fixture factories, and assertion helpers across the remaining long test functions in AlgorithmInspectionEquivalenceRendererTests.swift, BionicLoopAlgoDiagnosticsInfrastructureTests.swift, BionicLoopAlgorithmInspectionTelemetryRuntimeTests.swift, BionicLoopHomeActionCoordinatorTests.swift, BionicLoopHomeViewStateBuilderTests.swift, BionicLoopTests.swift, LoopTelemetryStoreTests.swift, and BionicLoopIFUCaptureUITests.swift without changing product logic or test assertions. Regenerated IFU image assets were intentionally excluded so the slice stays code/test/doc only. Verification remained green with focused app rerun (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlgorithmInspectionTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopAlgoDiagnosticsInfrastructureTests -only-testing:BionicLoopTests/BionicLoopHomeActionCoordinatorTests -only-testing:BionicLoopTests/BionicLoopHomeViewStateBuilderTests -only-testing:BionicLoopTests/LoopTelemetryStoreTests), focused core rerun (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter AlgorithmInspectionEquivalenceRendererTests), focused UI rerun (xcodebuild ... -only-testing:BionicLoopUITests/BionicLoopIFUCaptureUITests), broader xcodebuild ... -only-testing:BionicLoopTests, full swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore, and broader xcodebuild ... -only-testing:BionicLoopUITests. Post-change swiftlint baseline now shows no remaining test-side structural findings under the conservative rule set; remaining findings are production-only (file_length: 6, type_body_length: 4, function_body_length: 9, cyclomatic_complexity: 1). |
N/A | N/A (non-functional test-side structural cleanup) |
Closed |
| CR-2026-03-28-01 | 2026-03-28 | e2eb9cb |
Pass | Non-functional Swift quality cleanup review passed: extracted focused private helper builders from Algo2015InspectionSnapshotAdapter.swift so stepSnapshot(from:) and bpLogSnapshot(from:) delegate to smaller row/log-family mapping functions without changing payload shape, field ordering, or optional-family handling. Focused pre/post verification stayed green (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter AlgorithmInspectionEquivalenceRendererTests; xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlgorithmInspectionTelemetryRuntimeTests before and after), and the broader swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore plus xcodebuild ... -only-testing:BionicLoopTests suites also passed. Post-change lint baseline reduced remaining production function_body_length findings from 9 to 8, and Algo2015InspectionSnapshotAdapter.swift is now clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production helper extraction) |
Closed |
| CR-2026-03-28-02 | 2026-03-28 | ccbbc07 |
Pass | Non-functional Swift quality cleanup review passed: extracted focused private sheet-builder helpers and a shared dismiss-then helper from HomeSheetPresentationModifier.swift so the modifier body no longer carries all sheet presentation closures inline, without changing sheet content, delayed reopen timing, accessibility structure, or presentation modifiers. Focused pre/post verification stayed green (xcodebuild ... -only-testing:BionicLoopUITests/BionicLoopHomeUITests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests plus broader xcodebuild ... -only-testing:BionicLoopUITests suites also passed (Test-BionicLoop-2026.03.28_08-07-45--0400.xcresult; Test-BionicLoop-2026.03.28_08-22-23--0400.xcresult). Post-change lint baseline reduced remaining production function_body_length findings from 8 to 7, and HomeSheetPresentationModifier.swift is now clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production helper extraction) |
Closed |
| CR-2026-03-28-03 | 2026-03-28 | dda6811 |
Pass | Non-functional Swift quality cleanup review passed: extracted the cloud-log support concern from AuthSessionNetworking.swift into the new CloudLogUploadSupport.swift app file without changing auth, telemetry, integration-session, or Algo2015 log-upload behavior. Focused pre/post verification stayed green for the owning infrastructure coverage (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCloudLogPolicyInfrastructureTests -only-testing:BionicLoopTests/BionicLoopCloudLogSessionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopCloudLogBypassInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAlgoDiagnosticsInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (Test-BionicLoop-2026.03.28_10-50-15--0400.xcresult). Post-change lint shows CloudLogUploadSupport.swift is clean and AuthSessionNetworking.swift now carries only the remaining file_length finding (2411 lines); repo-wide baseline counts remain stable while the monolith’s review surface is reduced. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-28-04 | 2026-03-28 | 862b106 |
Pass | Non-functional Swift quality cleanup review passed: extracted the shared theme/button-style support block from ContentView.swift into the new BLThemeSupport.swift app file without changing auth/session routing, settings behavior, or runtime behavior. Manual BionicLoop.xcodeproj membership updates compile cleanly without xcodegen; repo-wide lint counts stayed stable while ContentView.swift dropped from 3137 to 2943 lines and the new support file is clean under SwiftLint. Verification stayed green with broader app-unit coverage (xcodebuild ... -only-testing:BionicLoopTests), isolated rerun of the transient Clinical Settings UI failure (testUI016), and the full xcodebuild ... -only-testing:BionicLoopUITests suite (Test-BionicLoop-2026.03.28_11-24-54--0400.xcresult). |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-28-05 | 2026-03-28 | bb8f9b4 |
Pass | Non-functional Swift quality cleanup review passed: extracted the pump expiration-alert planner/evaluators from PumpStatusObserver.swift into the new PumpStatusAlertSupport.swift app file and shortened updateFrom(status:) into focused private helper calls, without changing observer sequencing, reconnect-fallback policy, alert content, delivery recording, or telemetry emission semantics. Focused pre/post verification stayed green for the owning pump lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopPumpStatusAlertTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineReconnectInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/PumpStatusObserver-broader.xcresult). Post-change lint baseline reduced remaining production findings to file_length: 5, type_body_length: 4, function_body_length: 6, and cyclomatic_complexity: 1; PumpStatusObserver.swift and PumpStatusAlertSupport.swift are now clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-28-06 | 2026-03-28 | b6b1d36 |
Pass | Non-functional Swift quality cleanup review passed: extracted the private pump-alert mapping concern from AppPumpManagerDelegate.swift into the new PumpAlertMapper.swift app file and split the long alert-normalization flow into ordered helper lookups, without changing alert semantics, persistence behavior, or delegate behavior. Focused pre/post verification stayed green for the owning alert lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopPumpAlertMapperTests -only-testing:BionicLoopTests/BionicLoopAlertLifecycleTests -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/AppPumpManagerDelegate-broader.xcresult). The first post-change build surfaced the expected access-level issue from moving a private type into a separate file; the fix widened the moved mapper types to file-internal visibility only, with no logic change. Post-change lint baseline reduced remaining production findings to file_length: 4, type_body_length: 4, function_body_length: 5, and cyclomatic_complexity: 1; AppPumpManagerDelegate.swift and PumpAlertMapper.swift are now clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-29-01 | 2026-03-29 | 1736052 |
Pass | Non-functional Swift quality cleanup review passed: extracted the self-contained Algo2015 diagnostics cursor, tail-reader, and artifact-pump support block from AuthSessionNetworking.swift into the new Algo2015ArtifactTailSupport.swift app file without changing auth/session/telemetry behavior. Focused pre/post verification stayed green for the owning diagnostics lane (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAlgoDiagnosticsInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/AuthSessionNetworking-algo-broader.xcresult). Repo-wide lint counts stayed flat, but AuthSessionNetworking.swift dropped from 2411 lines to 1876 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-29-02 | 2026-03-29 | ba2c252 |
Pass | Non-functional Swift quality cleanup review passed: extracted the app-session route/state/reducer/store block from ContentView.swift into the new AppSessionSupport.swift app file without changing root-view/auth-flow behavior. Focused pre/post verification stayed green for the owning app-session lane (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAppSessionInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-appsession-broader.xcresult). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 2943 lines to 2832 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-29-03 | 2026-03-29 | 9f52015 |
Pass | Non-functional Swift quality cleanup review passed: extracted the auth-environment resolve/validation/diagnostics block from ContentView.swift into the new AuthEnvironmentSupport.swift app file without changing auth configuration behavior, Info.plist override precedence, or startup diagnostics logging behavior. Focused pre/post verification stayed green for the owning auth-environment lane (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAuthEnvironmentInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-authenv-broader.xcresult). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 2832 lines to 2697 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-29-04 | 2026-03-29 | 4c3acbb |
Pass | Non-functional Swift quality cleanup review passed: extracted the launch/auth-recovery policy block and shared ProcessInfo launch-argument helpers from ContentView.swift into the new AppLaunchSupport.swift app file without changing launch-policy behavior, active-loop recovery behavior, or IFU/UI-test routing behavior. Focused pre/post verification stayed green for the owning app-session lane (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAppSessionInfrastructureTests before and after) and the IFU lane (xcodebuild ... -only-testing:BionicLoopUITests/BionicLoopIFUCaptureUITests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-authpolicy-broader.xcresult). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 2697 lines to 2593 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-29-05 | 2026-03-29 | 82c8d9c |
Pass | Non-functional Swift quality cleanup review passed: extracted the Cognito result/error/DTO/request support types from ContentView.swift into the new CognitoSupportTypes.swift app file without changing Cognito flow behavior, request construction behavior, or error-message mapping behavior. Focused pre/post verification stayed green for the owning Cognito lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCognitoInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAuthSessionInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-cognitotypes-broader.xcresult). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 2593 lines to 2451 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-01 | 2026-03-30 | 4beb4a2 |
Pass | Non-functional Swift quality cleanup review passed: extracted the hosted-UI authenticator, PKCE helper, and hosted-UI session presenter from ContentView.swift into the new CognitoHostedUIAuthenticator.swift app file without changing Cognito hosted sign-in behavior, token exchange behavior, refresh behavior, or hosted-UI callback handling. Focused pre/post verification stayed green for the owning Cognito lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCognitoInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAuthSessionInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-hostedui-broader.xcresult). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 2451 lines to 2073 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-02 | 2026-03-30 | e09676b |
Pass | Non-functional Swift quality cleanup review passed: extracted the password-authenticator and initiate-auth DTOs from ContentView.swift into the new CognitoPasswordAuthenticator.swift app file without changing password sign-in behavior, refresh-token behavior, region parsing, or sign-in error mapping behavior. Focused pre/post verification stayed green for the owning Cognito lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCognitoInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAuthSessionInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-passwordauth-broader.xcresult). The first post-change build surfaced the expected access-level issue from reusing CognitoServiceErrorPayload across files; that was fixed immediately by widening it from private to file-internal visibility only, with no logic change. Repo-wide lint counts stayed flat, but ContentView.swift dropped from 2073 lines to 1832 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-03 | 2026-03-30 | b36b3b0 |
Pass | Non-functional Swift quality cleanup review passed: extracted the sign-up and confirm-sign-up support service plus its sign-up DTOs from ContentView.swift into the new CognitoSignUpService.swift app file without changing sign-up behavior, confirm-sign-up behavior, code-delivery decoding, or downstream password-recovery behavior. Focused pre/post verification stayed green for the owning Cognito lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCognitoInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAuthSessionInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-signupsvc-broader.xcresult). The first post-change build surfaced the expected manual-project-wiring issue because CognitoSignUpService.swift had not yet been added to BionicLoop.xcodeproj; that was fixed immediately by adding the new file to the checked-in .pbxproj, with no logic change. Repo-wide lint counts stayed flat, but ContentView.swift dropped from 1832 lines to 1598 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-04 | 2026-03-30 | 5a92584 |
Pass | Non-functional Swift quality cleanup review passed: extracted the password-recovery support service and its request/response DTOs from ContentView.swift into the new CognitoPasswordRecoveryService.swift app file without changing reset-code request behavior, confirm-reset behavior, Cognito error mapping, or shared code-delivery decoding behavior. Focused pre/post verification stayed green for the owning Cognito lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCognitoInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAuthSessionInfrastructureTests before and after), and the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-passwordrecovery-broader.xcresult). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 1598 lines to 1389 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-05 | 2026-03-30 | 8ad5c49 |
Pass | Non-functional Swift quality cleanup review passed: extracted the shared auth input, secure-input, provider-badge, and status-banner view primitives from ContentView.swift into the new AuthUIPrimitives.swift app file without changing auth-screen UI behavior, accessibility labels, or status-tone mapping behavior. Focused pre/post verification stayed green for the impacted auth-screen UI lane (xcodebuild ... -only-testing:BionicLoopUITests/BionicLoopIFUCaptureUITests before and after), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-authui-broader-app.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/ContentView-authui-build.log). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 1389 lines to 1205 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-06 | 2026-03-30 | 6e05997 |
Pass | Non-functional Swift quality cleanup review passed: extracted the no-auth start and login entry screens from ContentView.swift into the new NoAuthEntryViews.swift app file without changing auth-screen UI behavior, route wiring, hosted sign-in flow, or secure-session persistence behavior. Focused pre/post verification stayed green for the impacted auth-screen UI lane (xcodebuild ... -only-testing:BionicLoopUITests/BionicLoopIFUCaptureUITests before and after), focused xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAppSessionInfrastructureTests also passed post-change (/tmp/ContentView-noauthentry-appsession-post.xcresult), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-noauthentry-broader-app.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/ContentView-noauthentry-build.log). Repo-wide lint counts stayed flat, but ContentView.swift dropped from 1205 lines to 976 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-07 | 2026-03-30 | 4dc3fc9 |
Pass | Planning-only review passed: added architecture-first decomposition plans for HomeSettingsView.swift and LoopRuntimeEngine.swift, and linked them from the Swift quality plan and quality README so future cleanup work distinguishes safe mechanical extraction from places that need deliberate boundary design. No product code changed and no verification execution was required for this docs-only planning slice. |
N/A | N/A (docs-only planning update) |
Closed |
| CR-2026-03-30-08 | 2026-03-30 | 591cb0d |
Pass | Non-functional Swift quality cleanup review passed: extracted the subject-claim error parser, classification policy, and claim service from AuthSessionNetworking.swift into the new SubjectClaimService.swift app file without changing subject-claim request behavior, conflict classification, unauthorized handling, or retryable-error mapping behavior. Focused pre/post verification stayed green for the owning subject-claim lane (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopSubjectClaimInfrastructureTests before and after), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/AuthSessionNetworking-subjectclaim-broader.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/AuthSessionNetworking-subjectclaim-build.log). Repo-wide lint counts stayed flat, but AuthSessionNetworking.swift dropped from 1876 lines to 1761 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-09 | 2026-03-30 | 73dadba |
Pass | Non-functional Swift quality cleanup review passed: extracted the device-clock check trigger, telemetry context, and sync monitor from AuthSessionNetworking.swift into the new DeviceClockSyncMonitor.swift app file without changing foreground-gate behavior, stale-clock warning behavior, retry handling, or device-clock telemetry emission behavior. Focused pre/post verification stayed green for the owning device-clock lane (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopDeviceClockSyncInfrastructureTests before and after), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/AuthSessionNetworking-deviceclock-broader.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/AuthSessionNetworking-deviceclock-build.log). Repo-wide lint counts stayed flat, but AuthSessionNetworking.swift dropped from 1761 lines to 1408 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-10 | 2026-03-30 | 0146173 |
Pass | Non-functional Swift quality cleanup review passed: extracted the telemetry event enum set, outbox entry/snapshot/store types, and outbox actor from AuthSessionNetworking.swift into the new CloudTelemetryOutbox.swift app file without changing telemetry queueing behavior, flush ordering, drop policy, retry scheduling, or reporter integration behavior. Focused pre/post verification stayed green for the owning telemetry lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCloudTelemetryInfrastructureTests -only-testing:BionicLoopTests/BionicLoopCloudLogSessionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopCloudLogBypassInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAlgoDiagnosticsInfrastructureTests before and after), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/AuthSessionNetworking-outbox-broader.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/AuthSessionNetworking-outbox-build.log). Repo-wide lint counts stayed flat, but AuthSessionNetworking.swift dropped from 1408 lines to 1138 and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-11 | 2026-03-30 | 0c3e300 |
Pass | Non-functional Swift quality cleanup review passed: extracted the API client error enum and authenticated API client actor from AuthSessionNetworking.swift into the new AuthenticatedAPIClient.swift app file without changing authenticated request construction, 401 retry behavior, token refresh behavior, HTTP error mapping, or debug logging behavior. Focused pre/post verification stayed green for the owning auth-session lane (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopAuthSessionInfrastructureTests before and after), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/AuthSessionNetworking-apiclient-broader.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/AuthSessionNetworking-apiclient-build.log). Repo-wide lint counts improved, and AuthSessionNetworking.swift dropped from 1138 lines to 974; the new support file is clean under the repo SwiftLint rules while the remaining monolith now carries only a warning-level file_length finding under the current threshold. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-12 | 2026-03-30 | 935400e |
Pass | Non-functional Swift quality cleanup review passed: extracted the cloud telemetry reporter actor from AuthSessionNetworking.swift into the new CloudTelemetryReporter.swift app file without changing event envelope construction, queue flush behavior, subject-ID conflict handling, retry scheduling, or immediate drop-report emission behavior. Focused pre/post verification stayed green for the owning telemetry lanes (xcodebuild ... -only-testing:BionicLoopTests/BionicLoopCloudTelemetryInfrastructureTests -only-testing:BionicLoopTests/BionicLoopCloudLogSessionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopCloudLogBypassInfrastructureTests -only-testing:BionicLoopTests/BionicLoopAlgoDiagnosticsInfrastructureTests before and after), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/AuthSessionNetworking-reporter-broader.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/AuthSessionNetworking-reporter-build.log). Repo-wide lint counts improved to file_length: 3, type_body_length: 4, function_body_length: 5, and cyclomatic_complexity: 1; AuthSessionNetworking.swift dropped from 974 lines to 584, and the new support file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-13 | 2026-03-30 | 8d26cbb |
Pass | Non-functional Swift quality cleanup review passed: first closed the missing no-auth route-transition characterization gap by adding BionicLoopNoAuthFlowUITests, then extracted the remaining no-auth account-flow view support from ContentView.swift into CognitoServiceErrorPayload.swift, NoAuthFlowView.swift, and NoAuthAccountFlowViews.swift without changing auth routing, sign-up flow behavior, forgot-password flow behavior, or secure-session persistence behavior. Focused verification stayed green with the new no-auth route lane plus BionicLoopHomeUITests (/tmp/ContentView-final-ui.xcresult), the broader xcodebuild ... -only-testing:BionicLoopTests suite also passed (/tmp/ContentView-final-app.xcresult), and a clean xcodebuild build succeeded after the extraction (/tmp/ContentView-final-build.log). Repo-wide lint counts improved to file_length: 2, type_body_length: 4, function_body_length: 5, and cyclomatic_complexity: 1; ContentView.swift dropped from 976 lines to 263 and is no longer part of the hotspot set. |
N/A | N/A (non-functional production concern extraction) |
Closed |
| CR-2026-03-30-14 | 2026-03-30 | ed2da4c |
Pass | Non-functional Swift quality cleanup review passed: extracted focused private helper builders from RealBUDosingAlgorithm.swift for pump-input field construction, Algo2015 input creation, input-snapshot creation, run-telemetry packaging, and final recommendation mapping, without changing the C bridge call sequence, state persistence semantics, telemetry payload shape, or dosing recommendation behavior. The slice was preceded by a focused coverage audit, then verified pre/post with RealBUDosingAlgorithmStateTests, Algo2015GoldenVectorTests, AlgorithmInspectionEquivalenceRendererTests, AlgorithmInspectionPublicationTests, and app-side BionicLoopAlgorithmInspectionTelemetryRuntimeTests; broader swift test --package-path BionicLoopCore and broader xcodebuild ... -only-testing:BionicLoopTests also passed (/tmp/RealBU-runtime-post.xcresult; /tmp/RealBU-app-broader-post.xcresult). Repo-wide lint counts improved to file_length: 2, type_body_length: 4, function_body_length: 4, and cyclomatic_complexity: 1, and RealBUDosingAlgorithm.swift is now clean under the repo SwiftLint rules. |
N/A | N/A (non-functional production helper extraction) |
Closed |
| CR-2026-03-30-15 | 2026-03-30 | be6a901 |
Pass | Non-functional Swift quality cleanup review passed: extracted the existing settings modal and auxiliary view structs from HomeSettingsView.swift into HomeClinicalSaveReviewView.swift, RegularTargetChangeApprovalView.swift, HomeDestructiveConfirmationView.swift, and HomeUserView.swift without changing settings state flow, clinical save-review behavior, regular target-change approval behavior, destructive confirmation behavior, or user-settings logout behavior. The slice was preceded by a focused coverage audit against the existing settings seam (BionicLoopHomeUITests, BionicLoopClinicalSettingsUITests, BionicLoopRegularTargetChangeApprovalRuntimeTests, and BionicLoopClinicalSettingsSavePolicyRuntimeTests), then verified pre/post with those focused UI/runtime lanes plus broader xcodebuild ... -only-testing:BionicLoopTests; a clean xcodebuild build also passed (/tmp/HomeSettings-extract-ui-post.xcresult; /tmp/HomeSettings-extract-runtime-post.xcresult; /tmp/HomeSettings-extract-app-post.xcresult). Repo-wide lint counts stayed flat (file_length: 2, type_body_length: 4, function_body_length: 4, and cyclomatic_complexity: 1), but HomeSettingsView.swift dropped from 2078 lines to 1720 and the newly extracted view files are clean under the repo SwiftLint rules. |
N/A | N/A (non-functional settings view extraction) |
Closed |
| CR-2026-03-30-16 | 2026-03-30 | 162b7a8 |
Pass | Non-functional Swift quality cleanup review passed: extracted only the unlocked clinical “Bionic Loop” action section from HomeSettingsView.swift into the new HomeClinicalBionicLoopSectionView.swift, while intentionally leaving all start/reset policy, telemetry emission, reset-confirmation handling, and runtime calls in the original file via handleStartAlgorithmTap() and handleResetAlgorithmTap(). The slice was preceded by a coverage audit that rejected the cloud-logging seam as too unstable on the current simulator baseline and instead used the already-characterized settings seam (BionicLoopHomeUITests, BionicLoopClinicalSettingsUITests, and BionicLoopHomeUICriticalRuntimeTests). Post-change verification passed for a clean app build, the combined Home + Clinical Settings UI lane (/tmp/HomeSettings-bionicloop-ui-post.xcresult), and the broader xcodebuild ... -only-testing:BionicLoopTests suite (/tmp/HomeSettings-bionicloop-app-post-rerun.xcresult); the isolated BionicLoopHomeUICriticalRuntimeTests lane hit the same simulator bootstrap crash before and after the change (/tmp/HomeSettings-bionicloop-runtime-pre.xcresult; /tmp/HomeSettings-bionicloop-runtime-post-rerun.xcresult), so it was documented as an environment limitation rather than a product regression. Repo-wide lint counts stayed flat, but HomeSettingsView.swift dropped from 1720 lines to 1706 and the new section file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional settings section extraction) |
Closed |
| CR-2026-03-30-17 | 2026-03-30 | ad6ee2d |
Pass | Non-functional Swift quality cleanup review passed: extracted only the Device Setup section from HomeSettingsView.swift into the new HomeSettingsDeviceSetupSectionView.swift, while intentionally leaving telemetry emission, settings-sheet dismissal timing, and CGM/pump setup reopening behavior in the parent via handleOpenCGMSettingsTap() and handleOpenPumpSettingsTap(). The slice was preceded by a seam-specific coverage audit and characterized with BionicLoopIFUCaptureUITests for the actual settings.openCGMButton / settings.openPodButton flows and BionicLoopHomeUICriticalRuntimeTests for canonical device-setup UI telemetry. Post-change verification passed for a clean app build, the IFU capture lane with screenshots redirected to /tmp (/tmp/HomeSettings-devicesetup-ui-post.xcresult), the focused Home UI-critical runtime lane (/tmp/HomeSettings-devicesetup-runtime-post.xcresult), and the broader xcodebuild ... -only-testing:BionicLoopTests suite (/tmp/HomeSettings-devicesetup-app-post.xcresult). Repo-wide lint counts stayed flat, the new section file is clean under the repo SwiftLint rules, and HomeSettingsView.swift remains a hotspot due to structural size rather than any new functional issue. |
N/A | N/A (non-functional settings section extraction) |
Closed |
| CR-2026-03-30-18 | 2026-03-30 | 410d158 |
Pass | Non-functional Swift quality cleanup review passed: added direct characterization coverage for the settings-sheet navigation paths to Recent Dose Steps and Alert Center, then extracted only those two existing navigation sections from HomeSettingsView.swift into the new HomeSettingsNavigationSectionsView.swift without changing destinations, count display behavior, or telemetry-store / alert-center wiring. The slice was characterized pre-change with the new BionicLoopHomeUITests settings-path tests after stabilizing them to use the same upward-scroll strategy as the IFU capture lane, then verified post-change with a clean app build (/tmp/HomeSettings-navsections-build-post.log), the focused navigation characterization rerun (/tmp/HomeSettings-navsections-char-post.xcresult), the broader BionicLoopHomeUITests suite (/tmp/HomeSettings-navsections-homeui-post.xcresult), and the broader xcodebuild ... -only-testing:BionicLoopTests suite (/tmp/HomeSettings-navsections-app-post.xcresult). Repo-wide lint counts stayed flat, HomeSettingsView.swift dropped from 1707 lines to 1683, and the new extracted navigation file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional settings navigation extraction) |
Closed |
| CR-2026-03-30-19 | 2026-03-30 | ae43294 |
Pass | Non-functional Swift quality cleanup review passed: first identified and closed a direct characterization gap for the root settings summary block by adding testUI009c_SettingsSummaryShowsClinicalSnapshotFields, then extracted only the existing regular-settings summary section from HomeSettingsView.swift into the new HomeSettingsSummarySectionView.swift without changing the clinical navigation destination, target-button approval flow, or summary-row accessibility identifiers and values. The first pre-change test attempt correctly failed because XCTest did not expose the LabeledContent rows reliably as Other elements, so the characterization was tightened to use generic descendant queries before any production move. Post-change verification passed for a clean app build (/tmp/HomeSettings-summary-build-post.log), the focused Home + Clinical Settings UI lane (/tmp/HomeSettings-summary-ui-post.xcresult), and the broader xcodebuild ... -only-testing:BionicLoopTests suite (/tmp/HomeSettings-summary-app-post.xcresult). Repo-wide lint counts stayed flat, HomeSettingsView.swift dropped from 1683 lines to 1583, and the new summary section file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional settings summary extraction) |
Closed |
| CR-2026-03-30-20 | 2026-03-30 | d6ca3be |
Pass | Non-functional Swift quality cleanup review passed: extracted only the root settings-sheet User navigation section from HomeSettingsView.swift into the new HomeSettingsUserSectionView.swift, while intentionally leaving the HomeUserView destination, sign-out closure behavior, and signed-in / signed-out status computation unchanged. No new characterization test was needed because this seam already had direct UI coverage through BionicLoopHomeUITests.testUI004a_CancelButtonsUseFullWidthActionStyle, which traverses the settings sheet into the user screen and verifies the logout confirmation controls. Post-change verification passed for a clean app build (/tmp/HomeSettings-user-build-post.log), the focused logout/cancel UI lane (/tmp/HomeSettings-user-char-post.xcresult), and the broader xcodebuild ... -only-testing:BionicLoopTests suite (/tmp/HomeSettings-user-app-post.xcresult). Repo-wide lint counts stayed flat, HomeSettingsView.swift dropped from 1583 lines to 1574, and the new user section file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional settings section extraction) |
Closed |
| CR-2026-03-30-21 | 2026-03-30 | 16bb14c |
Pass | Non-functional Swift quality cleanup review passed: first identified and closed a direct UI characterization gap for the unlocked clinical Subject subsection by adding testUI013a_ClinicalSubjectFieldsVisibleWhenUnlocked, then extracted only that subsection from HomeSettingsView.swift into the new HomeClinicalSubjectSectionView.swift without changing field accessibility identifiers, focus behavior, subject submit dismissal, or weight digit filtering/clear-button behavior. The shared focus enum was promoted from a private nested type to HomeSettingsField so the extracted view could keep the exact same focus semantics instead of approximating them. Post-change verification passed for a clean app build (/tmp/HomeSettings-subject-build-post.log), the broader xcodebuild ... -only-testing:BionicLoopTests suite (/tmp/HomeSettings-subject-app-post.xcresult), the isolated rerun of testUI011_ClinicalSettingsSaveDismissesSettingsSheet (/tmp/HomeSettings-subject-ui011-rerun.xcresult), and the full Clinical Settings UI rerun (/tmp/HomeSettings-subject-ui-post-rerun.xcresult). The first full Clinical Settings UI run hit a save-button reacquisition miss in testUI011_ClinicalSettingsSaveDismissesSettingsSheet, but because the exact failing test passed on isolated rerun and the full suite also passed on rerun, the failure was treated as a transient simulator scroll flake rather than a stable regression. Repo-wide lint counts stayed flat, HomeSettingsView.swift dropped from 1574 lines to 1538, and the new subject section file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional clinical settings subsection extraction) |
Closed |
| CR-2026-03-30-22 | 2026-03-30 | 9ead01f |
Pass | Non-functional Swift quality cleanup review passed: first identified and closed a direct UI characterization gap for the unlocked clinical Algorithm Inputs subsection by adding testUI013b_ClinicalAlgorithmInputControlsVisibleWhenUnlocked, then extracted only that subsection from HomeSettingsView.swift into the new HomeClinicalAlgorithmInputsSectionView.swift without changing picker accessibility identifiers, profile/range description text, or the parent-owned save-review callback. Post-change verification passed for a clean app build (/tmp/HomeSettings-algoinputs-build-post.log), the broader xcodebuild ... -only-testing:BionicLoopTests suite (/tmp/HomeSettings-algoinputs-app-post.xcresult), the isolated rerun of testUI016_ClinicalProfileChangeNormalizesTargetAndPersists (/tmp/HomeSettings-algoinputs-ui016-rerun.xcresult), and the full Clinical Settings UI rerun (/tmp/HomeSettings-algoinputs-ui-post-rerun.xcresult). The first full Clinical Settings UI run hit a save-button reacquisition miss in testUI016_ClinicalProfileChangeNormalizesTargetAndPersists, but because the exact failing test passed on isolated rerun and the full suite also passed on rerun, the failure was treated as a transient simulator scroll flake rather than a stable regression. Repo-wide lint counts stayed flat, HomeSettingsView.swift dropped from 1538 lines to 1484, and the new algorithm-inputs section file is clean under the repo SwiftLint rules. |
N/A | N/A (non-functional clinical settings subsection extraction) |
Closed |
| CR-2026-03-30-23 | 2026-03-30 | 4fcd7f4 |
Pass | Non-functional runtime/core review passed: extracted deterministic CGM-history and input-shaping support from LoopRuntimeCoordinator.swift into LoopRuntimeCoordinatorCGMHistorySupport.swift without changing coordinator policy or sequencing. The slice was preceded by new direct characterization coverage for glucose-history ordering/truncation, resetSession() clearing, and pump-command classification; post-change verification passed for focused coordinator characterization, swift test --filter LoopRuntimeCoordinator, full swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore, focused app-side runtime/telemetry consumers, and broader xcodebuild ... -only-testing:BionicLoopTests. STR-SIM working evidence: Docs/Quality/Evidence/Working/STR-SIM-001/2026-03-30-loopruntimecoordinator-cgm-history-support/. Covered TV-SIM-001, TV-SIM-002, TV-SIM-003, TV-SIM-004. |
N/A | N/A (non-functional runtime helper extraction) |
Closed |
| CR-2026-03-30-24 | 2026-03-30 | 54f32ad |
Pass | Non-functional runtime/core review passed: extracted deterministic unavailable-pump status and pump-command kind/telemetry builders from LoopRuntimeCoordinator.swift into LoopRuntimeCoordinatorPumpCommandSupport.swift without changing coordinator policy, async pump apply sequencing, or blocked/uncertain classification semantics. Existing direct characterization for pump-command classification and pump-execution behavior remained green, and post-change verification passed for focused coordinator pump-command suites, swift test --filter LoopRuntimeCoordinator, full swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore, focused app-side runtime/telemetry consumers (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_17-03-33--0400.xcresult), and broader xcodebuild ... -only-testing:BionicLoopTests (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_17-03-47--0400.xcresult). STR-SIM working evidence: Docs/Quality/Evidence/Working/STR-SIM-001/2026-03-30-loopruntimecoordinator-pump-command-support/. Covered TV-SIM-001, TV-SIM-002, TV-SIM-003, TV-SIM-004. |
N/A | N/A (non-functional runtime helper extraction) |
Closed |
| CR-2026-03-30-25 | 2026-03-30 | 02c29cd |
Pass | Non-functional runtime/core review passed: added direct characterization for the missing temp-basal-duration blocked path and refactored the remaining LoopRuntimeCoordinator.apply(...) body by extracting private in-actor result builders for blocked missing-duration, applied-command, and failed-command telemetry, while intentionally keeping async pump calls and error classification in the same order inside the coordinator actor. Post-change verification passed for focused pump-command characterization and pump-execution suites, swift test --filter LoopRuntimeCoordinator, focused app-side runtime/telemetry consumers (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_17-08-33--0400.xcresult), and broader xcodebuild ... -only-testing:BionicLoopTests (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_17-08-52--0400.xcresult). The first broad swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore rerun hit a one-off unrelated failure in Algo2015MetamorphicTests.testHigherTargetAcrossRangeDoesNotIncreaseTotalInsulin; the exact failing test passed on isolated rerun and the full core package suite passed on rerun afterward. STR-SIM working evidence: Docs/Quality/Evidence/Working/STR-SIM-001/2026-03-30-loopruntimecoordinator-apply-result-builders/. Covered TV-SIM-001, TV-SIM-002, TV-SIM-003, TV-SIM-004. |
N/A | N/A (non-functional runtime helper extraction) |
Closed |
| CR-2026-03-30-26 | 2026-03-30 | 6e128cc |
Pass | Non-functional runtime/core review passed: first added direct characterization for skipped-run attempt metadata persistence and first-success anchor preservation across later successful runs, then reduced the remaining LoopRuntimeCoordinator.executeDoWork(...) state/result packaging shell by extracting private in-actor helpers for skip/save result building, pending-meal acceptance persistence, final executed-state persistence, and executed-result packaging. Async pump calls, error classification, algorithm step synchronization, pump step tagging, and state-save ordering were intentionally left in place inside the coordinator actor. Post-change verification passed for focused coordinator suites (swift test --filter LoopRuntimeCoordinatorPumpExecutionTests, swift test --filter LoopRuntimeCoordinatorPumpCommandClassificationTests, swift test --filter LoopRuntimeCoordinator), focused app-side runtime/telemetry consumers (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_18-21-17--0400.xcresult), and broader xcodebuild ... -only-testing:BionicLoopTests (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_18-21-37--0400.xcresult). The first broad swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore run hit a one-off unrelated failure in Algo2015MetamorphicTests.testDeterministicReplayProducesIdenticalOutputsAndState; that exact test passed on isolated rerun, and the full core package suite passed on rerun afterward. STR-SIM working evidence: Docs/Quality/Evidence/Working/STR-SIM-001/2026-03-30-loopruntimecoordinator-state-result-packaging/. Covered TV-SIM-001, TV-SIM-002, TV-SIM-003, TV-SIM-004. |
N/A | N/A (non-functional runtime helper extraction) |
Closed |
| CR-2026-03-30-27 | 2026-03-30 | bdb0db9 |
Pass | Non-functional runtime/core review passed: first tightened direct characterization for the in-flight isDoWorkInProgress branch, expired-recommendation no-apply behavior, and pump-service algorithm-step tagging, then extracted deterministic execution/result helpers into LoopRuntimeCoordinatorExecutionSupport.swift and collapsed cadence/state preflight into prepareExecutionState(cause:now:) without changing coordinator policy, async pump-call ordering, error classification, state-save timing, or algorithm/pump step synchronization. Post-change verification passed for focused coordinator suites (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinatorPumpExecutionTests, swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinator), the full core package suite (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore), focused app-side runtime/telemetry consumers (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_18-40-54--0400.xcresult), and broader xcodebuild ... -only-testing:BionicLoopTests (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_18-41-09--0400.xcresult). Local working evidence packet: Docs/Quality/Evidence/Working/STR-SIM-001/2026-03-30-loopruntimecoordinator-execution-preflight/. Covered TV-SIM-001, TV-SIM-002, TV-SIM-003, TV-SIM-004. |
N/A | N/A (non-functional runtime helper extraction) |
Closed |
| CR-2026-03-30-28 | 2026-03-30 | f3c795a |
Pass | Non-functional runtime/core review passed: split the oversized LoopRuntimeCoordinatorPumpExecutionTests.swift characterization seam into focused cadence, pump-availability, and execution-telemetry suites without changing assertions, test setup semantics, or coordinator behavior expectations. Post-change verification passed for swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinatorCadenceExecutionTests, swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinatorPumpAvailabilityExecutionTests, swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinatorExecutionTelemetryTests, the full core package suite (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore), and broader xcodebuild ... -only-testing:BionicLoopTests (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_18-49-56--0400.xcresult). Repo-wide lint counts returned to the production-only hotspot set: file_length: 2, type_body_length: 4, function_body_length: 4, and cyclomatic_complexity: 1. |
N/A | N/A (non-functional coordinator test split) |
Closed |
| CR-2026-03-30-29 | 2026-03-30 | b9dbb31 |
Pass | Non-functional runtime/core review passed: first re-audited the remaining LoopRuntimeCoordinator.executeDoWork(...) seam and confirmed the selected pre-execution stage already had direct characterization coverage for missing-fresh-glucose gating, meal-slot-conflict handling, accepted-meal persistence timing, and skipped-result packaging, then extracted that guard chain into resolveExecutionPreparation(...) without changing CGM freshness check order, pump refresh timing, meal acceptance persistence timing, skipped-result save timing, or later async pump-apply sequencing. Post-change verification passed for swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinator, the full core package suite (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore), and broader xcodebuild ... -only-testing:BionicLoopTests (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_18-54-55--0400.xcresult). Repo-wide lint counts improved to file_length: 2, type_body_length: 4, function_body_length: 3, and cyclomatic_complexity: 1, clearing the last LoopRuntimeCoordinator.executeDoWork(...) function-length warning. |
N/A | N/A (non-functional runtime helper extraction) |
Closed |
| CR-2026-03-30-30 | 2026-03-30 | ac50607 |
Pass | Non-functional runtime/core review passed: before changing the coordinator again, inspected the remaining actor body for redundant seams and found an unused duplicate manual-BG helper trio left behind after the earlier BGExecutionPolicy extraction; removing those dead private methods did not change submit-manual-BG behavior, execution ordering, or state persistence because all live paths already route through BGExecutionPolicy. Post-change verification passed for swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinator, the full core package suite (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore), and broader xcodebuild ... -only-testing:BionicLoopTests (/Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.30_18-58-15--0400.xcresult). Repo-wide lint counts stayed at file_length: 2, type_body_length: 4, function_body_length: 3, and cyclomatic_complexity: 1, but LoopRuntimeCoordinator.swift dropped to warning-only coordinator debt with the actor body at 600 lines. |
N/A | N/A (non-functional dead code removal) |
Closed |
| CR-2026-03-31-01 | 2026-03-31 | b455eb7 |
Pass | Non-functional runtime/app review passed: re-audited the first LoopRuntimeEngine support seam and confirmed the clinical config/profile persistence block already had direct characterization in BionicLoopClinicalConfigStoreRuntimeTests, BionicLoopClinicalSettingsRuntimeTests, BionicLoopClinicalSettingsSavePolicyRuntimeTests, and BionicLoopRuntimeEngineSessionInfrastructureTests, then extracted that block into /Users/jcostik/BionicLoop/BionicLoop/Runtime/ClinicalAlgorithmConfigStore.swift without changing LoopRuntimeEngine.currentLoopConfig() behavior or the canonical LoopRuntimeEngine.normalizedTargetMgdl(...) path. Post-change verification passed for the focused pre/post lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopClinicalConfigStoreRuntimeTests -only-testing:BionicLoopTests/BionicLoopClinicalSettingsRuntimeTests -only-testing:BionicLoopTests/BionicLoopClinicalSettingsSavePolicyRuntimeTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineSessionInfrastructureTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-config-store). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-01-24--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-03-12--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-03-32--0400.xcresult. |
N/A | N/A (non-functional runtime support extraction) |
Closed |
| CR-2026-03-31-02 | 2026-03-31 | 426d540 |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine support seam, the telemetry mapper block was re-audited and one direct characterization gap was closed first by adding explicit applied-command coverage in BionicLoopCommandTelemetryRuntimeTests alongside the existing blocked and uncertain command-outcome cases. The step/command telemetry payload and mapper block was then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopWorkTelemetrySupport.swift without changing event types, payload field names, wake-cause mapping, or command-outcome semantics at the engine call sites. Post-change verification passed for focused telemetry/runtime lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopStepTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopCommandTelemetryRuntimeTests, and xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopStepTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopCommandTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopCloudTelemetryInfrastructureTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-telemetry-support). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-08-40--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-10-05--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-10-48--0400.xcresult. |
N/A | N/A (non-functional runtime telemetry helper extraction) |
Closed |
| CR-2026-03-31-03 | 2026-03-31 | a4b7ce3 |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine seam, the algorithm-inspection telemetry planner block was re-audited and the missing fallback characterization gap was closed first by adding direct coverage in BionicLoopAlgorithmInspectionTelemetryRuntimeTests for blank session IDs and missing session-started timestamps falling back to a generated session ID and the run executedAt timestamp. The session/step inspection telemetry payloads and emission planner were then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AlgorithmInspectionTelemetrySupport.swift without changing event types, payload field names, session-signature comparison behavior, pump-ID normalization, or the engine call-site sequencing that emits inspection snapshots. Post-change verification passed for focused inspection/runtime lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlgorithmInspectionTelemetryRuntimeTests, and xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlgorithmInspectionTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopCloudTelemetryInfrastructureTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-inspection-support). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-13-13--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-14-40--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-15-02--0400.xcresult. |
N/A | N/A (non-functional runtime inspection telemetry extraction) |
Closed |
| CR-2026-03-31-04 | 2026-03-31 | 208964f |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine alert seam, the remaining alert-domain block was re-audited and the extraction was intentionally limited to already-characterized pure support types (AppAlert, ClearedAppAlert, AlertLifecycleTelemetryPayload, AlertLifecycleTelemetryEventMapper, and AppAlertPrioritizer) while leaving the notification scheduler and AppAlertCenter behavior in place. The first post-change build surfaced one real access-level regression because AppAlertSeverity.telemetryValue remained file-private after the move; that was fixed immediately inside the slice by widening the helper back to module scope, with no logic change. Post-change verification passed for focused alert/runtime lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeAlertRuntimeTests -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-alert-domain). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-19-52--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-22-05--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-22-21--0400.xcresult. |
N/A | N/A (non-functional runtime alert-domain extraction) |
Closed |
| CR-2026-03-31-05 | 2026-03-31 | d82b945 |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine seam, the telemetry-store/export block was re-audited and the one direct coverage gap in the selected seam was closed first by adding LoopTelemetryStoreTests.testSeedUITestHomeBGMarkerSampleSeedsExpectedCGMAndBGCheckEntries, which pins the seeded CGM sample count, BG-check records, subject IDs, and BG values used by app-side home-state consumers. The telemetry persistence/export block (LoopStepRecord, LoopTelemetryStore, StepCSVExporter, and LoopTelemetryStore.seedUITestHomeBGMarkerSample(...)) was then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopTelemetryStore.swift without changing persisted defaults keys, CGM merge/deduplication behavior, step-record ordering/truncation, CSV export columns/order/escaping, or the app-facing seeded telemetry sample. Post-change verification passed for focused store/consumer coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/LoopTelemetryStoreTests -only-testing:BionicLoopTests/BionicLoopHomeViewStateBuilderTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-telemetry-store). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-25-45--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-31-49--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-32-07--0400.xcresult. |
N/A | N/A (non-functional runtime telemetry-store extraction) |
Closed |
| CR-2026-03-31-06 | 2026-03-31 | bc21829 |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine alert seam, the notification-scheduler adapter was re-audited and the missing direct characterization gap was closed first by adding BionicLoopUserNotificationAppAlertSchedulerTests to pin one-shot authorization priming, immediate request construction, past-date clamping for future scheduling, safety-critical interruption-level mapping, and clear/remove behavior for sanitized dedupe-key identifiers. A thin UserNotificationCentering protocol seam was introduced only to enable deterministic scheduler tests without subclassing UNUserNotificationCenter, and the protocol/system adapter/scheduler block was then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/UserNotificationAppAlertScheduler.swift without changing alert content, notification identifiers, scheduling timing, alert-center call-site sequencing, or broader alert lifecycle behavior. Post-change verification passed for focused scheduler/runtime lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-scheduler-characterization). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-45-18--0400.xcresult and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_11-45-34--0400.xcresult. |
N/A | N/A (non-functional runtime notification scheduler extraction) |
Closed |
| CR-2026-03-31-07 | 2026-03-31 | 5225dd1 |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine alert seam, the remaining AppAlertCenter block was re-audited and the one missing direct characterization gap was closed first by adding BionicLoopAlertCenterRuntimeTests.testShowPreviewAlertsCancelsPendingPumpDebounceAlerts, which pins cancellation of pending pump signal-loss and no-active-pod debounce work when preview alerts are shown. AppAlertCenter was then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift, followed by a tiny helper split into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenterTimeSensitiveSupport.swift to retire the remaining error-level type-body lint hit without changing alert lifecycle behavior, notification scheduling/clear sequencing, preview precedence, step-interruption monitoring, or minute-refresh countdown semantics. Post-change verification passed for a clean app build, focused alert/runtime coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-alert-center-2). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-02-08--0400.xcresult and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-02-26--0400.xcresult. |
N/A | N/A (non-functional runtime alert-center extraction) |
Closed |
| CR-2026-03-31-08 | 2026-03-31 | 5e6ed2f |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine support seam, the remaining pure PumpSignalLossPolicy block was re-audited and the missing direct boundary characterization gap was closed first by adding BionicLoopPumpSignalLossPolicyTests to pin three behaviors that were previously only indirect: preserving the current timestamp when neither unavailable-pump usage nor .pumpStatusUnavailable applies, using an inclusive two-step-interval reporting window, and replacing the timestamp with now when refreshed delivery state becomes .unknown. The policy was then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/PumpSignalLossPolicy.swift without changing the engine call sites, unavailable-pump loss retention semantics, or telemetry-store consumer behavior. Post-change verification passed for focused policy/store coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopPumpSignalLossPolicyTests -only-testing:BionicLoopTests/LoopTelemetryStoreTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-pump-signal-loss). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-08-21--0400.xcresult and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-08-38--0400.xcresult. |
N/A | N/A (non-functional runtime policy extraction) |
Closed |
| CR-2026-03-31-09 | 2026-03-31 | b4eb15b |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine support seam, the remaining session-persistence shell was re-audited and confirmed to already have direct characterization coverage in BionicLoopLoopWorkInfrastructureTests plus app-side consumer coverage in BionicLoopRuntimeEngineSessionInfrastructureTests, BionicLoopRuntimeEngineStepInterruptionInfrastructureTests, BionicLoopRuntimeEngineReconnectInfrastructureTests, and BionicLoopMealAnnouncementPersistenceRuntimeTests, so no new behavior tests were needed before the move. LoopSessionStore was then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopSessionStore.swift without changing runtime-state load/clear behavior, algorithm armed/session metadata persistence, or persisted step-interruption blocker handling. The first owning-lane rerun exposed a real module-boundary compile seam because the new file needed import BionicLoopCore; that was fixed immediately before verification with no behavior change. Post-change verification passed for focused session/work coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopLoopWorkInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineSessionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineReconnectInfrastructureTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementPersistenceRuntimeTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-session-store). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-13-58--0400.xcresult and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-14-17--0400.xcresult. |
N/A | N/A (non-functional runtime session-store extraction) |
Closed |
| CR-2026-03-31-10 | 2026-03-31 | aa6b7df |
Pass | Non-functional runtime/app review passed: before extracting the next LoopRuntimeEngine support seam, the remaining work-support shell was re-audited and the one real direct-coverage gap was closed first by adding three BionicLoopLoopWorkInfrastructureTests that pin LoopTelemetryWriter behavior for fallback-sample persistence, pump-status reconciliation, and shared-store reset. LoopWorkScheduler, LoopAlertMediator, LoopTelemetryWriter, and LoopRuntimeWorkExecutor were then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeWorkSupport.swift without changing CGM arming semantics, pump signal-loss mediation timing, telemetry-store write-through behavior, or do-work execution snapshot ordering. Post-change verification passed for pre-change characterization (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopLoopWorkInfrastructureTests -only-testing:BionicLoopTests/LoopTelemetryStoreTests), focused work/session/runtime coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopLoopWorkInfrastructureTests -only-testing:BionicLoopTests/LoopTelemetryStoreTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineSessionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineReconnectInfrastructureTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementPersistenceRuntimeTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-work-support). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-20-39--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-21-50--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-23-12--0400.xcresult. |
N/A | N/A (non-functional runtime work-support extraction) |
Closed |
| CR-2026-03-31-11 | 2026-03-31 | d80e23e |
Pass | Non-functional runtime/app review passed: after the work-support extraction, the remaining in-file LoopRuntimeEngine alert-domain shell was re-audited and already had direct consumer coverage across BionicLoopAlertCenterTests, BionicLoopAlertCenterRuntimeTests, BionicLoopUserNotificationAppAlertSchedulerTests, BionicLoopTelemetryRuntimeTests, and BionicLoopHomeUICriticalRuntimeTests, so no new behavior tests were required before the move. AppAlertSource, AppAlertSeverity, AppAlertAckState, AppAlertCode, AppAlertCountdownKind, AppAlertCountdown, and AppAlertPreviewKind were then moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertDomainSupport.swift without changing preview alert construction, countdown payload semantics, ack-state/severity raw-value behavior, or alert-center / scheduler / UI-critical consumers. Post-change verification passed for focused alert-domain coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests -only-testing:BionicLoopTests/BionicLoopTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeUICriticalRuntimeTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-alert-domain). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-33-34--0400.xcresult and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-33-55--0400.xcresult. |
N/A | N/A (non-functional runtime alert-domain extraction) |
Closed |
| CR-2026-03-31-12 | 2026-03-31 | cf2e2f2 |
Pass | Non-functional runtime/app review passed: after the alert-domain extraction, the remaining AppAlertPreviewKind.makeAlert(...) hotspot was re-audited and the real gap was found in direct preview-case characterization rather than in the existing alert consumers. That gap was closed first by adding /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAppAlertDomainSupportTests.swift, which pins all preview cases across source/sourceCode/normalizedCode, severity/title/message/recommendedAction, ack-state, dedupe-key, and countdown offsets. AppAlertPreviewKind.makeAlert(...) was then reduced to a small constructor that delegates to grouped preview-definition helpers inside /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertDomainSupport.swift without changing preview alert output. Post-change verification passed for focused preview characterization (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAppAlertDomainSupportTests), focused alert-consumer coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests -only-testing:BionicLoopTests/BionicLoopTelemetryRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeUICriticalRuntimeTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-alert-domain-make-alert). One overlapping-run build-db lock and one pre-bootstrap test-host exit were discarded as environment noise and replaced by clean serial reruns. Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-43-56--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-48-12--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-47-53--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-49-02--0400.xcresult. |
N/A | N/A (non-functional alert preview definition refactor) |
Closed |
| CR-2026-03-31-13 | 2026-03-31 | 3449b83 |
Pass | Non-functional runtime/app review passed: the remaining AppAlertCenter persistence seam was re-audited first and the one real direct gap was found in reset() persistence clearing rather than in ordinary load/save behavior. That gap was closed first by adding testAlertCenterResetClearsPersistedAlertStores in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterTests.swift, which pins store clearing and clean restoration after reset. The alert-center persistence load/save helpers were then moved from /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenterPersistenceSupport.swift without changing persisted keys, load trimming, badge updates, or alert lifecycle behavior. Post-change verification passed for focused alert-center coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-app-alert-center-persistence). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-57-26--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_12-57-45--0400.xcresult, and /tmp/bionicloop-swift-quality-app-alert-center-persistence/summary.txt. |
N/A | N/A (non-functional alert-center persistence extraction) |
Closed |
| CR-2026-03-31-14 | 2026-03-31 | c857ddc |
Pass | Non-functional runtime/app review passed: the remaining AppAlertCenter background-notification decision seam was re-audited first and the one direct gap was found in background informational-alert suppression rather than in the existing preview/reset cooldown paths. That gap was closed first by adding testInformationalAlertsDoNotScheduleBackgroundNotifications in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterRuntimeTests.swift, alongside the direct cooldown characterization now pinned by testShowPreviewAlertsPreservesBackgroundNotificationCooldownForSameDedupeKey and testResetClearsBackgroundNotificationCooldownForRecurringAlert. The deterministic notification decision/cooldown logic was then moved from /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenterNotificationSupport.swift without changing scheduler call sites, dedupe-key cooldown mutation timing, or preview alert behavior. Post-change verification passed for focused alert-center coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-app-alert-center-notification). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-06-50--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-07-07--0400.xcresult, /tmp/bionicloop-swift-quality-app-alert-center-notification/summary.txt, and working evidence linkage /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Working/STR-SIM-001/2026-03-31-appalertcenter-notification-support/. |
N/A | N/A (non-functional alert-center notification support extraction) |
Closed |
| CR-2026-03-31-15 | 2026-03-31 | 80d6138 |
Pass | Non-functional runtime/app review passed: the remaining AppAlertCenter pump-condition seam was re-audited first and the one real direct gap was found in construction of pump preview/debounced condition alerts rather than in scheduler behavior. That gap was closed first by adding testShowPreviewPumpSignalLossAlertUsesExpectedAlertFields and testNoActivePodDebounceUsesExpectedAlertFields in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterRuntimeTests.swift, which pin source/sourceCode/normalizedCode, severity/title/message/recommendedAction, timestamp, ack-state, dedupe-key, and the expected no-scheduling behavior for the selected foreground paths. The deterministic debounce conversion and pump signal-loss / no-active-pod alert builders were then moved from /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenterPumpConditionSupport.swift without changing debounce timing, dedupe keys, ack-state, or foreground alert upsert behavior. Post-change verification passed for focused alert-center coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-app-alert-center-pump-conditions). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-13-37--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-13-54--0400.xcresult, and /tmp/bionicloop-swift-quality-app-alert-center-pump-conditions/summary.txt. |
N/A | N/A (non-functional alert-center pump-condition support extraction) |
Closed |
| CR-2026-03-31-16 | 2026-03-31 | 2784a84 |
Pass | Non-functional runtime/app review passed: the remaining AppAlertCenter step-interruption seam was re-audited first and the one real direct gap was found in scheduled/immediate alert-field characterization rather than in the already-covered monitoring lifecycle. That gap was closed first by adding /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests.swift, which pins the scheduled and immediate branches across source/sourceCode/normalizedCode, severity/title/message/recommendedAction, timestamp, ack-state, dedupe-key, scheduled delivery date, deadline-fire behavior, and clear-on-recovery behavior. The existing future-deadline and recovery cases were moved out of /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopPumpAlertMonitoringTests.swift into the new focused file so the cleanup did not raise repo lint debt. The deterministic deadline conversion and step-interruption alert builder were then moved from /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift into /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenterStepInterruptionSupport.swift without changing scheduling order, background notification timing, dedupe keys, or recovery clearing behavior. Post-change verification passed for focused interruption coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests -only-testing:BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-app-alert-center-step-interruption-v3). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-26-54--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-27-08--0400.xcresult, and /tmp/bionicloop-swift-quality-app-alert-center-step-interruption-v3/summary.txt. |
N/A | N/A (non-functional alert-center step-interruption support extraction) |
Closed |
| CR-2026-03-31-17 | 2026-03-31 | 9210a1b |
Pass | Non-functional runtime/app review passed: the remaining engine-owned step-interruption shell in /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngine.swift was re-audited first and the real direct gaps were found in deadline/content branch characterization rather than in blocker lifecycle behavior. Those gaps were closed first by adding direct engine coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests.swift for awaiting-first-step timeout detail, future default scheduled content, and default missed-step detail selection, then by adding /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionBlockerInfrastructureTests.swift to pin persisted missingCGM and pumpStatusUnavailable blocker restoration without leaving a new repo lint violation behind. The deterministic deadline and alert-content helpers were then moved from /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngine.swift into /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngineStepInterruptionSupport.swift without changing blocker selection, persisted blocker restoration, or coordinator-execution ordering. Post-change verification passed for focused interruption coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionBlockerInfrastructureTests -only-testing:BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-step-interruption-support-v2). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-43-15--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_13-43-36--0400.xcresult, and /tmp/bionicloop-swift-quality-engine-step-interruption-support-v2/summary.txt. |
N/A | N/A (non-functional engine step-interruption support extraction) |
Closed |
| CR-2026-03-31-18 | 2026-03-31 | 5b428c6 |
Pass | Non-functional runtime/app review passed: the remaining AppAlertCenter shell in /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift was re-audited first and the one real direct gap was found in reset() cancellation of pending pump-debounce and step-interruption tasks rather than in alert-content construction or scheduler behavior. That gap was closed first by adding /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterResetRuntimeTests.swift with testResetCancelsPendingPumpDebounceAndStepInterruptionTasks, then the reset and preview shell methods were moved into a same-file extension AppAlertCenter without changing cancellation order, background-notification cooldown clearing, persisted alert-store clearing, or preview alert upsert behavior. Post-change verification passed for focused alert-center coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopAlertCenterResetRuntimeTests -only-testing:BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-app-alert-center-preview-reset). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-01-35--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-03-33--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-03-49--0400.xcresult, and /tmp/bionicloop-swift-quality-app-alert-center-preview-reset/summary.txt. |
N/A | N/A (non-functional alert-center reset and preview shell extraction) |
Closed |
| CR-2026-03-31-19 | 2026-03-31 | 8104a9e |
Pass | Non-functional runtime/app review passed: the remaining static meal-announcement helper seam in /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngine.swift was re-audited first and the one real direct gap was found in the commandOutcome override branch of mealAnnouncementResolutionEvent(...). That gap was closed first by adding testMealAnnouncementResolutionEventIncludesCommandOutcomeOverride() in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementResolutionRuntimeTests.swift, then the deterministic static meal helper block was moved into /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngineMealAnnouncementSupport.swift without changing cadence availability evaluation, unavailable-pump reason selection, accepted/resolved/uncertain pending-meal reconciliation, or engine-owned pending-state clearing behavior. Post-change verification passed for focused meal coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementResolutionRuntimeTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementPersistenceRuntimeTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-meal-announcement-support). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-26-35--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-28-51--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-29-09--0400.xcresult, and /tmp/bionicloop-swift-quality-engine-meal-announcement-support/summary.txt. |
N/A | N/A (non-functional engine meal-announcement support extraction) |
Closed |
| CR-2026-03-31-20 | 2026-03-31 | 0d20405 |
Pass | Non-functional runtime/app review passed: the remaining engine step-interruption shell inside /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngine.swift was re-audited first and no new direct characterization gaps remained after the earlier deadline/content and persisted-blocker slices. The exact engine-owned blocker selection, persisted-blocker refresh, foreground interruption monitoring, and reset-related alert-center behavior were already pinned in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionBlockerInfrastructureTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterResetRuntimeTests.swift. Those shell methods were then moved into a same-file private extension LoopRuntimeEngine without changing deadline selection, alert-content routing, blocker ordering, persisted blocker rules, or monitoring clear behavior. Post-change verification passed for focused interruption coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionBlockerInfrastructureTests -only-testing:BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterResetRuntimeTests), broader app unit coverage (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-step-interruption-shell). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-38-13--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-38-31--0400.xcresult, and /tmp/bionicloop-swift-quality-engine-step-interruption-shell/summary.txt. |
N/A | N/A (non-functional engine step-interruption shell refactor) |
Closed |
| CR-2026-03-31-21 | 2026-03-31 | 10d1ebc |
Pass | Non-functional runtime/app review passed: before any further LoopRuntimeEngine execution-flow refactor, the supporting regression harness was re-audited and two real gaps were found. First, direct engine-session characterization for manual-BG session metadata creation/preservation was missing, so /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRuntimeEngineSessionInfrastructureTests.swift was extended with testLoopRuntimeEngineManualBGRunGeneratesAlgorithmSessionMetadataWhenMissing() and testLoopRuntimeEngineManualBGRunPreservesExistingAlgorithmSessionMetadata(), using isolated defaults, isolated diagnostics pumps, and explicit post-run session reset to avoid cross-test residue. Second, the duplicate-upload diagnostics lane in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlgoDiagnosticsInfrastructureTests.swift still depended on the default BP-matrix reader rooted in shared simulator documents, which allowed newly generated engine-session artifacts to contaminate the test; that lane was hardened by injecting a temp-root matrix reader so both artifact readers are isolated. Post-change verification passed for the focused diagnostics lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlgoDiagnosticsInfrastructureTests/testAlgo2015DiagnosticsTelemetryPumpSuppressesDuplicateUploadAcrossRelaunch), the focused engine-session lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopRuntimeEngineSessionInfrastructureTests), and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-56-22--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-56-33--0400.xcresult, and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_14-56-47--0400.xcresult. |
N/A | N/A (non-functional engine session characterization hardening) |
Closed |
| CR-2026-03-31-22 | 2026-03-31 | 2d4a5f0 |
Pass | Non-functional runtime/app review passed: the next LoopRuntimeEngine execution seam was re-audited first and one real direct gap was found in the engine-owned post-execution publication shell for manual-BG-triggered work. That gap was closed first by adding testLoopRuntimeEngineManualBGRunPublishesDoWorkResultAndLocalStepTelemetry() in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRuntimeEngineSessionInfrastructureTests.swift, which pins publication of lastDoWorkResult, consistency with runtimeState.lastExecutedStep, and local LoopTelemetryStore.shared step-record emission for the same executed step and wake cause, including preservation of the manual BG value and subject ID in the published algorithm-input snapshot. Only after that characterization was in place were the deterministic publication side effects extracted inside /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngine.swift into same-file private helpers, recordExecutionResultLocally(...) and publishExecutionSnapshot(...), without changing coordinator execution order, alert-mediator updates, runtime-state mutation order, or step-interruption refresh timing. Post-change verification passed for the focused engine-owning lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopRuntimeEngineSessionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionInfrastructureTests -only-testing:BionicLoopTests/BionicLoopRuntimeEngineStepInterruptionBlockerInfrastructureTests -only-testing:BionicLoopTests/BionicLoopLoopWorkInfrastructureTests), the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-engine-publication-shell). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_16-04-23--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_16-05-17--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_16-05-32--0400.xcresult, and /tmp/bionicloop-swift-quality-engine-publication-shell/summary.txt. |
N/A | N/A (non-functional engine execution publication shell refactor) |
Closed |
| CR-2026-03-31-23 | 2026-03-31 | b749cea |
Pass | Non-functional Home feature review passed: the remaining hard HomeSettingsView.swift file-length debt was re-audited first and no new characterization gap was found because the chosen extraction seam consisted only of top-level policy/support types already directly covered in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopClinicalSettingsRuntimeTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopClinicalSettingsSavePolicyRuntimeTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRegularTargetChangeApprovalRuntimeTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeUICriticalRuntimeTests.swift. The slice then moved only those existing types out of /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsView.swift into dedicated files: /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeClinicalSettingsPolicy.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeClinicalSettingsSavePolicy.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeRegularTargetChangeApprovalPolicy.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsUICriticalPolicy.swift, and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsField.swift. No view behavior, telemetry payload shape, approval rules, or clinical-save semantics changed. Post-change verification passed for the focused owning lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopClinicalSettingsRuntimeTests -only-testing:BionicLoopTests/BionicLoopClinicalSettingsSavePolicyRuntimeTests -only-testing:BionicLoopTests/BionicLoopRegularTargetChangeApprovalRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeUICriticalRuntimeTests), the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-homesettings-policy-split). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-10-44--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-11-04--0400.xcresult, and /tmp/bionicloop-swift-quality-homesettings-policy-split/summary.txt. |
N/A | N/A (non-functional Home settings policy/support extraction) |
Closed |
| CR-2026-03-31-24 | 2026-03-31 | 65de523 |
Pass | Non-functional Home feature review passed: the remaining HomeSettingsView.swift shell/body debt was re-audited first and one real regression-protection gap was found in the owning UI lane, where deep clinical controls and summary links still relied on generic scroll reacquisition that was brittle for below-the-fold controls after repeated navigation or save retries. That gap was closed first in /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopClinicalSettingsUITests.swift by hardening the deep-control lookups in testUI011_ClinicalSettingsSaveDismissesSettingsSheet, testUI013_ClinicalControlsVisibleOnlyInsideUnlockedClinicalSettings, testUI013b_ClinicalAlgorithmInputControlsVisibleWhenUnlocked, and testUI016_ClinicalProfileChangeNormalizesTargetAndPersists, and by extracting waitForClinicalSaveButton(_:) so the stronger coverage did not add new lint debt. Only after that characterization hardening was in place were the existing shell views extracted from /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsView.swift into /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeCloudLogIntegrationSectionView.swift and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeClinicalSettingsFormView.swift, with the remaining cloud-log/session/state-sync helpers moved into a same-file private extension only. No settings behavior, cloud-log session behavior, clinical-save behavior, or lock/unlock behavior changed. Post-change verification passed for the focused UI lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopUITests/BionicLoopCloudLoggingUITests -only-testing:BionicLoopUITests/BionicLoopClinicalSettingsUITests -only-testing:BionicLoopUITests/BionicLoopHomeUITests), the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-homesettings-shell-final-v2). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-42-18--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-41-31--0400.xcresult, and /tmp/bionicloop-swift-quality-homesettings-shell-final-v2/summary.txt. |
N/A | N/A (non-functional Home settings shell extraction and UI hardening) |
Closed |
| CR-2026-03-31-25 | 2026-03-31 | 229cdb0 |
Pass | Non-functional runtime/store review passed: the remaining warning in /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopTelemetryStore.swift was re-audited first and no new coverage gap was found because the exact UI-test seed path and its downstream persistence behavior were already directly pinned in /Users/jcostik/BionicLoop/BionicLoopTests/LoopTelemetryStoreTests.swift, including testSeedUITestHomeBGMarkerSampleSeedsExpectedCGMAndBGCheckEntries, testRecordDoWorkResultStoresStepTelemetry, and testResetSessionClearsTelemetry. Only after that confirmation were the deterministic seed-building details extracted inside LoopTelemetryStore.swift into same-file helpers: makeUITestHomeBGMarkerCGMPoints(now:), makeUITestHomeBGMarkerSteps(now:), makeUITestHomeBGMarkerBGStep(...), makeUITestHomeBGMarkerInput(...), and persistSeed(...). The one regression introduced during helper extraction was caught immediately by the focused compile/test lane as a type-narrowing issue around UInt32 and Double; that was fixed in place before closure with no behavior change. Post-change verification passed for the focused store lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/LoopTelemetryStoreTests), the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-looptelemetrystore-final). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-54-00--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-54-34--0400.xcresult, and /tmp/bionicloop-swift-quality-looptelemetrystore-final/summary.txt. |
N/A | N/A (non-functional LoopTelemetryStore seed helper extraction) |
Closed |
| CR-2026-03-31-26 | 2026-03-31 | 50ed509 |
Pass | Non-functional alert-center review passed: the remaining AppAlertCenter.swift warning was re-audited first and no new coverage gap was found because the condition-monitoring, preview, reset, and interruption-monitoring shell methods were already directly pinned in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterRuntimeTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterResetRuntimeTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopPumpAlertMonitoringTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests.swift. Only after that audit were the three public condition-monitoring methods moved out of the class body into a same-file extension inside /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift: updatePumpSignalLossCondition(...), updatePumpNoActivePodCondition(...), and updateAlgorithmSteppingInterruptionMonitoring(...). No dedupe behavior, debounce behavior, interruption-deadline behavior, background notification behavior, or persistence behavior changed. Post-change verification passed for the focused alert-center lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopAlertCenterResetRuntimeTests -only-testing:BionicLoopTests/BionicLoopPumpAlertMonitoringTests -only-testing:BionicLoopTests/BionicLoopStepInterruptionAlertCenterTests), the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-appalertcenter). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-58-55--0400.xcresult, /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_17-59-12--0400.xcresult, and /tmp/bionicloop-swift-quality-appalertcenter/summary.txt. |
N/A | N/A (non-functional AppAlertCenter monitoring shell extraction) |
Closed |
| CR-2026-03-31-27 | 2026-03-31 | 87ec9a5 |
Pass | Non-functional Home settings review passed: the remaining warning in /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsView.swift was re-audited first and the one real regression-protection gap was found in the owning UI harness, where additive relaunch setup could leak stale launch arguments and intermittently drop focused settings tests into the auth-entry screen. That gap was fixed before the structural move by resetting launch arguments in /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopUITestCase.swift and routing the manual Home relaunch sites in /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopHomeUITests.swift through relaunchApp(with:). Only after the focused UI lane was clean were the remaining HomeSettingsView shell/action helpers moved into a same-file private extension HomeSettingsView, without changing clinical unlock/save flow, target-change review flow, cloud logging actions, or destructive confirmation behavior. Post-change verification passed for the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests, with one environment bootstrap exit on the first run and a clean rerun thereafter), the focused UI lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopUITests/BionicLoopCloudLoggingUITests -only-testing:BionicLoopUITests/BionicLoopClinicalSettingsUITests -only-testing:BionicLoopUITests/BionicLoopHomeUITests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-post-homesettings). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_18-12-52--0400.xcresult and /tmp/bionicloop-swift-quality-post-homesettings/summary.txt. |
N/A | N/A (non-functional Home settings shell refactor and UI harness hardening) |
Closed |
| CR-2026-03-31-28 | 2026-03-31 | b13946e |
Pass | Non-functional coordinator review passed: the remaining warning in /Users/jcostik/BionicLoop/BionicLoopCore/Sources/BionicLoopCore/Runtime/LoopRuntimeCoordinator.swift was re-audited first and no new direct coverage gap was found because the exact coordinator behavior was already pinned in the focused characterization and execution suites (LoopRuntimeCoordinatorCGMHistoryCharacterizationTests, LoopRuntimeCoordinatorSessionLifecycleTests, LoopRuntimeCoordinatorPumpCommandClassificationTests, LoopRuntimeCoordinatorCadenceExecutionTests, LoopRuntimeCoordinatorPumpAvailabilityExecutionTests, LoopRuntimeCoordinatorMealExecutionTests, and LoopRuntimeCoordinatorExecutionTelemetryTests), plus the broader core and app consumer suites. Only after that audit were the remaining private execution helpers moved into a same-file private extension LoopRuntimeCoordinator, with no change to cadence reconciliation, CGM-history shaping, manual-BG handling, meal acceptance/persistence, or async pump refresh/apply sequencing. Post-change verification passed for the focused coordinator lane (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore --filter LoopRuntimeCoordinator), the full core package suite (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore), the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), and the repo lint refresh (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-coordinator-final). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.03.31_18-22-55--0400.xcresult and /tmp/bionicloop-swift-quality-coordinator-final/summary.txt. |
N/A | N/A (non-functional LoopRuntimeCoordinator actor-body reduction) |
Closed |
| CR-2026-03-31-29 | 2026-03-31 | b5bf34a |
Pass | Final Swift code-quality closure review passed. The closure commit finishes the non-functional cleanup campaign by retiring the remaining LoopRuntimeEngine.swift lint debt through support-type and shell extractions, final warning-cleanup fixes (AppAlertCenter nonisolated dedupe keys, RealBUDosingAlgorithm sendability annotation, and deployment-target-safe Algo2015 XCFramework rebuild flags), and a repo-wide formatter normalization under the checked-in SwiftFormat configuration. The review focused on the final high-risk closure set (LoopRuntimeEngine support files, publication/monitoring helpers, AppAlertCenter, RealBUDosingAlgorithm, and Scripts/build_algo2015.sh) and found no actionable regressions. Final closure verification passed for repo lint (Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-final-closure -> 0 violations, 0 serious), formatter report mode (Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-final-format -> 0/221 files require formatting), static analysis (xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet), the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), the full core package suite (swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore), and deterministic UI reruns for BionicLoopClinicalSettingsUITests, BionicLoopCloudLoggingUITests, BionicLoopHomeUITests, BionicLoopIFUCaptureUITests, and BionicLoopNoAuthFlowUITests. The conservative SwiftLint baseline is now fully retired (file_length: 0, type_body_length: 0, function_body_length: 0, cyclomatic_complexity: 0). |
N/A | N/A (Swift code-quality workstream closure) |
Closed |
| CR-2026-03-31-30 | 2026-03-31 | 412929a |
Pass | Documentation review passed: added /Users/jcostik/BionicLoop/Docs/Quality/AlertFlowReview.md as a dedicated end-to-end alert review document covering implemented source triggers, normalization into AppAlert, Home/Alert Center presentation, background notification routing, persistence, and closure behavior, and explicitly distinguishing preview-only codes from currently issued production alerts. The same commit also updated /Users/jcostik/BionicLoop/Docs/Quality/README.md to index the new review document and corrected /Users/jcostik/BionicLoop/Docs/Quality/AlertInventoryAndMapping.md so it points at the post-refactor alert model files instead of the older LoopRuntimeEngine.swift location. This was a docs-only slice; no code changed and no test reruns were required. |
N/A | SRS-ALERT-001..014 |
Closed |
| CR-2026-03-31-31 | 2026-03-31 | d7c0e54 |
Findings | Planning review documented open pump/algorithm alert gaps in /Users/jcostik/BionicLoop/Docs/Planning/PumpAndAlgorithmAlertGapReview.md. The highest-severity confirmed issue was that required-ack pump alerts could reappear after relaunch because AppAlertCenter.acknowledgeAlert(...) cleared only app-local state while /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift restore logic rehydrated unretracted persisted pump alerts. The same review also documented that the production runtime currently emits only ALERT-ALGORITHM-STEPPING-INTERRUPTED even though broader algorithm alert codes are defined and routed, and that interruption blocker detail currently covers only a subset of the pump/runtime blocker space. This was a docs-only review artifact; no code changed and no tests were rerun. |
3d24b5b |
SRS-ALERT-003, SRS-ALERT-005, SRS-ALERT-008, SRS-ALERT-009, SRS-ALERT-012, SRS-ALERT-013, SRS-ALERT-014 |
Closed |
| CR-2026-04-01-01 | 2026-04-01 | 3d24b5b |
Pass | Pump alert lifecycle fix review passed. AppAlertCenter now routes source-specific acknowledge handlers, AppPumpManagerDelegate records acknowledgedDate for matching required-ack pump alerts and restores only unretracted, unacknowledged persisted alerts, and direct regression coverage verifies delegate-originated pump fault issue -> acknowledge -> AppAlertCenter.reset() -> delegate reattach remains closed. Verification passed for the focused alert lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests -only-testing:BionicLoopTests/BionicLoopAlertLifecycleTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). STR-SIM working evidence: /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Working/STR-SIM-001/2026-04-01-pump-alert-ack-persistence/ (covered TV-SIM-003, TV-SIM-005). |
N/A | SRS-ALERT-005, SRS-ALERT-008, SRS-ALERT-009 |
Closed |
| CR-2026-04-01-02 | 2026-04-01 | 3d24b5b |
Findings | Follow-up review found a startup-window gap in the first pump acknowledge persistence fix: AppAlertCenter restored persisted active alerts during initialization, but pump acknowledgement persistence still depended on lazy .pump handler registration from AppPumpManagerDelegate, so a previously persisted ALERT-PUMP-FAULT or ALERT-PUMP-INCOMPATIBLE could be acknowledged before the pump handler registered and then reappear on later attach/relaunch. The issue was closed by persisting pending source acknowledgements in /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift, draining them when the source handler registers, and moving /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift restore candidate computation to after handler registration/drain. Focused and broader verification passed after the fix; STR-SIM working evidence remained /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Working/STR-SIM-001/2026-04-01-pump-alert-ack-persistence/ (TV-SIM-003, TV-SIM-005). |
aea8457 |
SRS-ALERT-005, SRS-ALERT-008, SRS-ALERT-009 |
Closed |
| CR-2026-04-01-03 | 2026-04-01 | aea8457 |
Pass | Startup-window hardening review passed. AppAlertCenter now persists pending source acknowledgements when no source handler is registered yet, drains those pending acknowledgements when the handler later registers, and clears the pending-ack store on reset; AppPumpManagerDelegate.restoreUnretractedAlerts() now registers/drains before computing pump restore candidates, closing the relaunch window where a persisted required-ack pump alert could be acknowledged before pump lifecycle persistence was reachable. Direct regression coverage was added in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterTests.swift for pending-pump-ack replay-after-relaunch and pending-store reset clearing. Verification passed for the focused alert lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests -only-testing:BionicLoopTests/BionicLoopAlertLifecycleTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). STR-SIM working evidence: /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Working/STR-SIM-001/2026-04-01-pump-alert-ack-persistence/ (covered TV-SIM-003, TV-SIM-005). |
N/A | SRS-ALERT-005, SRS-ALERT-008, SRS-ALERT-009 |
Closed |
| CR-2026-04-01-04 | 2026-04-01 | 82ef0ba |
Findings | Alert review found that ALERT-CGM-FAILED-OR-EXPIRED still had no real source-side acknowledge closure path. CGMAlertMapper marked the alert requiresAcknowledge, but /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/AppCGMManagerDelegate.swift did not register a .cgm acknowledgement handler with AppAlertCenter, /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/CGMAlertPersistenceStore.swift did not persist acknowledged dedupe state, and live syncG7Alerts(...) would re-upsert the failed or expired alert on the next CGM refresh while the sensor remained failed. The issue was fixed by 083d396, which persists required-ack CGM acknowledgement into the CGM lifecycle store and suppresses reissue until recovery clears the suppression state. |
083d396 |
SRS-CGM-003, SRS-CGM-004, SRS-ALERT-005, SRS-ALERT-008, SRS-ALERT-009 |
Closed |
| CR-2026-04-01-05 | 2026-04-01 | 083d396 |
Pass | CGM alert acknowledge persistence review passed. /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/AppCGMManagerDelegate.swift now registers the .cgm acknowledgement handler before issue, sync, and restore paths; /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/CGMAlertPersistenceStore.swift now records acknowledgedDate on matching persisted CGM alerts and persists an acknowledged-dedupe suppression map; and live failed/expired CGM sync now suppresses reissue of acknowledged required-ack alerts until recovery or retraction clears that suppression state. Direct regression coverage was added in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertLifecycleTests.swift and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertPersistenceTests.swift, while the broader app unit suite remained green. Verification passed for the focused CGM alert lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAlertLifecycleTests -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests -only-testing:BionicLoopTests/BionicLoopCGMAlertMapperTests) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.04.01_08-43-20--0400.xcresult and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.04.01_08-43-50--0400.xcresult. STR-SIM working evidence: /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Working/STR-SIM-001/2026-04-01-cgm-alert-acknowledge-persistence/ (covered TV-SIM-003, TV-SIM-005). |
N/A | SRS-CGM-003, SRS-CGM-004, SRS-ALERT-005, SRS-ALERT-008, SRS-ALERT-009 |
Closed |
| CR-2026-04-01-06 | 2026-04-01 | 8d3ce84 |
Pass | Clinical settings relocation review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeClinicalBionicLoopSectionView.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeClinicalSettingsFormView.swift, and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsView.swift now expose Start Algo on the locked Clinical Settings screen only when no active algorithm session exists, while keeping Reset Algo unlock-protected and removing Start Algo from the unlocked controls. Direct regression coverage was added in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeUICriticalRuntimeTests.swift, and focused UI verification was updated in /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopClinicalSettingsUITests.swift to confirm invalid passcode still blocks clinician fields while allowing the pre-session start action and keeping reset unavailable until unlock. Verification passed for the focused clinical lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopHomeUICriticalRuntimeTests -only-testing:BionicLoopUITests/BionicLoopClinicalSettingsUITests/testUI012_ClinicalSettingsInvalidPasscodeBlocksUnlock -only-testing:BionicLoopUITests/BionicLoopClinicalSettingsUITests/testUI013_ClinicalControlsVisibleOnlyInsideUnlockedClinicalSettings) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). Verification artifacts: /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.04.01_11-40-10--0400.xcresult and /Users/jcostik/Library/Developer/Xcode/DerivedData/BionicLoop-cokkkuutkqfrqugzzomqmbazrvte/Logs/Test/Test-BionicLoop-2026.04.01_11-40-57--0400.xcresult. |
N/A | SRS-CLIN-001, SRS-CLIN-002, SRS-CLIN-003, SRS-CLIN-008 |
Closed |
| CR-2026-04-01-07 | 2026-04-01 | 03a499a |
Pass | Workflow review passed. /Users/jcostik/BionicLoop/AGENTS.md and /Users/jcostik/BionicLoop/Docs/Quality/DevelopmentSOP.md now explicitly require code-quality verification as part of merge-intended review and pre-commit closure work, alongside targeted tests, broader impacted suites, and code-review evidence. The updated process now names Scripts/run_swift_quality_checks.sh --lint, Scripts/run_swift_quality_checks.sh --format, and xcodebuild analyze for impacted app/core Swift changes unless the change is docs-only. This was a docs-only process update; no product code changed and no tests were rerun. |
N/A | N/A (process documentation update) |
Closed |
| CR-2026-04-01-08 | 2026-04-01 | ac9a18d |
Pass | Meal announcement composer presentation review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift now uses consistent filled-circle iconography for relative carb choices (minus.circle.fill, circle.fill, plus.circle.fill), renames the default choice label from Normal to Typical, and replaces the prior Relative carb count / Lower|Typical|Higher copy with clearer user-facing guidance: Carb amount for this meal vs your usual plus Lower/Typical/Higher carb content for you. Direct regression coverage was added in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift to pin the new section title, choice labels, subtitles, and SF Symbol names. Verification passed for the focused meal lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). Code-quality verification also passed for the touched scope: Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-meal-format reported 0/221 files requiring formatting, and xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet completed cleanly. Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-meal-lint reported the same single unrelated pre-existing repo warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift (type_body_length); no new violations were introduced in the touched meal files. |
N/A | SRS-MEAL-003, SRS-UI-002 |
Closed |
| CR-2026-04-01-09 | 2026-04-01 | d8b15cc |
Pass | Meal composer selected-state emphasis review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift now uses a stronger theme-blue treatment for selected meal choices and the relative-carb selector: selected meal buttons use accentPrimary fill with accentMuted stroke and blue shadow, and the carb selector uses accentSubtleFill with blue title styling and blue border instead of the prior neutral surface treatment. No copy, telemetry, or meal-size mapping behavior changed. Verification passed for the focused meal lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). Code-quality verification also passed for the touched scope: Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-meal-color-format reported 0/221 files requiring formatting, xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet completed cleanly, and Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-meal-color-lint reported the same single unrelated pre-existing repo warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift (type_body_length) with no new violations in the touched meal file. |
N/A | SRS-MEAL-003, SRS-UI-002 |
Closed |
| CR-2026-04-01-10 | 2026-04-01 | 3d6aa2c |
Pass | Meal carb selector popup readability review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift now presents the three popup menu options as stronger single-line choices (Less than usual for you, Typical for you, More than usual for you) and marks the currently selected option with checkmark.circle.fill, instead of relying on the prior smaller two-line title/subtitle treatment inside the system menu. Direct regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift was extended to pin the new menuTitle strings for each carb choice. Verification passed for the focused meal lane (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). Code-quality verification also passed for the touched scope: Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-meal-menu-readability-format reported 0/221 files requiring formatting, xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet completed cleanly, and Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-meal-menu-readability-lint reported the same single unrelated pre-existing repo warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift (type_body_length) with no new violations in the touched files. |
N/A | SRS-MEAL-003, SRS-UI-002 |
Closed |
| CR-2026-04-01-11 | 2026-04-01 | 199a3bc |
Pass | Meal carb choice interaction review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift no longer uses the system Menu for relative carb choice selection; it now presents a custom in-sheet picker list whose current selection is visibly highlighted in theme blue before dismissal, and the selected option is marked with checkmark.circle.fill. Focused UI regression coverage was added in /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopHomeUITests.swift against the deterministic IFU_SCREEN=meal path to verify the picker opens, shows the current selected indicator, updates the closed selector title after choosing a new option, and reopens with the new selected indicator. Verification passed for the focused meal lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopUITests/BionicLoopHomeUITests/testUI002a_MealAnnouncementCarbChoicePickerShowsCurrentBlueSelectionState) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests). Code-quality verification also passed for the touched scope: Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-meal-picker-format reported 0/221 files requiring formatting, xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet completed cleanly, and Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-meal-picker-lint reported the same single unrelated pre-existing repo warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift (type_body_length) with no new violations in the touched files. |
N/A | SRS-MEAL-003, SRS-UI-002 |
Closed |
| CR-2026-04-01-12 | 2026-04-01 | 8ee96eb |
Pass | Meal carb picker ordering and open-state review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift now presents the custom carb options in More, Typical, Less order and hides the closed current-selection summary row while the option list is open, so the presented selector shows only the three choices and keeps Less anchored at the bottom. Direct regression coverage was extended in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift to pin the new presented option ordering, and /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopHomeUITests.swift now verifies the open-state summary is hidden, the option ordering is top-to-bottom more < normal < less, and reopening the picker shows the updated selected indicator. Verification passed for the focused meal lanes (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopUITests/BionicLoopHomeUITests/testUI002a_MealAnnouncementCarbChoicePickerShowsCurrentBlueSelectionState -quiet) and the broader app unit suite (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests -quiet). Code-quality verification also passed for the touched scope: Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-meal-picker-order-format reported 0/221 files requiring formatting, xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet completed cleanly, and Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-meal-picker-order-lint reported the same single unrelated pre-existing repo warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift (type_body_length) with no new violations in the touched files. |
N/A | SRS-MEAL-003, SRS-UI-002 |
Closed |
| CR-2026-04-01-13 | 2026-04-01 | 0edf344 |
Pass | Meal carb selector copy review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift now labels the chooser as Relative (to you) carb content for selected meal, and the default Typical option subtitle is now Usual carb content for you. Direct regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift was updated to pin both string changes. Verification passed for the focused meal runtime lane on a fresh DerivedData path (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -derivedDataPath /tmp/BionicLoopMealLabelDD2 -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -quiet) and the broader app unit suite on the same clean build path (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -derivedDataPath /tmp/BionicLoopMealLabelDD2 -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests -quiet). Code-quality verification also passed for the touched scope: Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-meal-copy-format reported 0/221 files requiring formatting, xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet completed cleanly, and Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-meal-copy-lint reported the same single unrelated pre-existing repo warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift (type_body_length) with no new violations in the touched files. A focused UI rerun against BionicLoopHomeUITests/testUI002a_MealAnnouncementCarbChoicePickerShowsCurrentBlueSelectionState was attempted both on the default and fresh DerivedData paths, but both runs failed before assertions with the existing simulator BionicLoopUITests bundle-load/codesign issue rather than a product-level UI assertion failure. |
N/A | SRS-MEAL-003, SRS-UI-002 |
Closed |
| CR-2026-04-01-14 | 2026-04-01 | 596d684 |
Pass | Home confirmation action layout review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeDestructiveConfirmationView.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/RegularTargetChangeApprovalView.swift, and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeClinicalSaveReviewView.swift now place their destructive cancel and confirm/apply actions side by side with the existing left-to-right destructive/confirm ordering and unchanged button styles. /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopUITestSupport.swift gained assertHorizontalActionPair(...), and /Users/jcostik/BionicLoop/BionicLoopUITests/BionicLoopHomeUITests.swift now verifies the relevant action pairs share the same row, keep equal widths, and preserve left-to-right ordering across manual BG, target-change approval, clinical review, reset confirmation, and logout confirmation. Verification passed for the focused Home UI lane on a fresh DerivedData path (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -derivedDataPath /tmp/BionicLoopActionLayoutUI -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopUITests/BionicLoopHomeUITests/testUI004a_CancelAndConfirmButtonsUseSideBySideActionLayout -quiet) and the broader app unit suite on a clean build path (xcodebuild test -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -derivedDataPath /tmp/BionicLoopActionLayoutDD -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests -quiet). Code-quality verification also passed for the touched scope: Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-side-by-side-actions-format reported 0/221 files requiring formatting, Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-side-by-side-actions-lint reported the same single unrelated pre-existing repo warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift (type_body_length) with no new touched-file violations, and xcodebuild analyze -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -quiet completed successfully with only the existing unrelated repo warnings from pump/CGM/app-alert files. |
N/A | SRS-UI-002 |
Closed |
| CR-2026-04-02-01 | 2026-04-02 | 5c281e3 |
Pass | Meal announce reconnect recovery review passed. /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngine.swift now bases meal-announce availability on PumpStatusObserver.shared.latestPumpStatus instead of the pump adapter's stale cached delivery state, and /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngineMealAvailabilitySupport.swift now allows a recovered current known pump state to reopen meal announce immediately while still preserving an explicit signalLoss block when a submit attempt itself used unavailable pump status. Direct regression coverage was added in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift for recovered-status reopening, no-current-status signal-loss blocking, and conservative post-submit signal-loss blocking. Planning docs were aligned in /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md and /Users/jcostik/BionicLoop/Docs/Planning/DevChangePlan.md. Verification passed for the focused impacted lane (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementPersistenceRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeActionCoordinatorTests), the broader app unit suite (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-meal-reconnect-final (same single unrelated pre-existing warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift), Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-meal-reconnect-final-format (0/221 files requiring formatting), and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17'. |
N/A | SRS-MEAL-003 |
Closed |
| CR-2026-04-02-02 | 2026-04-02 | 3fb4fd3 |
Pass | CGM alert policy review passed. /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/CGMAlertMapper.swift, /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertDomainSupport.swift, and /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenterNotificationSupport.swift now implement the explicit policy that BionicLoop CGM alerts are informational in-app status only, do not require app-side acknowledge, and never schedule OS notifications; the FDA-cleared Dexcom application is now documented as the source of truth for CGM alarming in /Users/jcostik/BionicLoop/Docs/Requirements/Requirements.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareRequirementsSpecification.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/TraceabilityMatrix.md, /Users/jcostik/BionicLoop/Docs/Quality/AlertFlowReview.md, and /Users/jcostik/BionicLoop/Docs/Quality/AlertInventoryAndMapping.md. Direct regression coverage now pins informational CGM mapping, no-required-ack semantics, no-background-notification scheduling for CGM alerts, and failed-alert restoration from live state until recovery in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAppAlertDomainSupportTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopCGMAlertMapperTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertPersistenceTests.swift. Verification passed for the focused alert/CGM lane (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopAppAlertDomainSupportTests -only-testing:BionicLoopTests/BionicLoopCGMAlertMapperTests -only-testing:BionicLoopTests/BionicLoopAlertCenterRuntimeTests -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests -only-testing:BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests), the broader app unit suite (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-swift-quality-cgm-alert-policy-lint-final (same single unrelated pre-existing warning in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift), Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-swift-quality-cgm-alert-policy-format-final (0/221 files requiring formatting), and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17'. |
N/A | SRS-ALERT-005, SRS-ALERT-007, SRS-ALERT-013, SRS-ALERT-014, SRS-ALERT-015 |
Closed |
| CR-2026-04-02-03 | 2026-04-02 | 63e94b9 |
Pass | CGM urgent-low review alert implementation review passed. /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/CGMAlertMapper.swift now derives a dedicated normalized urgent-low alert from trustworthy, non-stale G7 readings below 55 mg/dL, while /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/AppCGMManagerDelegate.swift and /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/CGMAlertPersistenceStore.swift preserve clinician review acknowledgement across live-state resyncs until trustworthy recovery at >= 55 mg/dL. /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertDomainSupport.swift, /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertSupport.swift, /Users/jcostik/BionicLoop/BionicLoop/Runtime/AppAlertCenter.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeAlertCenterView.swift, and /Users/jcostik/BionicLoop/BionicLoop/App/BionicLoopApp.swift now model the alert as an in-app-only, acknowledgeable review alert that remains visible in the active list with reviewed state, never schedules an OS notification, routes to the CGM destination, and auto-clears only when a later trustworthy reading recovers. Quality docs were updated in /Users/jcostik/BionicLoop/Docs/Requirements/Requirements.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareRequirementsSpecification.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/TraceabilityMatrix.md, /Users/jcostik/BionicLoop/Docs/Quality/AlertFlowReview.md, and /Users/jcostik/BionicLoop/Docs/Quality/AlertInventoryAndMapping.md to distinguish this app-derived urgent-low review flow from Dexcom-app alarming. Direct regression coverage now pins urgent-low mapping thresholds and trust gates, acknowledge-without-immediate-clear behavior, persistence across alert-center reset until recovery, preview/domain semantics, and no-background-notification scheduling in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopCGMAlertMapperTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertPersistenceTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAppAlertDomainSupportTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests.swift. Verification passed for the focused alert lane (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopCGMAlertMapperTests -only-testing:BionicLoopTests/BionicLoopAppAlertDomainSupportTests -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests -only-testing:BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests), the broader app unit suite (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), Scripts/run_swift_quality_checks.sh --lint (same three pre-existing repo warnings in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopCGMAlertMapperTests), Scripts/run_swift_quality_checks.sh --format (0/221 files requiring formatting), and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17'. |
N/A | SRS-ALERT-016 |
Closed |
| CR-2026-04-02-04 | 2026-04-02 | a46d690 |
Pass | Post-review urgent-low false-clear fix passed and closes the safety finding discovered against 63e94b9. /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/CGMAlertMapper.swift now distinguishes urgent-low sync state as active, recovered, or indeterminate instead of treating every non-active reading path as a clear condition, and /Users/jcostik/BionicLoop/BionicLoop/Integrations/CGM/AppCGMManagerDelegate.swift now retracts ALERT-CGM-URGENT-LOW only after trustworthy recovery at >=55 mg/dL while leaving the active episode and any clinician-review acknowledgement intact across stale, unreliable, or missing-reading CGM states. Direct regression coverage was added in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertPersistenceTests.swift for live attach/sync transitions through unreliable, stale, and missing-reading states before recovery, in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopCGMAlertMapperTests.swift for the new urgent-low state classification (active / recovered / indeterminate), and in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopRuntimeTestSupport.swift for missing-reading G7 manager construction. Quality docs were clarified in /Users/jcostik/BionicLoop/Docs/Quality/AlertFlowReview.md and /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md so the design explicitly states that stale, unreliable, or missing readings do not clear an active urgent-low episode. Verification passed for the focused impacted lane (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopCGMAlertMapperTests -only-testing:BionicLoopTests/BionicLoopAlertPersistenceTests -only-testing:BionicLoopTests/BionicLoopAlertCenterTests -only-testing:BionicLoopTests/BionicLoopUserNotificationAppAlertSchedulerTests), the broader app unit suite (xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests), Scripts/run_swift_quality_checks.sh --lint (same three pre-existing repo warnings in /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/AppPumpManagerDelegate.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopAlertCenterTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopCGMAlertMapperTests, with no new warnings outside the existing baseline), Scripts/run_swift_quality_checks.sh --format (0/221 files requiring formatting), and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17'. |
63e94b9 |
SRS-ALERT-016 |
Closed |
| CR-2026-04-02-05 | 2026-04-02 | 35d723d |
Pass | Feasibility review passed for the new planning memo /Users/jcostik/BionicLoop/Docs/Planning/DashOfflineBasalFallbackFeasibilityReview.md, which evaluates whether DASH can support a pre-armed pending offline basal that activates after phone separation without new app communication. The review grounds the analysis in the current repo surface: /Users/jcostik/BionicLoop/BionicLoopCore/Sources/BionicLoopCore/Ports/PumpService.swift and /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpServiceAdapter.swift expose only immediate pump actions; /Users/jcostik/BionicLoop/OmniBLE/OmniBLE/PumpManager/OmniBLEPumpManager.swift exposes immediate temp basal and immediate basal schedule replacement rather than a delayed conditional fallback primitive; and /Users/jcostik/BionicLoop/BionicLoopCore/Sources/Algo2015Bridge/include/AlgorithmInterface.h, /Users/jcostik/BionicLoop/BionicLoopCore/Sources/BionicLoopCore/Domain/PumpStatus.swift, and /Users/jcostik/BionicLoop/BionicLoopCore/Sources/BionicLoopCore/Algorithms/RealBUDosingAlgorithm.swift show that resume-time basal reconciliation remains a real design gap even if threshold-time fallback dosing is later implemented. The same commit updated /Users/jcostik/BionicLoop/Docs/README.md so the team-review packet is reachable from the docs portal. This was a docs-only planning slice; no code changed and no tests were rerun. |
N/A | N/A |
Closed |
| CR-2026-04-02-06 | 2026-04-02 | aff0978 |
Pass | Follow-up review updated /Users/jcostik/BionicLoop/Docs/Planning/DashOfflineBasalFallbackFeasibilityReview.md to answer the concrete command-pattern question for Phase 1 capability proof. The memo now explicitly documents that the current BionicLoop pump surface is limited to immediate actions, that the current OmniBLE temp-basal surface supports 0 U/hr but only for 30 minutes to 12 hours, that setBasalSchedule(...) is an immediate active basal-program replacement rather than a delayed future-start primitive, and that BionicLoop does not currently maintain an algorithm-owned basal schedule on the pod because the DASH setup flow seeds a 0.0 U/hr basal schedule and the runtime does not rewrite basal schedule on each step. The update also records an external product-surface confirmation from the public Omnipod DASH Technical User Guide that temp basals are 30 minutes to 12 hours and basal program changes are explicit immediate activation decisions, not queued delayed starts. This was a docs-only clarification slice; no code changed and no tests were rerun. |
N/A | N/A |
Closed |
| CR-2026-04-02-07 | 2026-04-02 | 726b904 |
Pass | Follow-up review refined /Users/jcostik/BionicLoop/Docs/Planning/DashOfflineBasalFallbackFeasibilityReview.md around the masked-fallback-schedule design now under discussion. The memo now distinguishes the mechanically plausible design of an always-active fallback basal schedule masked by repeated 0.0 U/hr temp basals from the earlier unsupported "pending delayed start" concept, documents the critical command-order hazard (setBasalSchedule(...) immediately activates the schedule, so the masking temp basal must succeed immediately afterward), and evaluates the algorithm contract for a fixed 120 mg/dL fallback target. The review records that the current runtime already injects target directly into the algorithm through /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopRuntimeEngineOperationalSupport.swift, /Users/jcostik/BionicLoop/BionicLoop/Runtime/ClinicalAlgorithmConfigStore.swift, /Users/jcostik/BionicLoop/BionicLoopCore/Sources/BionicLoopCore/Algorithms/RealBUDosingAlgorithm.swift, and /Users/jcostik/BionicLoop/BionicLoopCore/Sources/Algo2015Bridge/Algo2015Bridge.c, but that current code and tests support only monotonic target influence rather than any safe post-processing factor from one target to another. The memo therefore recommends a dedicated fallback algorithm track or explicit fallback-basal contract rather than deriving a 120 mg/dL equivalent by scaling live-target output, and it reiterates that resume-time basal reconciliation remains required before any masked-schedule design should be treated as shippable. This was a docs-only clarification slice; no code changed and no tests were rerun. |
N/A | N/A |
Closed |
| CR-2026-04-02-08 | 2026-04-02 | 80b3624 |
Pass | Follow-up feasibility review clarified the direct conflict between autonomous offline fallback basal and the current degraded pump-unavailable stepping model. /Users/jcostik/BionicLoop/Docs/Planning/DashOfflineBasalFallbackFeasibilityReview.md now states that the live algorithm currently continues advancing on fresh CGM with unavailable pump input while only blocking command application, which is compatible with today's "no autonomous dosing while unavailable" behavior but not with a masked fallback schedule that may dose on the pod during separation. The memo therefore records that any future masked-fallback implementation would require a new live-resume policy: either freeze authoritative live stepping once fallback basal may be active and replay missed 5-minute steps after delivery reconciliation, or adopt a more complex authoritative-rebuild model rather than continuing today's degraded stepping as-is. This was a docs-only clarification slice; no code changed and no tests were rerun. |
N/A | N/A |
Closed |
| CR-2026-04-04-01 | 2026-04-04 | 1d59bfe |
Pass | Pump expiration alert timing review passed. /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpStatusAlertSupport.swift and /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpAlertMapper.swift now align ALERT-PUMP-EXPIRED countdown/stop-time messaging with the full remaining Omnipod DASH service-stop window after nominal expiration, instead of incorrectly using only Pod.expirationAdvisoryWindow and showing a stop time one hour early. Focused regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopPumpAlertMapperTests.swift now pins the corrected deadline for both mapped podExpiring fallback and state-derived expired alerts. Alert review docs were updated in /Users/jcostik/BionicLoop/Docs/Quality/AlertFlowReview.md and /Users/jcostik/BionicLoop/Docs/Quality/AlertInventoryAndMapping.md, and STR-SIM working evidence was recorded at /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Working/STR-SIM-001/2026-04-04-pump-expiration-stop-time-alignment/ (TV-SIM IDs: N/A; focused alert verification only). Verification passed via focused xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopPumpAlertMapperTests -only-testing:BionicLoopTests/BionicLoopPumpStatusAlertTests, broader xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests, Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-pump-expiration-stop-time-lint (same three pre-existing baseline warnings only), Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-pump-expiration-stop-time-format, and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' (existing analyzer warnings only). |
N/A | SRS-ALERT-001, SRS-ALERT-002, SRS-ALERT-007, SRS-ALERT-010 |
Closed |
| CR-2026-04-05-01 | 2026-04-05 | 7aeac45 |
Pass | Meal cancel-delivery Home-flow review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeView.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeChartsActionsSection.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMainContentView.swift, and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift now move the destructive Cancel Delivery slider out of the meal composer and onto Home beneath the Manual BG / Let's Eat controls, while /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeStateBuilders.swift and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeActionCoordinator.swift keep the flow meal-only and surface the orange partial-delivery summary in Home's standard alert region above the chart. Pump cancellation plumbing remains wired through /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpStatusObserver.swift, /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpServiceAdapter.swift, and /Users/jcostik/BionicLoop/BionicLoopCore/Sources/BionicLoopCore/Ports/PumpService.swift, so actual requested vs delivered insulin is preserved for the next algorithm step. Focused UI verification passed for BionicLoopHomeUITests.testUI002b_MealCancelDeliveryFlowShowsPartialDeliverySummaryAndComposer, IFU capture passed through BionicLoopIFUCaptureUITests.testUI900_CaptureIFUScreens, broader app verification passed via xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests, core package verification passed via swift test --package-path /Users/jcostik/BionicLoop/BionicLoopCore, and code-quality verification passed via Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-meal-cancel-delivery-lint, Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-meal-cancel-delivery-format, and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17'. Lint remained at the existing repo baseline with only pre-existing warnings outside this slice. |
N/A | SRS-MEAL-011, SRS-MEAL-002, SRS-UI-002 |
Closed |
| CR-2026-04-05-02 | 2026-04-05 | 1c8ba8f |
Pass | Follow-up meal cancel-delivery UX review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeChartsActionsSection.swift now simplifies the inline status copy to Meal announcement delivery in progress..., /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeView.swift and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeStateBuilders.swift now retain the orange partial-delivery Home summary until both a later algorithm step and a 5-minute minimum display window have passed, and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeInlineInsulinChartView.swift now renders interrupted insulin bars in caution color whenever requested delivery exceeds actual delivered insulin. Regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift pins the step-plus-time dismissal policy, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeChartTests.swift pins telemetry-derived interrupted-delivery chart styling. Verification passed via focused xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeChartTests, focused UI xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -derivedDataPath /tmp/bionicloop-home-ui-meal-cancel-20260405 -only-testing:BionicLoopUITests/BionicLoopHomeUITests/testUI002b_MealCancelDeliveryFlowShowsPartialDeliverySummaryAndComposer, broader app verification xcodebuild test -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -derivedDataPath /tmp/bionicloop-apptests-20260405 -only-testing:BionicLoopTests, Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-meal-cancel-followup-lint (existing baseline warnings only), Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-meal-cancel-followup-format, and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -derivedDataPath /tmp/bionicloop-analyze-20260405 (existing analyzer warnings only). Updated screenshots at /Users/jcostik/BionicLoop/Docs/Quality/IFU/assets/home-meal-cancel-delivery.png, /Users/jcostik/BionicLoop/Docs/Quality/IFU/assets/home-meal-cancel-delivery-partial.png, and /Users/jcostik/BionicLoop/Docs/Quality/IFU/assets/home-meal-cancel-delivery-ready.png were visually inspected; a dedicated IFU capture rerun on fresh DerivedData ended in a non-specific harness failure and was not used as a merge gate. |
N/A | SRS-MEAL-011, SRS-PUMP-003, SRS-UI-002 |
Closed |
| CR-2026-04-05-03 | 2026-04-05 | 213e207 |
Pass | IFU commercial-quality review pass completed. /Users/jcostik/BionicLoop/Docs/Quality/IFU/BionicLoop_IFU_v1.4.md, /Users/jcostik/BionicLoop/Docs/Quality/IFU/ifu-v1.4-print.css, /Users/jcostik/BionicLoop/Scripts/build_ifu_v1_4.sh, and /Users/jcostik/BionicLoop/Scripts/capture_ifu_screenshots.sh now produce a workflow-complete v1.4 IFU package with refreshed direct-capture simulator assets for login, Home, settings, clinical settings, recent dose steps, CGM setup/settings, Pod setup, meal announcement, cancel-delivery follow-up, and Alert Center. App-side IFU seeding and route support in /Users/jcostik/BionicLoop/BionicLoop/App/BionicLoopApp.swift, /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopTelemetryStore.swift, /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpStatusObserver.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeView.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeMealBGViews.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsView.swift, and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeStateBuilders.swift remain launch-argument scoped for documentation capture only, with regression coverage added in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeViewStateBuilderTests.swift and /Users/jcostik/BionicLoop/BionicLoopTests/LoopTelemetryStoreTests.swift. Verification passed via Scripts/capture_ifu_screenshots.sh, Scripts/build_ifu_v1_4.sh, focused xcodebuild -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests/BionicLoopHomeViewStateBuilderTests -only-testing:BionicLoopTests/LoopTelemetryStoreTests/testSeedUITestIFUReadyStateSampleSeedsWorkflowDisplayData test, broader xcodebuild -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' -parallel-testing-enabled NO -only-testing:BionicLoopTests test, Scripts/run_swift_quality_checks.sh --lint --output-dir /tmp/bionicloop-ifu-v14-lint (existing baseline warnings only), Scripts/run_swift_quality_checks.sh --format --output-dir /tmp/bionicloop-ifu-v14-format, and xcodebuild analyze -quiet -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -destination 'platform=iOS Simulator,name=iPhone 17' (no new analyzer findings). |
N/A | N/A (IFU package, capture tooling, and documentation-only launch routing) |
Closed |
| CR-2026-04-06-01 | 2026-04-06 | 61a75fe |
Pass | Release/TestFlight auth-environment review passed. /Users/jcostik/BionicLoop/Config/Build/Release.xcconfig now intentionally inherits /Users/jcostik/BionicLoop/Config/Environments/CC-DEV.xcconfig so Release/TestFlight archives resolve the same real Cognito and API values as Debug instead of the placeholder REPLACE_ME_* values from /Users/jcostik/BionicLoop/Config/Build/Base.xcconfig, and /Users/jcostik/BionicLoop/Docs/Setup/CloudEnvironmentStrategy.md now records that this Release -> CC-DEV mapping is temporary until dedicated staging/production environments are available. Verification passed via xcodebuild -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -scheme BionicLoop -configuration Release -showBuildSettings, confirming BL_AUTH_ENV_NAME = CC-DEV, BL_API_BASE_URL = https://hj88hdlzz3.execute-api.us-east-1.amazonaws.com, BL_COGNITO_USER_POOL_ID = us-east-1_zLtrFNuJn, BL_COGNITO_USER_POOL_CLIENT_ID = 3iaplato9dhbk4pkh0pel5mdcj, BL_COGNITO_HOSTED_UI_DOMAIN = https://bionicscout-dev-auth.auth.us-east-1.amazoncognito.com, BL_COGNITO_SIGN_IN_REDIRECT_URI = bionicloop://auth/signin, and BL_COGNITO_SIGN_OUT_REDIRECT_URI = bionicloop://auth/signout under the Release configuration. |
N/A | N/A (build-configuration and environment policy documentation) |
Closed |
| CR-2026-04-06-02 | 2026-04-06 | 37172ca |
Pass | IDE software-handoff planning review passed. /Users/jcostik/BionicLoop/Docs/Quality/README.md and /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md now explicitly define the engineering-owned software handoff set versus downstream quality/release activities that remain owned by the receiving quality/submission team. /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md now adds Workstream O to focus this week on software-package scope lock, controlled-document normalization, requirement disposition, STP/RTM readiness, and handoff assembly, and /Users/jcostik/BionicLoop/Docs/Planning/NextSprintChecklist.md is now aligned to that one-week software-handoff goal. Verification for this slice was a document-consistency review only; no code, test, lint, or analyzer runs were required because product behavior did not change. |
N/A | N/A (IDE software handoff planning and scope definition) |
Closed |
| CR-2026-04-06-03 | 2026-04-06 | 8fe67de |
Pass | IDE software-handoff normalization review passed. The package now includes an explicit engineering-owned manifest in /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, an updated scope/deferred-items record in /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Disposition_Log.md, a rewritten engineering-owned closure tracker in /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, and aligned planning/checklist status in /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md and /Users/jcostik/BionicLoop/Docs/Planning/NextSprintChecklist.md. /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/STP/STP-TV-Ownership-Map.md, and /Users/jcostik/BionicLoop/Docs/Quality/TraceabilityMatrix.md now consistently distinguish current in-scope device-local software controls from deferred cloud/auth closure, especially for RA-009 / TV-SEC-*. This was a docs-only controlled-package review; no code, test, lint, or analyzer runs were required because product behavior did not change. |
N/A | SRS-BG-008, SRS-MEAL-004, SRS-CLIN-002, SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-04 | 2026-04-06 | 36f216a |
Pass | Cybersecurity handoff-package review passed. /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md now distinguishes system trust boundaries, inherited supplier/device controls, BionicLoop-owned local controls, and explicit missing artifacts for the current software-only handoff boundary. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md now gives the package a concrete execution register for inherited DASH/G7 control reliance, Dexcom-app alarm-source boundary, local-package provenance gaps (OmniBLE, G7SensorKit, LoopKit), and BionicLoop-owned local control evidence gaps such as Documents-based CSV export, file-sharing/open-in-place exposure, logging review, and least-privilege review notes. /Users/jcostik/BionicLoop/Docs/Quality/RiskAnalysis.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/TraceabilityMatrix.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so RA-009, TV-SEC-001, RTM scope language, and the weekly IDE handoff plan all reflect the same narrower software-hand-off cybersecurity story. Verification for this slice was a docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-05 | 2026-04-06 | b6cec2d |
Pass | Follow-up cybersecurity handoff review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_SOUP_Provenance_Review.md now captures the current repo-observable provenance floor for OmniBLE, G7SensorKit, and LoopKit, including the concrete local package SHA, the current nested-repo remote pointing at the monorepo rather than an independently recorded upstream remote, the strong LoopKit/Loop-community lineage cues available in README content, bundle identifiers, and source headers, and the remaining exact-upstream/delta gaps that still prevent stronger provenance claims. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Local_File_and_Permission_Review.md now captures the current app-local cyber surface: plain UTF-8 CSV export into the app Documents directory via /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopTelemetryStore.swift, UIFileSharingEnabled and LSSupportsOpeningDocumentsInPlace in /Users/jcostik/BionicLoop/BionicLoop/Resources/Info.plist, Bluetooth permission/background-mode scope, and the absence of BionicLoop app CODE_SIGN_ENTITLEMENTS in the checked-in /Users/jcostik/BionicLoop/BionicLoop.xcodeproj/project.pbxproj. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were updated so these supporting reviews are now part of the software-handoff cyber package and the remaining gaps are narrowed to exact upstream capture, supplier/FDA artifacts, SBOM, formal TV-SEC-001 evidence, and baseline acceptability decisions. Verification for this slice was a docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-06 | 2026-04-06 | fcc1586 |
Pass | Dependency-inventory cybersecurity review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Dependency_Inventory.md now records the current software-composition baseline visible from the checked-in project and package manifests, including local first-party components (BionicLoop, BionicLoopCore, LoopKit, G7SensorKit, OmniBLE, Algo2015.xcframework, Algo2015Bridge) and the checked-in remote SwiftPM pins (CryptoSwift 1.9.0, SlideButton at the recorded main revision, and SwiftCharts at the recorded master revision). /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the package now has a concrete dependency-snapshot floor while still explicitly deferring formal SBOM generation and advisory-monitoring closure. Verification for this slice was a docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-07 | 2026-04-06 | e8b1f38 |
Pass | Cybersecurity provenance/logging follow-up review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_SOUP_Provenance_Review.md now upgrades the current provenance floor from purely repo-internal lineage cues to “repo lineage plus identified public upstream repo URLs” for LoopKit, G7SensorKit, and OmniBLE, while still explicitly declining to claim exact upstream commit equivalence or local-delta closure. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Logging_and_Secret_Review.md now documents the reviewed auth/network/telemetry logging surfaces, including BionicLoopConsoleLogger console-only behavior, AuthenticatedAPIClient query redaction and response-snippet residual risk, CloudTelemetryReporter metadata-only logging posture, and AuthSessionNetworking credential-fallback error logging without credential-value disclosure. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the remaining cyber gaps are now narrowed to exact upstream commit/tag mapping, local-delta capture, supplier/FDA inherited-control artifacts, baseline acceptability decisions, formal TV-SEC-001 promotion, and formal SBOM/advisory closure. Verification for this slice was a docs-consistency review plus repo inspection of current app logging surfaces and public upstream repo reachability; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-08 | 2026-04-06 | 531b26a |
Pass | Cybersecurity supplier-artifact handoff review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Supplier_Artifact_Request_List.md now turns the remaining inherited-control external-evidence gap into a concrete request matrix for Insulet / Omnipod DASH link-security artifacts, Dexcom G7 link-security artifacts, and official Dexcom app alarming-boundary artifacts. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md now points the open supplier/FDA artifact action at that request list, and /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the handoff package now includes an explicit receiving-team artifact ask rather than only a generic blocker statement. Verification for this slice was a docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-09 | 2026-04-06 | 93913c7 |
Pass | Cybersecurity baseline-acceptability review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Baseline_Acceptability_Recommendation.md now records an explicit engineering recommendation that the current baseline is acceptable only with conditions for the investigational software handoff package and is not acceptable as a production/commercial baseline without hardening. That recommendation is grounded in concrete repo evidence: automatic cleartext BionicLoop_StepTelemetry.csv export to the Documents directory from /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopTelemetryStore.swift, current UIFileSharingEnabled and LSSupportsOpeningDocumentsInPlace settings in /Users/jcostik/BionicLoop/BionicLoop/Resources/Info.plist, the narrower Bluetooth-focused permission surface, and the already-reviewed auth/network/telemetry logging posture. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Local_File_and_Permission_Review.md, /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the remaining cyber gap is now the receiving team’s freeze-time disposition against the documented recommendation, rather than the absence of any engineering position. Verification for this slice was a docs-consistency review, targeted repo inspection of the current automatic CSV export behavior and local file-access surface, and git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-10 | 2026-04-06 | 6795fa4 |
Pass | Embedded-package provenance review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_SOUP_Provenance_Review.md now upgrades the provenance floor from generic upstream-lineage cues to likely upstream import/sync commit mapping backed by direct tree comparison against public LoopKit, G7SensorKit, and OmniBLE histories. The note now records the likely LoopKit import basis (8b19a28dc094125b9dae03b5019449e5d2cff851 before local import f0ecf13), likely OmniBLE import basis (4ad75d62bdbfd7d6df4d2aac03e7396a3d0ef175 before local import 11dac33), and likely G7SensorKit initial import plus later sync basis (5139111ec6aa8a098163eab424a3a65bda09b86a before local import 11dac33, and 624bb360c277c43daa5232df986de7467bc0b72b before local sync a62e815), along with the current shipped monorepo delta summaries for each embedded package. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the remaining provenance gap is narrowed to any available upstream tag/release mapping plus curated security-relevant review of the post-import local deltas, rather than basic upstream lineage discovery. Verification for this slice was direct public-upstream repo inspection, local import/sync tree comparison, docs-consistency review, and git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-11 | 2026-04-06 | efcc340 |
Pass | Embedded-package security-delta review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Embedded_Package_Delta_Review.md now records a curated security-oriented review of the shipped local deltas in LoopKit, G7SensorKit, and OmniBLE, using the traced import/sync baselines from /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_SOUP_Provenance_Review.md. The review closes the local-delta-review gap for the handoff package by documenting that the reviewed LoopKit auth/keychain/logging deltas and G7SensorKit BLE/auth/logging deltas are formatting/code-quality only, while the reviewed OmniBLE local transport delta consists of CryptoSwift compatibility changes (Data.byteArray bridging) plus pairing/connection recovery behavior in PodComms.swift, not cryptographic weakening of the DASH session model. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_SOUP_Provenance_Review.md, /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the remaining embedded-package provenance gap is now narrowed to any available upstream tag/release mapping rather than unresolved local security-delta analysis. Verification for this slice was targeted diff review of the changed auth/logging/BLE/crypto/session files, docs-consistency review, and git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-12 | 2026-04-06 | 25f5369 |
Pass | SBOM/advisory-process review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_SBOM_and_Advisory_Process.md now defines the engineering-owned freeze-time process for generating the software handoff SBOM/advisory artifact, including baseline capture, dependency reconfirmation from the checked-in project/manifests, local binary checksum capture, advisory review sources, and preservation/cross-link expectations for the formal freeze package. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Dependency_Inventory.md now explicitly treats itself as the current dependency floor paired with that process note rather than a complete SBOM, and /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the remaining cyber gap is now freeze-time SBOM/advisory execution rather than missing ownership/process definition. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..009 |
Closed |
| CR-2026-04-06-13 | 2026-04-06 | b8cd2d9 |
Pass | TV-SEC-001 freeze-workflow review passed. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_TV_SEC_001_Freeze_Execution_Checklist.md now defines the freeze-time evidence recipe for the in-scope export/file-handling verification row, including the required baseline inputs, expected STR contents, and direct confirmation points for LoopTelemetryStore export behavior and Info.plist file-sharing/open-in-place keys. /Users/jcostik/BionicLoop/Docs/Quality/STP/STP-AUTO-001.md was corrected so TV-SEC-001 is now explicitly within automated protocol scope and points to the new checklist when run at freeze, resolving the prior mismatch with /Users/jcostik/BionicLoop/Docs/Quality/STP/STP-TV-Ownership-Map.md. /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Handoff_Register.md, /Users/jcostik/BionicLoop/Docs/Quality/CybersecurityPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Local_File_and_Permission_Review.md, /Users/jcostik/BionicLoop/Docs/Quality/Cybersecurity_Baseline_Acceptability_Recommendation.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the remaining gap is execution/promotion of TV-SEC-001, not missing procedure or protocol ownership. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..002 |
Closed |
| CR-2026-04-06-14 | 2026-04-06 | 88f266a |
Pass | Lean IDE software-submission-plan review passed. /Users/jcostik/BionicLoop/Docs/Planning/IDE_Software_Scoping_Plan.md now explicitly reframes the engineering-owned IDE package as a least-burdensome clinical-investigation software packet rather than a 510(k)-style commercial-closure set. The new plan cites the official FDA IDE page, 21 CFR Part 812, and FDA’s device software guidance, then separates true IDE-critical software content (device/software description, study-relevant risk summary, prior-testing summary, scoped verification, design-control/freeze statement, proportionate cybersecurity summary, and explicit scope/defer list) from support-only or commercial/backlog material. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md, and /Users/jcostik/BionicLoop/Docs/Quality/README.md were aligned so the broader controlled-doc library is now explicitly treated as a source/support appendix pool rather than a mandatory full-closure IDE gate set. Verification for this slice was source-backed document review and git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (IDE package planning and scope framing) |
Closed |
| CR-2026-04-06-15 | 2026-04-06 | dd26d3a |
Pass | Lean IDE review-packet and standing-scope-guidance review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md plus the new packet summaries in /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Baseline_Overview.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Scope_and_Deferred_Items.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Risk_and_Cybersecurity_Summary.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Prior_Testing_Summary.md, and /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Verification_Summary.md now provide a single concise reviewer-facing packet for the true IDE-critical software story. /Users/jcostik/BionicLoop/AGENTS.md and /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Agent_Brief.md now explicitly guard future work against drifting back into 510(k)/commercial-complete closure by default, and /Users/jcostik/BionicLoop/Docs/Quality/README.md, /Users/jcostik/BionicLoop/Docs/Planning/IDE_Software_Scoping_Plan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the lean packet folder is now the default review entry point for IDE software handoff work. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (lean IDE packet and process guidance) |
Closed |
| CR-2026-04-06-16 | 2026-04-06 | 2a609fa |
Pass | Lean IDE RTM-audit and handoff-memo review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_RTM_Audit_Summary.md now gives the reviewer-facing RTM bucket audit for the current lean software packet and makes the current state explicit: 0 rows are formal-ready, 15 rows are rerun-needed, and RA-009 remains deferred as partial scope with only local TV-SEC-001 still to be formally promoted. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Handoff_Memo.md now provides the short receiving-team memo with included packet docs, deferred/non-owned items, and the remaining freeze actions. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the lean packet now includes the audit result and handoff memo, and the weekly plan/checklist reflect those items as completed. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (lean IDE RTM audit and handoff memo) |
Closed |
| CR-2026-04-06-17 | 2026-04-06 | 22092f8 |
Pass | Lean IDE formal-evidence-plan review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Formal_Evidence_Execution_Plan.md now converts the remaining freeze blockers into the smallest protocol-driven execution plan for the lean software packet: required execution of /Users/jcostik/BionicLoop/Docs/Quality/STP/STP-ALG-001.md and /Users/jcostik/BionicLoop/Docs/Quality/STP/STP-AUTO-001.md, required formal promotion of local TV-SEC-001, and conditional execution of /Users/jcostik/BionicLoop/Docs/Quality/STP/STP-HW-001.md and /Users/jcostik/BionicLoop/Docs/Quality/STP/STP-ALERT-001.md only if those live/manual behaviors remain explicitly claimed at freeze. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md, /Users/jcostik/BionicLoop/Docs/Quality/README.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, and /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md were aligned so the packet now includes a concrete smallest-freeze execution order rather than only a rerun-needed statement. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (lean IDE formal evidence execution planning) |
Closed |
| CR-2026-04-06-18 | 2026-04-06 | 7fd470a |
Pass | Lean IDE freeze-plan alignment review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Baseline_Freeze_Plan.md now matches the lean packet instead of the older broader closure model: the authoritative inputs now include the lean packet review folder, RTM audit summary, and formal-evidence execution plan; scope-lock language now assumes the current cloud/auth/Part 11/step-0-BG defers unless intentionally reopened; evidence-lane discipline now points directly to the new RTM audit and smallest-freeze execution plan; and post-freeze closure now requires STP-ALG-001, STP-AUTO-001, and TV-SEC-001 while treating hardware/manual protocols as claim-driven rather than automatic. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (lean IDE freeze planning alignment) |
Closed |
| CR-2026-04-06-19 | 2026-04-06 | f4763e1 |
Pass | Subject-conflict and final-bolus-reconciliation review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeSettingsView.swift now explicitly retracts ALERT-SUBJECT-ID-CONFLICT after a corrected subject identifier is successfully claimed and saved, so operator-facing alert state clears when Clinical Settings resolves the conflict. /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpStatusObserver.swift now forwards later pump-status refreshes into LoopTelemetryStore.shared.reconcilePumpStatus(...), allowing step telemetry and the Home insulin chart to reconcile an in-progress partial meal-delivery snapshot back to completed delivery when later refreshes prove the bolus finished normally. Regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopClinicalSettingsSavePolicyRuntimeTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/LoopTelemetryStoreTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopLoopWorkInfrastructureTests.swift now pins the subject-conflict clear path, direct final-delivery telemetry reconciliation, and observer-driven shared-store reconciliation until bolus completion. Supporting quality docs /Users/jcostik/BionicLoop/Docs/Quality/AlertFlowReview.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md, and /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md were aligned to the new behavior. Verification passed via focused xcodebuild -scheme BionicLoop -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 17' -only-testing:BionicLoopTests/BionicLoopClinicalSettingsSavePolicyRuntimeTests -only-testing:BionicLoopTests/LoopTelemetryStoreTests -only-testing:BionicLoopTests/BionicLoopLoopWorkInfrastructureTests test, broader xcodebuild -scheme BionicLoop -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 17' -only-testing:BionicLoopTests test, and git diff --check. |
N/A | SRS-ALERT-005, SRS-MEAL-011, SRS-PUMP-003 |
Closed |
| CR-2026-04-06-20 | 2026-04-06 | 0b5a44f |
Pass | Active-meal-cancel visibility and chart-color review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeStateBuilders.swift now carries pump delivery state into InsulinChartPoint, keeps active in-progress meal delivery out of interrupted-delivery styling while deliveryState == .delivering, and derives an active meal-cancel context from either PumpStatus.lastDelivery or, when that delivery detail is temporarily absent, the latest still-delivering meal step record. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeView.swift now keeps the Home inline Cancel Delivery control visible automatically while a meal-announcement bolus remains active, rather than requiring another Let's Eat tap to reopen the cancel path. Regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeChartTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeViewStateBuilderTests.swift, and the shared helper update in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopTests.swift now pins active-delivery purple/meal-color rendering and the active-meal cancel-context derivation, including the fallback path when lastDelivery is unavailable. Supporting quality docs /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md and /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md were aligned to the new Home behavior. Verification passed for clean compilation via xcodebuild -quiet -scheme BionicLoop -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -destination 'platform=iOS Simulator,id=1C76E3F9-5DA6-43B4-9E60-D3F5F41EC965' build and git diff --check. Focused XCTest execution was attempted repeatedly on the explicit simulator target, but the local xcodebuild/simulator test runner hung after simulator boot; no additional product compile failures remained after the helper/test call-shape fixes. |
N/A | SRS-MEAL-011, SRS-PUMP-003, SRS-UI-002 |
Closed |
| CR-2026-04-06-21 | 2026-04-06 | c6ebc3f |
Pass | Meal-bolus chart delivery-state stabilization review passed. /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopTelemetryStore.swift now marks a successfully issued bolus as .delivering immediately until pump hardware reconciliation arrives, preventing a just-started meal bolus from flashing yellow solely because the first status poll has not landed yet. /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpServiceAdapter.swift now resolves delivered bolus units as the maximum of LoopKit event-history progress and the pod-reported requested - bolusNotDelivered amount, preventing a later idle/completed pod status from being regressed back into partial-delivery state when event history lags behind the pod. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeInlineInsulinChartView.swift now preserves .delivering state when adjacent insulin points collapse into the same rendered pixel, so visual compaction cannot strip active-delivery meal coloring. Regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/LoopTelemetryStoreTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeChartTests.swift now pins optimistic active-delivery state before the first refresh, pod-status-delivery flooring when event history lags, and compactor preservation of delivering state. Supporting quality docs /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md and /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md were aligned to the refined behavior. Verification passed for git diff --check. A focused xcodebuild -scheme BionicLoop -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -destination 'platform=iOS Simulator,id=1C76E3F9-5DA6-43B4-9E60-D3F5F41EC965' -only-testing:BionicLoopTests/LoopTelemetryStoreTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopTests/BionicLoopHomeChartTests test run completed compile/link/build stages cleanly but again stalled at simulator-driven test launch, so no new compile failures remained and the local runner-hang limitation persists. |
N/A | SRS-MEAL-011, SRS-PUMP-003, SRS-UI-002 |
Closed |
| CR-2026-04-06-22 | 2026-04-06 | 95ee889 |
Pass | Meal-cancel reconciliation and summary-detail review passed. /Users/jcostik/BionicLoop/BionicLoop/Runtime/LoopTelemetryStore.swift, /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpStatusObserver.swift, and /Users/jcostik/BionicLoop/BionicLoop/Integrations/Pump/PumpServiceAdapter.swift now treat the cancel-returned delivered amount as authoritative for the interrupted meal step, immediately reconciling shared step telemetry and preserving that lower delivered amount across subsequent idle refreshes so the Home insulin bar height matches actual delivered insulin instead of the original requested amount. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeStateBuilders.swift, /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeChartsActionsSection.swift, and /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeView.swift now extend the orange partial-delivery Home summary with cancel time plus meal type/size context derived from the matching meal step record. Regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/LoopTelemetryStoreTests.swift, /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests.swift, and /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopLoopWorkInfrastructureTests.swift now pins canceled-delivery chart-height reconciliation, meal-context summary formatting, authoritative post-cancel pump-delivery selection, and observer-driven shared-store reconciliation after cancel. Supporting quality docs /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md and /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md were aligned to the new behavior. Verification passed for git diff --check. Focused xcodebuild -scheme BionicLoop -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 17' -only-testing:BionicLoopTests/LoopTelemetryStoreTests -only-testing:BionicLoopTests/BionicLoopMealAnnouncementRuntimeTests -only-testing:BionicLoopTests/BionicLoopLoopWorkInfrastructureTests test completed package resolution, compile, app link, and test-bundle link cleanly, then stalled again during simulator-driven XCTest launch; no compile failures remained before the environment hang. |
N/A | SRS-MEAL-011, SRS-PUMP-003, SRS-UI-002 |
Closed |
| CR-2026-04-06-23 | 2026-04-06 | 9882a12 |
Pass | Subject-ID conflict auto-resolution review passed. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeStateBuilders.swift now defines a throttled Home policy that only retries claim resolution when the normalized ALERT-SUBJECT-ID-CONFLICT alert is active, the persisted subject identifier is non-empty, no silent recheck is already in flight, and either the subject changed or the last identical attempt is older than 30 seconds. /Users/jcostik/BionicLoop/BionicLoop/Features/Home/HomeView.swift now invokes that silent recheck on Home launch, foreground refresh, and Clinical Settings reopen, and retracts AppAlertCenter.subjectIDConflictDedupeKey when the backend claim for the already persisted subject ID succeeds so field users do not need to edit and revert the same identifier just to clear a stale conflict alert. Regression coverage in /Users/jcostik/BionicLoop/BionicLoopTests/BionicLoopHomeViewStateBuilderTests.swift now pins the active-alert/non-empty-subject/no-in-flight gate and the same-subject throttle versus changed-subject retry behavior. Supporting quality docs /Users/jcostik/BionicLoop/Docs/Quality/AlertFlowReview.md, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareDesignDescription.md, and /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md were aligned to the new alert lifecycle. Verification passed for xcodebuild -scheme BionicLoop -project /Users/jcostik/BionicLoop/BionicLoop.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 17' -only-testing:BionicLoopTests/BionicLoopHomeViewStateBuilderTests -only-testing:BionicLoopTests/BionicLoopClinicalSettingsSavePolicyRuntimeTests build-for-testing and git diff --check. |
N/A | SRS-ALERT-005 |
Closed |
| CR-2026-04-07-01 | 2026-04-07 | 9541388 |
Pass | Lean IDE freeze-artifact preparation review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Receiving_Team_Freeze_Disposition_Memo.md now gives the receiving quality/submission team a concrete freeze-time decision sheet for the remaining scope, live/manual claim, investigational file-sharing/export acceptability, and freeze-ownership calls, instead of leaving those decisions implicit in the readiness narrative. /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Formal/STR-README-Template.md plus the prepared shell paths in /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Formal/STR-ALG-001/README.md, /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Formal/STR-AUTO-001/README.md, and /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Formal/STR-SEC-001/README.md now define the minimum formal evidence landing structure for the lean freeze set. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Handoff_Memo.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Formal_Evidence_Execution_Plan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Baseline_Freeze_Plan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/Evidence/README.md, /Users/jcostik/BionicLoop/Docs/Quality/Evidence/Formal/README.md, and /Users/jcostik/BionicLoop/Docs/Quality/README.md were aligned so the packet now points to concrete freeze artifacts and not just execution-plan prose. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (lean IDE freeze artifact preparation) |
Closed |
| CR-2026-04-07-02 | 2026-04-07 | d655ca8 |
Pass | Lean IDE freeze-command-sheet review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Freeze_Command_Sheets.md now provides one execution-facing runbook with exact command sheets for STP-ALG-001, STP-AUTO-001, and TV-SEC-001, including freeze preflight, formal evidence folder variables, exact xcodebuild and Scripts/run_algo2015_verification.sh invocations, raw-evidence capture files, checksum steps, and explicit rules for recording deviation instead of substituting build-for-testing or working-lane evidence. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Formal_Evidence_Execution_Plan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, and /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md were aligned so the lean packet now points reviewers and executors to the concrete freeze runbook. Verification for this slice was docs-consistency review, targeted repo inspection of the existing algorithm-runner entry point, current xcodebuild verification commands, and current TV-SEC-001 source-observation points, plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (lean IDE freeze execution runbook) |
Closed |
| CR-2026-04-07-03 | 2026-04-07 | 5a5712f |
Pass | Prefilled receiving-team disposition review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Receiving_Team_Freeze_Disposition_Memo.md now carries recommended default answers instead of blank freeze-decision fields: accept the lean packet as the default review set, do not require STP-HW-001 or STP-ALERT-001 unless scope is intentionally reopened, accept the current export/file-sharing posture only for the IDE investigational baseline with explicit conditions, and use the current branch head at acceptance time as the default freeze-candidate rule. The memo also now includes recommended owner roles and a proposed target freeze date so the receiving team can sign or edit rather than draft from scratch. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (lean IDE freeze disposition defaults) |
Closed |
| CR-2026-04-07-04 | 2026-04-07 | 28af87e |
Pass | IDE handoff-language cleanup review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Handoff_Memo.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Baseline_Overview.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Scope_and_Deferred_Items.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Risk_and_Cybersecurity_Summary.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Prior_Testing_Summary.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Verification_Summary.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_RTM_Audit_Summary.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Formal_Evidence_Execution_Plan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Receiving_Team_Freeze_Disposition_Memo.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Freeze_Command_Sheets.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Readiness_Report.md, and /Users/jcostik/BionicLoop/Docs/Quality/README.md now present scope, evidence, and deferred items directly without the internal lean-vs-commercial reset narrative, and the reviewer path no longer points back to the internal scope-rationale plan. Verification for this slice was docs-consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (IDE handoff packet wording cleanup) |
Closed |
| CR-2026-04-07-05 | 2026-04-07 | 0373523 |
Pass | IDE packet path/scoping-plan rename review passed. The reviewer-facing packet folder was renamed from /Users/jcostik/BionicLoop/Docs/Quality/IDE_Lean_Packet/ to /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/, and the internal scoping plan was moved from /Users/jcostik/BionicLoop/Docs/Quality/IDE_Lean_Software_Submission_Plan.md to /Users/jcostik/BionicLoop/Docs/Planning/IDE_Software_Scoping_Plan.md. Active guidance documents in /Users/jcostik/BionicLoop/AGENTS.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Agent_Brief.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Baseline_Freeze_Plan.md, /Users/jcostik/BionicLoop/Docs/Planning/ExecutionPlan.md, /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Closure_Checklist.md, and the formal-evidence README shells were aligned so current repo paths and active guidance no longer advertise the old framing. Verification for this slice was docs-consistency review, path-reference sweep, and git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (IDE packet path and scoping-plan rename) |
Closed |
| CR-2026-04-07-06 | 2026-04-07 | cf22563 |
Pass | FDA-facing packet-clarification review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md and /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Handoff_Index.md now explicitly separate the candidate external software-review set from internal handoff, freeze, and coordination material so an outside reviewer is directed first to the software baseline, scope/defer summary, risk/cybersecurity summary, prior-testing summary, verification summary, controlled software chain, and IFU instead of the internal memos/runbooks. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Handoff_Memo.md now names the candidate FDA-facing subset directly, and internal packet docs were relabeled as internal handoff/freeze documents rather than reviewer summaries. Controlled software docs and STP docs no longer expose Prepared by: Engineering draft or Author: Codex metadata; those references were normalized to BionicLoop engineering, and /Users/jcostik/BionicLoop/Docs/Quality/IFU/BionicLoop_IFU_v1.4.md was aligned the same way. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Risk_and_Cybersecurity_Summary.md was also tightened so its conditions/open items no longer read as receiving-team workflow notes in the candidate external summary. Verification for this slice was repo inspection, targeted string sweep for authorship/internal-language artifacts, and git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (FDA-facing IDE packet clarification) |
Closed |
| CR-2026-04-07-07 | 2026-04-07 | c4ffaf1 |
Pass | IDE software packet review-binder packaging review passed. /Users/jcostik/BionicLoop/Scripts/build_ide_software_packet_pdf.sh now assembles the current submission-facing software packet into a single combined review binder, normalizing repo-local Markdown file links into plain review text, preserving the IFU screenshot assets, stripping the nested IFU TOC block so the binder has one top-level navigation structure, and rendering the result through /Users/jcostik/BionicLoop/Scripts/render_review_pdf.js into /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Packet_Review_Binder.pdf. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/ide-software-packet-print.css provides packet-specific print styling for the combined binder, and /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md now points reviewers to the single-file binder build path. Verification for this slice was successful execution of bash /Users/jcostik/BionicLoop/Scripts/build_ide_software_packet_pdf.sh, artifact inspection confirming /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Packet_Review_Binder.pdf was generated as a 51-page review binder, and git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | N/A (IDE software packet review binder) |
Closed |
| CR-2026-04-07-08 | 2026-04-07 | 688da32 |
Pass | Risk-analysis residual-framing review passed. /Users/jcostik/BionicLoop/Docs/Quality/RiskAnalysis.md now frames the document as a submission-candidate risk file rather than a generic handoff draft, narrows RA-009 to the currently claimed investigational local export/file-sharing posture with only SRS-SEC-001..002 / TV-SEC-001 treated as in-scope controls, explicitly marks RA-013 passcode-only Clinical Settings gating as an investigational shared operational control rather than authenticated role-based access, and revises RA-015 reconnect-fallback wording so the hazard text matches the current implementation that can also execute when CGM freshness is unavailable. The old open-items list was replaced with explicit residual-risk acceptance notes for RA-009, RA-013, RA-014, RA-015, and RA-016. /Users/jcostik/BionicLoop/Docs/Quality/TraceabilityMatrix.md was aligned to the same posture: RA-009 now traces only to the current local-security claim set, RA-013 / RA-014 / RA-015 / RA-016 now carry concise support-evidence notes instead of over-claimed partial-closure prose, and their statuses are now Rerun needed rather than generic In progress, with the status vocabulary updated accordingly. Verification for this slice was a focused doc consistency review plus git diff --check; no product code, unit/UI tests, lint, or analyzer runs were required because shipped behavior did not change. |
N/A | SRS-SEC-001..002, SRS-CLIN-001..012, SRS-ALG-001..007, SRS-CGM-005, SRS-RUN-004..005, SRS-MEAL-007..011 |
Closed |
| CR-2026-04-07-09 | 2026-04-07 | 9cd6506 |
Pass | Docs-site IDE review-entry review passed. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Review_Hub.md now gives the Cloudflare docs site a single simple landing page for the current IDE software packet, with direct links to the regenerated review binder PDF and the page-by-page packet. /Users/jcostik/BionicLoop/mkdocs.yml now exposes the IDE packet as a top-level IDE Submission Review nav section with direct access to the packet summaries and core controlled docs. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/README.md was converted from repo-absolute links to site-friendly relative links and now points Cloudflare users back to the new review hub, while /Users/jcostik/BionicLoop/Docs/Quality/README.md now references the hub as the Cloudflare review entry point. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Software_Packet/IDE_Software_Packet_Review_Binder.pdf was regenerated so the single-file review artifact reflects the current packet state, including the latest RA/RTM updates. Verification for this slice was successful execution of bash /Users/jcostik/BionicLoop/Scripts/build_ide_software_packet_pdf.sh, docs consistency review, and git diff --check. Full mkdocs build --strict validation could not be executed in this environment because the mkdocs binary is not installed locally. |
N/A | N/A (docs-site IDE review entry and binder refresh) |
Closed |
| CR-2026-04-07-10 | 2026-04-07 | 4e374d5 |
Pass | MkDocs strict-build warning cleanup review passed. /Users/jcostik/BionicLoop/mkdocs.yml now suppresses the known out-of-nav internal planning pages through not_in_nav instead of exposing them in the live Cloudflare navigation, preserving the simple public review path while addressing the reported nav warning. /Users/jcostik/BionicLoop/Docs/Quality/IDE_Submission_Review_Hub.md no longer points to a non-existent internal-fragment anchor, /Users/jcostik/BionicLoop/Docs/Quality/SoftwareVerificationAndValidationPlan.md now provides an explicit seed-test-inventory anchor for alert-review references, /Users/jcostik/BionicLoop/Docs/Quality/IFU/BionicLoop_IFU_v1.2.md now uses site-relative asset links, and the affected STP docs under /Users/jcostik/BionicLoop/Docs/Quality/STP/ now use site-relative references instead of repo-absolute paths. Verification for this slice was targeted docs-site consistency review, focused markdown-link sweeps for the changed files, and git diff --check. Full mkdocs build --strict could not be executed in this environment because the mkdocs binary is not installed locally. |
N/A | N/A (MkDocs strict-build warning cleanup) |
Closed |
| CR-2026-04-07-11 | 2026-04-07 | 7135846 |
Pass | Final MkDocs strict-build failure review passed. /Users/jcostik/BionicLoop/Docs/Quality/IFU/BionicLoop_IFU_v1.0.md and /Users/jcostik/BionicLoop/Docs/Quality/IFU/BionicLoop_IFU_v1.1.md now use site-relative asset references instead of repo-absolute filesystem image links, and /Users/jcostik/BionicLoop/Docs/Planning/DashOfflineBasalFallbackFeasibilityReview.md no longer uses Markdown links to source files outside the documentation tree, avoiding strict-build broken-link validation on non-doc targets. /Users/jcostik/BionicLoop/mkdocs.yml was also expanded to mark the currently intentional out-of-nav planning and internal quality docs as not_in_nav support material. Verification for this slice was successful execution of python3 -m mkdocs build --strict, which now completes with Documentation built in 4.96 seconds, plus git diff --check. |
N/A | N/A (Final MkDocs strict-build failure cleanup) |
Closed |
Notes
- This log tracks review outcomes and closure evidence only.
- Full requirement/design/test trace remains in
Docs/Quality/TraceabilityMatrix.md.