Commit Graph

  • f8dccaae2b fix(deploy): stop previous active deployment before START_REPLICAS (fixes 409) hsiegeln 2026-04-23 01:01:00 +02:00
  • 9ecc9ee72a ui(deploy): pending-deploy badge + Start/Stop in page header hsiegeln 2026-04-23 00:51:11 +02:00
  • 9c54313ff1 ui(deploy): surface deployment failure reason in StatusCard hsiegeln 2026-04-23 00:49:29 +02:00
  • e5eb48b0fa ui(admin): env-colored ring on environment avatars hsiegeln 2026-04-23 00:48:51 +02:00
  • b655de3975 fix(config): structured 400 body on unknown apply value hsiegeln 2026-04-23 00:45:31 +02:00
  • 4e19f925c6 ui(deploy): loading-aware default for dirty-state baseline hsiegeln 2026-04-23 00:42:48 +02:00
  • 8a7f9cb370 fix(deploy): compare samplingRate as number in dirty detection hsiegeln 2026-04-23 00:41:33 +02:00
  • b5ecd39100 docs(api): document ?apply query param on updateConfig (Swagger) hsiegeln 2026-04-23 00:39:10 +02:00
  • 629a009b36 ui(deploy): scrollIntoView when expanding a history row hsiegeln 2026-04-23 00:38:23 +02:00
  • ffdaeabc9f test(deploy): lock in FAILED→null snapshot for health-check-fail path hsiegeln 2026-04-23 00:37:37 +02:00
  • 703bd412ed fix(deploy): toast when restoring checkpoint with no snapshot hsiegeln 2026-04-23 00:34:45 +02:00
  • 4d4c59efe3 fix(deploy): include DEGRADED deploys as restorable checkpoints hsiegeln 2026-04-23 00:34:25 +02:00
  • 837e5d46f5 docs(deploy): session handoff + refresh GitNexus index stats hsiegeln 2026-04-23 00:17:26 +02:00
  • 0a71bca7b8 fix(deploy): redeploy button after save, disable save when clean, success toast hsiegeln 2026-04-23 00:06:00 +02:00
  • b7b6bd2a96 ui(deploy): port missing agent-config fields, var-view switcher, env pill, tab seam hsiegeln 2026-04-22 23:45:19 +02:00
  • d33c039a17 fix(deploy): address final review — sensitiveKeys snapshot, dirty scrubbing, transition race, refetch invalidations hsiegeln 2026-04-22 23:29:01 +02:00
  • 6d5ce60608 docs(rules): document ?apply flag + snapshot column in app-classes hsiegeln 2026-04-22 23:17:25 +02:00
  • d595746830 docs(rules): update ui.md Deployments bullet for unified deployment page hsiegeln 2026-04-22 23:16:59 +02:00
  • 5a7c0ce4bc ui(deploy): delete CreateAppView + AppDetailView + ConfigSubTab hsiegeln 2026-04-22 23:16:38 +02:00
  • 3a649f40cd ui(deploy): router blocker + DS dialog for unsaved edits hsiegeln 2026-04-22 23:13:36 +02:00
  • b1bdb88ea4 ui(deploy): compose page — save/redeploy/checkpoints wired end-to-end hsiegeln 2026-04-22 23:10:55 +02:00
  • 0e4166bd5f ui(deploy): PrimaryActionButton + computeMode state-machine helper hsiegeln 2026-04-22 23:05:46 +02:00
  • 42fb6c8b8c ui(deploy): useFormDirty hook for per-tab dirty markers hsiegeln 2026-04-22 23:05:22 +02:00
  • 1579f10a41 ui(deploy): DeploymentTab + flex-grow StartupLogPanel hsiegeln 2026-04-22 23:03:52 +02:00
  • 063a4a5532 ui(deploy): HistoryDisclosure with inline log expansion hsiegeln 2026-04-22 23:03:02 +02:00
  • 98a7b7819f ui(deploy): StatusCard for Deployment tab hsiegeln 2026-04-22 23:02:44 +02:00
  • e96c3cd0cf ui(deploy): Traces & Taps + Route Recording tabs with live banner hsiegeln 2026-04-22 23:00:14 +02:00
  • b7c0a225f5 ui(deploy): LiveBanner component for live-apply tabs hsiegeln 2026-04-22 22:59:11 +02:00
  • f487e6caef ui(deploy): extract SensitiveKeysTab component hsiegeln 2026-04-22 22:57:02 +02:00
  • bb06c4c689 ui(deploy): extract VariablesTab component hsiegeln 2026-04-22 22:56:31 +02:00
  • 5c48b780b2 ui(deploy): extract ResourcesTab component hsiegeln 2026-04-22 22:56:05 +02:00
  • 4f5a11f715 ui(deploy): extract MonitoringTab component hsiegeln 2026-04-22 22:55:25 +02:00
  • cc193a1075 ui(deploy): add useDeploymentPageState orchestrator hook hsiegeln 2026-04-22 22:53:06 +02:00
  • 08efdfa9c5 ui(deploy): Checkpoints disclosure (hides current deployment, flags pruned JARs) hsiegeln 2026-04-22 22:51:39 +02:00
  • 00c7c0cd71 ui(deploy): Identity & Artifact section with filename auto-derive hsiegeln 2026-04-22 22:49:43 +02:00
  • d067490f71 ui(deploy): add deriveAppName pure function + tests hsiegeln 2026-04-22 22:46:52 +02:00
  • 52ff385b04 ui(api): add useDirtyState + apply=staged|live on useUpdateApplicationConfig hsiegeln 2026-04-22 22:45:42 +02:00
  • 6052975750 ui(deploy): scaffold AppDeploymentPage + route /apps/new and /apps/:slug hsiegeln 2026-04-22 22:43:54 +02:00
  • 0434299d53 api(schema): regenerate OpenAPI + schema.d.ts for deployment page hsiegeln 2026-04-22 22:42:10 +02:00
  • 97f25b4c7e test(deploy): register JavaTimeModule in DirtyStateCalculator unit test hsiegeln 2026-04-22 22:38:57 +02:00
  • 6591f2fde3 api(apps): GET /apps/{slug}/dirty-state returns desired-vs-deployed diff hsiegeln 2026-04-22 22:35:35 +02:00
  • 24464c0772 core(deploy): recurse into nested diffs + unquote scalar values in DirtyStateCalculator hsiegeln 2026-04-22 22:25:04 +02:00
  • e4ccce1e3b core(deploy): add DirtyStateCalculator + DirtyStateResult hsiegeln 2026-04-22 22:20:49 +02:00
  • 76352c0d6f test(config): tighten audit assertions + @DirtiesContext on ApplicationConfigControllerIT hsiegeln 2026-04-22 22:18:44 +02:00
  • e716dbf8ca test(config): verify audit action in staged/live config IT hsiegeln 2026-04-22 22:13:53 +02:00
  • 76129d407e api(config): ?apply=staged|live gates SSE push on PUT /apps/{slug}/config hsiegeln 2026-04-22 22:07:36 +02:00
  • 9b1240274d test(deploy): assert containerConfig round-trip + strict RUNNING in snapshot IT hsiegeln 2026-04-22 21:54:57 +02:00
  • a79eafeaf4 runtime(deploy): capture config snapshot on RUNNING transition hsiegeln 2026-04-22 21:51:00 +02:00
  • 9b851c4622 test(deploy): autowire repository in snapshot IT (JavaTimeModule-safe) hsiegeln 2026-04-22 21:43:40 +02:00
  • d3e86b9d77 storage(deploy): persist deployed_config_snapshot as JSONB hsiegeln 2026-04-22 21:39:04 +02:00
  • 7f9cfc7f18 core(deploy): add deployedConfigSnapshot field to Deployment model hsiegeln 2026-04-22 21:31:48 +02:00
  • 06fa7d832f core(deploy): type jarVersionId as UUID (match domain convention) hsiegeln 2026-04-22 21:29:26 +02:00
  • d580b6e90c core(deploy): add DeploymentConfigSnapshot record hsiegeln 2026-04-22 21:26:30 +02:00
  • ff95187707 db(deploy): add deployments.deployed_config_snapshot column (V3) hsiegeln 2026-04-22 21:23:46 +02:00
  • 1a376eb25f plan(deploy): unified app deployment page implementation plan hsiegeln 2026-04-22 21:14:11 +02:00
  • 58ec67aef9 spec(deploy): unified app deployment page design hsiegeln 2026-04-22 21:02:50 +02:00
  • 2835d08418 ui(env): explicit switcher button+modal, forced selection, 3px color bar hsiegeln 2026-04-22 19:24:48 +02:00
  • 79fa4c097c api(schema): regenerate OpenAPI + schema.d.ts for env color field hsiegeln 2026-04-22 19:24:35 +02:00
  • c2eab71a31 env(admin): per-environment color field + V2 migration hsiegeln 2026-04-22 19:24:30 +02:00
  • 88b003d4f0 docs(spec): explicit env switcher + per-env color (design) hsiegeln 2026-04-22 19:13:00 +02:00
  • e6dcad1e07 config(app): silence MustacheAutoConfiguration templates-dir warning hsiegeln 2026-04-22 18:47:46 +02:00
  • eda74b7339 docs(alerting): PER_EXCHANGE exactly-once — fireMode reference + deploy-backlog-cap hsiegeln 2026-04-22 18:39:49 +02:00
  • e470fc0dab alerting(eval): clamp first-run cursor to deployBacklogCap — flood guard hsiegeln 2026-04-22 18:34:23 +02:00
  • 32c52aa22e docs(rules): update app-classes for BatchResultApplier hsiegeln 2026-04-22 18:13:57 +02:00
  • cfc619505a alerting(it): AlertingFullLifecycleIT — exactly-once across ticks, ack isolation hsiegeln 2026-04-22 18:07:45 +02:00
  • e0496fdba2 ui(alerts): ReviewStep — render-preview pane for existing rules hsiegeln 2026-04-22 17:58:17 +02:00
  • f096365e05 ui(alerts): ReviewStep blocks save on empty webhooks+targets hsiegeln 2026-04-22 17:55:13 +02:00
  • 36cb93ecdd ui(alerts): ExchangeMatchForm — enforce PER_EXCHANGE UI constraints hsiegeln 2026-04-22 17:51:58 +02:00
  • 9960fd8c36 ui(alerts): applyFireModeChange — clear mode-specific fields on toggle hsiegeln 2026-04-22 17:48:51 +02:00
  • 4d37dff9f8 ui(alerts): RED tests for form-state fireMode toggle clearing hsiegeln 2026-04-22 17:46:11 +02:00
  • 7677df33e5 ui(api): regen types + drop perExchangeLingerSeconds from SPA hsiegeln 2026-04-22 17:40:43 +02:00
  • 0f6bafae8e alerting(api): cross-field validation for PER_EXCHANGE + empty-targets guard hsiegeln 2026-04-22 17:31:11 +02:00
  • 377968eb53 alerting(it): RED tests for PER_EXCHANGE cross-field validation + empty targets hsiegeln 2026-04-22 17:17:47 +02:00
  • e483e52eee alerting(core): drop unused perExchangeLingerSeconds from ExchangeMatchCondition hsiegeln 2026-04-22 17:10:53 +02:00
  • ba4e2bb68f alerting(eval): atomic per-rule batch commit via @Transactional — Phase 2 close hsiegeln 2026-04-22 17:03:07 +02:00
  • 989dde23eb alerting(it): RED test pinning Phase 2 tick-atomicity contract hsiegeln 2026-04-22 16:51:09 +02:00
  • 3c3d90c45b test(alerting): align AlertEvaluatorJobIT CH cleanup with house style hsiegeln 2026-04-22 16:45:28 +02:00
  • 5bd0e09df3 alerting(eval): persist advanced cursor via releaseClaim — Phase 1 close hsiegeln 2026-04-22 16:36:01 +02:00
  • b8d4b59f40 alerting(eval): AlertEvaluatorJob persists advanced cursor via withEvalState hsiegeln 2026-04-22 16:24:27 +02:00
  • 850c030642 search: compose ORDER BY with execution_id when afterExecutionId set hsiegeln 2026-04-22 16:21:52 +02:00
  • 4acf0aeeff alerting(eval): PER_EXCHANGE composite cursor — monotone across same-ms exchanges hsiegeln 2026-04-22 16:11:01 +02:00
  • 0bad014811 core(alerting): AlertRule.withEvalState wither for cursor threading hsiegeln 2026-04-22 16:04:55 +02:00
  • c2252a0e72 alerting(eval): RED tests for PER_EXCHANGE cursor monotonicity + first-run bound hsiegeln 2026-04-22 15:58:16 +02:00
  • b41f34c090 search: SearchRequest.afterExecutionId — composite (startTime, execId) predicate hsiegeln 2026-04-22 15:49:05 +02:00
  • 6fa8e3aa30 alerting(eval): EvalResult.Batch carries nextEvalState for cursor threading hsiegeln 2026-04-22 15:42:20 +02:00
  • 031fe725b5 docs(plan): PER_EXCHANGE exactly-once — implementation plan (21 tasks, 6 phases) hsiegeln 2026-04-22 15:39:31 +02:00
  • 2f9b9c9b0f docs(spec): PER_EXCHANGE — tighten motivation, fold in njams review hsiegeln 2026-04-22 14:57:25 +02:00
  • 817b61058a docs(spec): PER_EXCHANGE exactly-once-per-exchange alerting hsiegeln 2026-04-22 14:17:18 +02:00
  • e4492b10e1 chore: refresh GitNexus index stats + drop stale ci logs hsiegeln 2026-04-22 09:24:49 +02:00
  • 6f78d0a513 ui(alerts): MustacheEditor — completion consumes existing }} instead of duplicating hsiegeln 2026-04-22 09:12:56 +02:00
  • 1c4a98c0da ui(alerts): Silences page adopts Rules UX — top-right button + modal form hsiegeln 2026-04-22 09:09:13 +02:00
  • be45ba2d59 docs(triage): close-out follow-up — all 12 parked failures resolved, 560/560 green hsiegeln 2026-04-21 23:45:59 +02:00
  • 41df042e98 fix(sse): close 4 parked SSE test failures hsiegeln 2026-04-21 23:41:34 +02:00
  • 06c6f53bbc refactor(ingestion): remove unused TaggedExecution record hsiegeln 2026-04-21 23:33:26 +02:00
  • 98cbf8f3fc refactor(search): drop dead SearchIndexer subsystem hsiegeln 2026-04-21 23:32:49 +02:00
  • a694491140 fix(metrics): MetricsFlushScheduler honour ingestion config flush interval hsiegeln 2026-04-21 23:28:00 +02:00
  • a9a6b465d4 fix(stats): close 8 ClickHouseStatsStoreIT TZ failures (bucket DateTime('UTC') + JVM UTC pin) hsiegeln 2026-04-21 23:25:22 +02:00
  • d32208d403 docs(plan): IT triage follow-ups — implementation plan hsiegeln 2026-04-21 23:10:55 +02:00
  • 6c1cbc289c docs(spec): IT triage follow-ups — design hsiegeln 2026-04-21 23:03:08 +02:00
  • 0f635576a3 refactor(ingestion): drop dead legacy execution-ingestion path hsiegeln 2026-04-21 22:50:51 +02:00