Commit Graph

854 Commits

Author SHA1 Message Date
master
f401a7182c Repair hotfix route and action flows 2026-03-10 18:06:14 +02:00
master
bb8327087d Harden live route ownership verification 2026-03-10 17:27:26 +02:00
master
6ef5ff5b43 Restructure navigation UX: sidebar groups, route aliases, and phase 3-6 polish
Sidebar (phases 1-4, committed in parent sprint):
- Dashboard childless; Releases gains Health child
- Operations moved to release-control group with 8 promoted children
- Evidence renamed to Audit; Logs/Bundles as canonical sub-items
- Setup Notifications removed (consolidated)

Route fixes and canonical restore (Sprint 030):
- releases.routes: /health loads EnvironmentPosturePageComponent;
  /environments and /environments/:environmentId kept as canonical Releases routes
- legacy-redirects: release-orchestrator/environments and
  release-control/environments both redirect to /releases/environments
- app.routes: release-control/{environments,regions} alias → /releases/environments
- route-surface-ownership spec updated to match canonical Releases paths
- live-route-surface-ownership-check expected paths aligned

Phase 3: Remove in-page "Create Hotfix" button from hotfixes-queue component;
  topbar action is the sole create affordance.

Phase 6 UX polish:
- security-reports-page: stub link-list → tabbed layout (Risk, VEX, Export)
- filter-bar: Search button + Enter key trigger; top-row / filter-row layout
- approvals-inbox: horizontal chip-style status filters replacing pill buttons

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 17:16:26 +02:00
master
8a1fb9bd9b OpenAPI query param discovery and header cleanup completion
Backend: ExtractParameters() now discovers query params from [AsParameters]
records and [FromQuery] attributes via handler method reflection. Gateway
OpenApiDocumentGenerator emits parameters arrays in the aggregated spec.
QueryParameterInfo added to EndpointSchemaInfo for HELLO payload transport.

Frontend: Remaining spec files and straggler services updated to canonical
X-Stella-Ops-* header names. Sprint 026 archived (tasks 01-06 DONE,
07-09 TODO for backend service rename pass).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-10 17:13:58 +02:00
master
8578065675 Fix notifications surface ownership and frontdoor contracts 2026-03-10 16:54:25 +02:00
master
2859c751e6 Fix setup wizard shuffle assignment 2026-03-10 16:38:28 +02:00
master
e49236f630 Stabilize web context propagation and header constants 2026-03-10 16:37:59 +02:00
master
72746e2f7b Align route ownership and sidebar surface exposure 2026-03-10 15:32:34 +02:00
master
5c10aa7f71 Restore mission control leaves and alert drilldown return path 2026-03-10 15:00:59 +02:00
master
ec22b8ee46 Fix topology scope hydration and live sweep readiness 2026-03-10 14:37:38 +02:00
master
b302a5a3d6 Preserve deployment evidence navigation scope 2026-03-10 13:35:00 +02:00
master
1fe3f489f1 Finalize topbar status chip ownership split 2026-03-10 13:20:17 +02:00
master
0e764da736 Align mission control with shared context scope 2026-03-10 13:13:57 +02:00
master
fc7aaf4d37 Restore platform ownership for v2 evidence routes 2026-03-10 13:10:06 +02:00
master
ffd4646d89 Harden scratch setup third-party readiness probes 2026-03-10 12:48:56 +02:00
master
d881fff387 Segment-bound doctor and scheduler frontdoor chunks 2026-03-10 12:47:51 +02:00
master
1b6051662f Repair router frontdoor route boundaries and service prefixes 2026-03-10 12:28:48 +02:00
master
6f808c3b3d remove temp files 2026-03-10 11:11:53 +02:00
master
7acf0ae8f2 Fix router frontdoor readiness and route contracts 2026-03-10 10:19:49 +02:00
master
eae2dfc9d4 Harden policy simulation direct-route defaults 2026-03-10 09:09:29 +02:00
master
db7371de03 Add live integrations sweep harness script 2026-03-10 08:12:15 +02:00
master
a5a5c6a854 Add live integrations action sweep 2026-03-10 08:11:33 +02:00
master
011aebc802 Ignore aborted navigations in ops policy sweep runtime accounting 2026-03-10 07:55:45 +02:00
master
b8e6f7b585 Ignore navigation-aborted requests in live ops sweep 2026-03-10 07:55:28 +02:00
master
f0535bcdf6 Harden live frontdoor authentication harness 2026-03-10 07:39:58 +02:00
master
425bccf10a Preserve topology and triage scope in live setup flows 2026-03-10 07:37:20 +02:00
master
b9aa1dbe24 Add live mission control action sweep 2026-03-10 06:35:05 +02:00
master
ff4cd7e999 Restore policy frontdoor compatibility and live QA 2026-03-10 06:18:30 +02:00
master
6578c82602 Eliminate legacy gateway container (consolidate into router-gateway)
The gateway service was a redundant deployment of the same
StellaOps.Gateway.WebService binary already running as router-gateway.
It served no unique purpose — all traffic is handled by router-gateway
(slot 0). This removes the container, its route table entries, nginx
proxy blocks, health/quota stubs, and redirects STELLAOPS_GATEWAY_URL
to router.stella-ops.local so the Angular frontend resolves API base
URLs through the canonical frontdoor.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 03:50:16 +02:00
master
109f119a65 Fix router-gateway debug logging from mounted config file
router-gateway-local.json had Logging.LogLevel.StellaOps set to Debug,
overriding the compose env var Information setting. Fixed in both local
and reverseproxy config variants.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 03:46:59 +02:00
master
31cb31d0fb Eliminate Valkey queue polling fallback (phase 2 CPU optimization)
Replace hardcoded 1-5s polling constants with configurable
QueueWaitTimeoutSeconds (default 0 = pure event-driven). Consumers
now only wake on pub/sub notifications, eliminating ~118 idle
XREADGROUP polls per second across 59 services. Override with
VALKEY_QUEUE_WAIT_TIMEOUT env var if a safety-net poll is needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 02:36:01 +02:00
master
166745f9f9 Reduce idle CPU across 62 containers (phase 1)
- Add resource limits (heavy/medium/light tiers) to all 59 .NET services
- Add .NET GC tuning (server/workstation GC, DATAS, conserve memory)
- Convert FirstSignalSnapshotWriter from 10s polling to Valkey pub/sub
- Convert EnvironmentSettingsRefreshService from 60s polling to Valkey pub/sub
- Consolidate GraphAnalytics dual timers to single timer with idle-skip
- Increase healthcheck interval from 30s to 60s (configurable)
- Reduce debug logging to Information on 4 high-traffic services

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 02:16:19 +02:00
master
c0c0267ac9 Normalize live policy simulation tenant routing 2026-03-10 02:14:29 +02:00
master
72084355a6 Align policy simulation auth passthrough at the frontdoor 2026-03-10 01:55:51 +02:00
master
d16d7a1692 Repair live JobEngine runtime contracts 2026-03-10 01:38:38 +02:00
master
7be7295597 Keep approval queue on live canonical contracts 2026-03-10 01:38:21 +02:00
master
4a13601207 Adapt live frontend clients for compatibility data 2026-03-10 01:38:10 +02:00
master
18246cd74c Align live console and policy governance clients 2026-03-10 01:37:42 +02:00
master
afb9711e61 Restore live platform compatibility contracts 2026-03-10 01:37:24 +02:00
master
6b7168ca3c Bind startup migrations to module schema search path 2026-03-10 01:37:02 +02:00
master
1df79ac75e Restore policy simulation history compatibility 2026-03-10 00:42:18 +02:00
master
ac544c0064 Repair live watchlist frontdoor routing 2026-03-10 00:25:34 +02:00
master
359fafa9da Repair release investigation workspace contracts 2026-03-09 23:19:42 +02:00
master
3ecafc49a3 Preserve live scope across evidence and registry flows 2026-03-09 22:11:08 +02:00
master
dfd22281ed Repair live canonical migrations and scanner cache bootstrap 2026-03-09 21:56:41 +02:00
master
00bf2fa99a Repair live unified search corpus runtime 2026-03-09 19:44:16 +02:00
master
bf937c9395 Repair router frontdoor convergence and live route contracts 2026-03-09 19:09:19 +02:00
master
49d1c57597 Align live titles and trust setup overview 2026-03-09 11:20:19 +02:00
master
29fec722df docs(sprint): close sprints 001/003/004/005 — all tasks verified DONE
Mark all remaining TODO/DOING tasks as DONE with live probe evidence:
- Sprint 001 Task 003: 36/36 solutions build successfully
- Sprint 003 Task 003: sources=200, witnesses=200, advisory-ai/runs=403
- Sprint 004 Task 003: channels=200, rules=200, deliveries=200
- Sprint 005 Task 003: JobEngine healthy, all 8 migrations applied,
  jobs/runs/pack-runs routes respond 403 (scope auth, not schema)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:38:31 +02:00
master
1e53976ffb fix(jobengine): make all orchestrator migration SQL idempotent and PostgreSQL-compatible
Fix 4 classes of issues that prevented JobEngine from auto-migrating:
1. Non-idempotent DDL: add IF NOT EXISTS to CREATE TABLE, wrap CREATE
   TYPE in DO blocks with EXCEPTION WHEN duplicate_object, wrap partition
   creation with EXCEPTION WHEN duplicate_object OR SQLSTATE '42P17'
2. Reserved keyword: quote `window` column name in 004_slo_quotas.sql
3. Invalid syntax: replace DELETE...LIMIT with ctid subquery pattern
   in 004_slo_quotas.sql and 005_audit_ledger.sql
4. Partition constraint: add tenant_id to UNIQUE(log_id) constraint
   on pack_run_logs in 006_pack_runs.sql (partitioned tables require
   partition key in all unique constraints)
5. Non-immutable index predicate: remove NOW() from partial index
   predicate in 002_backfill.sql
6. Remove BEGIN/COMMIT wrappers from all migration files (the
   StartupMigrationHost already wraps each migration in a transaction)

All 8 orchestrator migrations (001-008) now apply cleanly on fresh DB.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:38:20 +02:00