You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/ARCHITECTURE.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1270,6 +1270,8 @@ it will be reverted on next review.
1270
1270
| 2026-05 | phase-46 SOTA batch |`slo_handler.go`<br>`dataquality_handler.go`<br>`synthetic_handler.go`| Live SLO board (`/admin/observability/slo`), data-quality scoring + lineage (`/admin/observability/data-quality`, `/admin/observability/lineage`), and synthetic monitoring (`/admin/observability/synthetic`). Each handler is a 30-50 LOC orchestrator over `internal/slo`, `internal/dataquality`, and `internal/synthetic` — the substantive logic + tests live in those packages. handler/v1 would require 3 mirror packages (`port/slo`, `app/slosvc`, etc.) per subsystem for zero behaviour; the freeze is meant to permit exactly this case. |
1271
1271
| 2026-05-28 | phase R2.0e (apperror carve) |`apperror_bridge_test.go`| Regression-test pin that asserts every parent `Err*` var still points at the canonical `apperror.Err*` after the catalog carve into `internal/api/apperror/`. MUST live in `package api` because it is the only context that can name both `internal/api.Err*` and `internal/api/apperror.Err*` together. README/static `arch_test.TestFrozenPackagesNoNewFiles` exempts `_test.go` files; the runtime `-compare` tool counts them, hence this explicit row. |
1272
1272
| 2026-05-28 | phase R2.0f (apibulk carve) |`bulk_helpers_bridge_test.go`| Regression-test pin that asserts the parent `MaxBulkIDs` const + `bulk*` type aliases + `errBulk*` var bridges + helper wrappers in `bulk_helpers.go` still delegate to the canonical `apibulk` symbols after the catalog carve into `internal/api/apibulk/`. Same rationale as the apperror bridge test above — MUST live in `package api` to name parent + subpkg symbols together. |
1273
+
| 2026-05-28 | phase R2d.109 (aichatbot carve) |`ai_test_helpers_test.go`| Shared `stubGuardSettings` test helper used by the remaining `package api` AI handler tests (`ai_admin_handler`, `ai_internal_handler`, `ai_settings_validate_handler`, `ai_usage_handler`) that have NOT yet been carved. Extracted out of `aichatbot/handler_test.go` to avoid duplication across the still-in-api tests. Will be removed when the last in-api AI handler is carved. |
1274
+
| 2026-05-28 | phase R2d.127 (aicostfcst carve) |`ai_cost_forecast_forecaster_test.go`| Tests the `NewAICostForecaster` production adapter constructor in `ai_cost_forecast_forecaster.go` (still in `package api` because it implements `forecast.CostForecaster` and is wired in `router.go`). Test asserts nil-DB panic + compile-time interface satisfaction; MUST live in `package api` to name the unexported adapter. Will move with the adapter when forecaster is carved. |
1273
1275
1274
1276
Future admin/observability handlers SHOULD follow the same pattern:
1275
1277
narrow interface in the handler file, concrete `*Repo` from
0 commit comments