CHANGELOG · GENERATED FROM GIT
What we shipped, when we shipped it.
Every feature, fix, and improvement to the HowlOps platform — pulled straight from git history. For release notes and product stories, see What’s New.
JUN 01 – JUN 07, 2026
FIXED
- [deploy]phase 2 sudo-touches the per-service pull logs too f12dcd0
- [deploy]phase 2 + 3 sudo-touch their log files like phase 1 a783105
- [migrations]mark 0216 schema-no-tx — same CONCURRENTLY-in-tx issue as 0214 cbab001
- [migrations]support `schema-no-tx` migrations + apply to 0214 4bea8b6
- [doctor]accept hours/days uptime for healthcheck-less containers 709586d
OTHER
- UI (#87) 0626571
MAY 25 – MAY 31, 2026
ADDED
- [i18n]translate EscalationPolicyEditor (desktop + mobile) (#86) 6282fbe
- [i18n]translate alerting dialogs + preview + on-call calendar (#85) 11cd332
- [i18n]translate Schedule expansion + LayerCard + CalendarIntegrationBox (#84) fd289a9
- [i18n]translate Alert Routing page + RoutingRulesTable (#83) 98e6060
- [i18n]translate Schedule + Escalation Policy editors (#82) d240856
- [i18n]/settings/billing surface (CurrentPlanCard / InvoiceHistoryTable / TaxInfoForm / SoftPauseBanner) (#81) 09fe3f5
- [i18n]ChangePasswordForm + DangerZone (settings/profile) (#80) d423400
- [i18n]MfaSection (setup wizard + disable + regenerate dialogs) (#79) e0a1cfb
- [i18n]AppearancePanel + SessionsSection + LinkedAccountsSection (#78) 7c8eed1
- [i18n]InviteForm + CreateTokenDialog (#77) 1a7f529
- [i18n]ChannelsTable + TokensTable + MembersTable (#76) 3097841
- [i18n]WorkspaceSection + ProfileSection translated (#75) 02b2fb5
- [i18n]ChannelDialog (notification channel add/edit) (#74) 40d309d
- [i18n]NewMonitorModal form fields (Step 1 + Step 2 + advanced) (#73) 9c58371
- [i18n]/register + /forgot-password + /reset-password + /verify-email (#72) cb7b187
- [i18n]/login translated + CS keys (#71) 316e96e
- [i18n]dashboard subcomponents (StatusBanner / StatsRow / RecentIncidentsCard / EmptyDashboard) (#70) ea17b7f
- [i18n]MonitorsFilters + IncidentsFilters labels (#69) 2b470fe
- [i18n]MonitorCard inner labels (Uptime 24h / Avg response / Checked X) (#68) ab11b3f
- [i18n]NewMonitorModal + common platform action labels (#66) dace960
- [i18n]translate remaining 10 platform page headings + CTAs (#65) 90a27d3
- [i18n]platform status badges + settings sub-pages (#64) ba55b4b
- [i18n]translate /dashboard + /monitors + /incidents headers (#62) d393400
- [i18n]translate refund-policy + platform sidebar (CS+EN) (#61) 049f734
- [marketing]copy refinements + nav width fix per owner feedback (#60) 601b19a
- [i18n]translate /faq page chrome (#59) 3482074
- [i18n]translate /about + /contact (+ CZ keys) (#58) 3cfab81
- [TASK-939]finalize screenshot refresh — 17 platform PNGs + 90d seed + bcrypt hash rotation (#57) ee32c94
- [i18n]expand marketing translation coverage + platform settings LanguagePanel (#55) c0d9086
- [marketing]cleanup home + nav + pricing UX per owner feedback 2026-05-27 (#54) d9858cc
- [IDEA-30]AfterSubscribeSection + RiskReversalBanner + AntiFudCard + /legal/refund-policy + close TASK-938 (#51) fee5b3a
- [IDEA-27]/how-it-works route with 4 alternating pillars + sitemap + nav link + home CTA (#50) 0edc339
- [IDEA-28]RotatingScreenshotHero in home hero visual slot (#49) b4015b4
- [IDEA-29]embed 5 unused marketing widgets across home/features/notification-channels (#48) 515b2e0
- [IDEA-32]tier marketing fields composed at render from tier_configs (#47) 823ca4c
- [IDEA-34]canonical useReducedMotion hook + Playwright baseline (#46) a7683b7
- [TASK-939]screenshot refresh foundation — capture script extension + 3 IDEA-30 mocks (#45) 7c96440
- [TASK-916]i18n foundation — next-intl + cookie/country/Accept-Language resolver + dynamic <html lang> + LocaleSwitcher (#44) e12413a
- [TASK-936+937]platform security policy UI + AI usage admin dashboard (#41) 0ba872a
- [TASK-935]bcrypt $-escape + prober-ping own token + doctor WAL check + docs + ci-local green (#40) 9028763
- [TASK-934]local MFA skip + prober-ping WAL + mobile-app web-only annex (#39) aa88f8d
- [TASK-933]migration linter (INV-DB-06) + audit doc + /api/v1/ready route + PROBER key rotation script (#38) 5c4c809
- [TASK-932]deploy pipeline improvements — preflight + parallel pull + rolling restart + smoke + IMDS region (#37) 2e88273
- [TASK-930]admin UX batch — chart palette, bulk delete, region label, canary RL bypass, deploy upgrade Telegram (#35) 5f045bb
- [TASK-929]prober store-and-forward WAL + revert pause-writers default (#34) 2401bf9
- complete prober heartbeat pipeline (TASK-923/924/925/926/927) (#32) 96dec53
- [notify]Telegram admin notify on tier upgrade only (Stripe webhook + admin UI) (#24) 97ef1f2
- [mfa]render QR code for authenticator setup (Google Authenticator scan) (#18) 24353f4
- [TASK-909]enforce MFA + optional IP allowlist for platform admins (#15) a71fb78
- [TASK-894]security hardening — realIP spoof, panic recover, PKCE strict, admin actor (#14) c4b81d3
FIXED
- [i18n]add missing CS common.* + newMonitorModal.* keys (PR #66 follow-up) (#67) 14cafb4
- [i18n]translate PricingHero (was missed in i18n-expansion batch) (#56) 92c9495
- [IDEA-32]EnterpriseCard renders marketing_subtitle + sub-2-min cadence formatted as seconds (#53) 2d2bd16
- [IDEA-29]wrap ResponseTimeChart with client component on /features (#52) 2f08c6b
- [TASK-931]screenshot offline alert noise + remote prober Service Instances visibility (#36) bde9d9c
- [TASK-928]resolve service_instances region from AWS_REGION when REGION="local" (#33) 4478690
- [TASK-922]mount sync-rep init script on timescaledb + add doctor preflight (DECISION-0042) (#31) 82b76bb
- [deploy]pre-flight kills ALL hot-table queries, not just INSERTs (#30) 2fee911
- [deploy]kill ALL hot-table inserts in phase 1 pre-flight (no age threshold) (#29) f187349
- [deploy]with-timeout must kill the entire process group, not just the immediate child (#28) 4718350
- [deploy]pause prober writers during migrations + 5min hard timeout per phase (#27) 8b65746
- [deploy]SQL-quote lock_timeout/statement_timeout values in phase 1 wrapper (#26) b93c99c
- [deploy]comprehensive resilience — kill-stuck pre-flight, per-migration timeouts, idempotency patches (#25) ecf71d9
- [prober]per-statement timeouts on TSDB writes to stop background-worker hangs (#22) 495f1d9
- [admin-notify+ratelimit]real client IP via CF-Connecting-IP, skip canary spam, bypass login limit for internal peers (#21) 223589e
- [deploy]sync + apply postgres/timescale migrations before container restart (#19) 4ebe401
- [TASK-900]admin Telegram notify save was silently CSRF-rejected (#17) 9854216
- [TASK-886]dispute handler fetches charge to resolve customer (#12) 86afa0e
CHANGED
- [deploy]split null_resource.app_deploy into 3 named phases (#23) d99c086
OTHER
- [brand]add BRAND_BRIEF.md as designer / Claude Design prompt c979bf7
- [workflow]wire pre-commit hooks, pre-launch gate spec, INV-A11Y-01 1139398
- [meta]fix broken legacy pointers + align agent-architect with workflow-v2 7a3384a
- [tasks]archive 20 done TASKs + 4 stale HANDOFFs 8769e13
- [CURRENT]summarize 2026-05-27 round 3 owner feedback (#60-#62) (#63) 9044cf2
- [CURRENT]summarize 2026-05-27 owner feedback iteration (PRs #54-#59) 908c954
- [DECISION-0043]refund policy v1 for marketing purchase journey (#43) 80d9961
- [TASK-938]marketing purchase-journey master spec + per-IDEA platform-aware elaboration (#42) 11500a2
- [invariants]add INV-DB-06 — migrations are online-safe 1cca852
- [tasks]update CURRENT.md after PR #31 + #32 deploy 4a9b5d1
- [deploy]one-shot baseline for migrations tracking table (#20) e753f43
- [tasks]handoff 2026-05-26 — 6 envelopes + 2 IDEAs + 17 IDEA decompositions + rollout plan (#13) d0c46f4
- M-12 batch: 10 envelopes + Stripe webhooks + terraform deploy + dashboard/canary fixes (#11) cc4e02a
MAY 18 – MAY 24, 2026
ADDED
- [canary]production-ready (GHCR image + explicit Provision button) + drop xinex defaults 01c2cf9
- [TASK-903]canary self-bootstrap (tenant + user on first run) a836068
- [TASK-902]/alerts /whoisoncall /whoami telegram bot commands 0dd67b2
- [TASK-901]tier availability_status toggle (admin UI + pricing badge) 97f1156
- import HowlOps v1.0 from xinex/js-v2-refactor (DECISION-0036) bc519bb
FIXED
- [admin_tier]GetTierByName SELECT/Scan arity mismatch bce3bce
- [TASK-900]admin telegram notify save now persists + dispatches 205b5a2
- [auth]hide SSO login button until Enterprise tier gating wired eb15557
- [telegram]auto-register webhook after admin save (DECISION-0040 follow-up) 7fa82db
- [audit-recovery]persist 2026-05-23 production state into repo (DECISION-0040) 232f7be
- [migrations]5 fresh-install blockers — INV-DB-01 idempotency hardening 0aafd23
- [TASK-899]CSRF exempt /api/v1/setup for stale-session recovery 22332dc
- [deploy]INSTANCE_TAG xinex-production → howlops-production a8d59e4
OTHER
- [runbooks]manual-deploy howto for owner 164e6e4
- [TASK-903]evidence row in PRE-LAUNCH-EVIDENCE ledger 2418601
- [TASK-902]evidence row in PRE-LAUNCH-EVIDENCE ledger 14aff32
- [TASK-901]evidence row in PRE-LAUNCH-EVIDENCE ledger 5fb3034
- [TASK-900]evidence row in PRE-LAUNCH-EVIDENCE ledger 8cafea4
- [handoff]localhost-first prompt pro 2026-05-24 noční session b148e75
- [tasks]TASK-900/901/902 + walkthrough doc — next-session backlog a25ec37
- [audit-batch]20 task envelopes + pre-launch gate framework + E2E suite 6373955
- sweep /opt/xinex → /srv/howlops + container_name + image refs 843dec3
- migration plan + telegram fix landed e2e618f
- telegram deep-link uses real bot username (drop hardcoded fallback) 7f6dad6
- TASK-877 + 878 done · sitemap fix · prober selfRegister retry 04abc9a
- sitemap Google validation fix + TASK-878 auto-trial Premium 7d 24434df
- 2 task envelopes + outage test script + pre-launch checklist ebf500d
- prober-screenshot heartbeat + INDEX regen + TASK-875 ✅ 7b471e5
- TASK-875 end-to-end deployed + PROJECT_STATUS.md flip dbf4c57
- TASK-875 compose env (region + build SHA + internal token) 9c37253
- TASK-875 prober + prober-ping heartbeat 906c509
- TASK-875 frontend /admin/instances page df1e1a6
- TASK-875 backend (service_instances registry) 8dcc837
- failover drill runbook + EC2 IAM grants + script validations dfe7067
- CF LB live + DECISION-0039 + Phase C cleanup + task envelopes ad8f3bc
- watchdog auto-failover + IAM DynamoDB grants 5ef80c0
- Telegram MCP sweep + Phase HA core complete 738b365
- Phase D xinex.cz nginx retirement + Phase F S3 bucket migration 1553a86
- Phase B terraform refactor + Phase C cleanup waves 1+3 37de1e2
- repo migration finalized — origin=howlops-platform, xinex archived 071892d
- jsedy7/xinex → jsedy7/howlops-platform reference sweep 5c62c3e
- deep rename xinex → howlops project + AWS Name tag cleanup + /docs fix ad4cd9f
- DECISION-0038 active-passive multi-region resilience (Session A) 020ac10
- brand sweep + heredoc refactor + TASK-809 EBS data volume 2c516f5
- M-9 automation scripts + USD-only refactor + howlops-prod-boot orchestrator 1b2839e
GENERATED Mon, 01 Jun 2026 20:38:14 GMT · github.com/jsedy7/howlops-platform