-
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