Fix journey cluster defects + UX improvements across 7 clusters
P0 fixes (clean-start + route contracts): - VexHub: fix migration 002 table name + add repair migration 003 - Gateway: add /console/admin and /api/v1/unknowns routes - IDP: add platform.idp.admin scope to OAuth client + web config - Risk: fix URL construction from authority to gateway base - Unknowns: fix client path from /api/v1/scanner/unknowns to /api/v1/unknowns P1 fixes (trust + shell integrity): - Audit: fix module name normalization, add Authority audit source - Stage: add persistence across web store, API contracts, DB migration 059 - Posture: add per-source error tracking + degradation banner P2 fixes (adoption + workflow clarity): - Rename Triage to Findings in navigation + breadcrumbs - Command palette: show quick actions for plain text queries, fix scan routes - Scan: add local-mode limitation messaging + queue hints - Release: add post-seal promotion CTA with pre-filled release ID - Welcome: rewrite around operator adoption model (Get Started + What Stella Replaces) UX improvements: - Status rail: convert to icon-only with color state + tooltips - Event Stream Monitor: new page at /ops/operations/event-stream - Sidebar: collapse Operations by default - User menu: embed theme switcher (Day/Night/System), remove standalone toggle - Settings: add Profile section with email editing + PUT /api/v1/platform/preferences/email endpoint - Docs viewer: replace custom parser with ngx-markdown (marked) for proper table/code/blockquote rendering Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,15 @@ namespace StellaOps.Platform.Database.EfCore.CompiledModels
|
||||
timeWindow.AddAnnotation("Relational:ColumnName", "time_window");
|
||||
timeWindow.AddAnnotation("Relational:DefaultValueSql", "'24h'");
|
||||
|
||||
var stage = runtimeEntityType.AddProperty(
|
||||
"Stage",
|
||||
typeof(string),
|
||||
propertyInfo: typeof(UiContextPreference).GetProperty("Stage",
|
||||
BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly),
|
||||
fieldInfo: null,
|
||||
nullable: true);
|
||||
stage.AddAnnotation("Relational:ColumnName", "stage");
|
||||
|
||||
var updatedAt = runtimeEntityType.AddProperty(
|
||||
"UpdatedAt",
|
||||
typeof(DateTime),
|
||||
|
||||
@@ -107,6 +107,9 @@ public partial class PlatformDbContext : DbContext
|
||||
entity.Property(e => e.TimeWindow)
|
||||
.HasDefaultValueSql("'24h'")
|
||||
.HasColumnName("time_window");
|
||||
entity.Property(e => e.Stage)
|
||||
.IsRequired(false)
|
||||
.HasColumnName("stage");
|
||||
entity.Property(e => e.UpdatedAt)
|
||||
.HasDefaultValueSql("now()")
|
||||
.HasColumnName("updated_at");
|
||||
|
||||
@@ -14,6 +14,8 @@ public partial class UiContextPreference
|
||||
|
||||
public string TimeWindow { get; set; } = null!;
|
||||
|
||||
public string? Stage { get; set; }
|
||||
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
|
||||
public string UpdatedBy { get; set; } = null!;
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
-- Add stage column to ui_context_preferences for persisting the user's
|
||||
-- selected deployment stage (dev/staging/production/all) across sessions.
|
||||
|
||||
ALTER TABLE platform.ui_context_preferences
|
||||
ADD COLUMN IF NOT EXISTS stage TEXT NULL;
|
||||
Reference in New Issue
Block a user