Releases: monoscope-tech/monoscope
Release list
Monoscope v0.6.24
What's Changed
- fix(log-list): coerce non-string summary elements instead of throwing by @tonyalaribe in #424
- kafka: DLQ replay consumer — requeue carousel with attempt counts by @tonyalaribe in #427
- Cli lifecycle as code by @tonyalaribe in #428
- chore(deps): bump the npm-dev-dependencies group across 1 directory with 2 updates by @dependabot[bot] in #426
- refactor: consolidate duplicated code to reduce LOC (~570 net) by @tonyalaribe in #431
- chore(deps): bump the npm-prod-dependencies group with 2 updates by @dependabot[bot] in #430
- chore(deps): bump @vitest/browser from 4.1.7 to 4.1.8 in /web-components by @dependabot[bot] in #434
- chore(deps): bump vite from 8.0.14 to 8.0.16 in /web-components by @dependabot[bot] in #433
- chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /web-components by @dependabot[bot] in #432
- kafka: unified Eff-based consumer + producer, tiered DLQ, flush-gated commits by @tonyalaribe in #437
- fix: concurrent bounded shutdown so Ctrl-C/SIGTERM actually exits by @tonyalaribe in #440
- fix: align kafka consumer fetch ceiling to 64 MiB broker max by @tonyalaribe in #442
- fix(queue): self-heal DLQ commit-starvation via reseek on no-ack by @tonyalaribe in #443
- fix(ci): add base to unit-tests build-depends (fixes GHC-87110 build break) by @tonyalaribe in #444
- fix(ingest): deterministic content-derived row id so DLQ replay is idempotent by @tonyalaribe in #445
- fix(log-explorer): resolve load-more, live-tail, column, and chart-fe… by @tonyalaribe in #446
- fix(log-explorer): page earlier/load-more cursor from the oldest loaded row by @tonyalaribe in #448
- test(integration): per-test resource isolation (sequential suite; parallel deferred) by @tonyalaribe in #449
- fix(dashboards): correct golden-signals stat big numbers (rate/mean) and error color by @tonyalaribe in #450
- Exact-ts log lookup, error-log badge propagation, and Prometheus scraping by @tonyalaribe in #451
Full Changelog: v0.6.23...v0.6.24
Monoscope v0.6.23
What's Changed
- Fix/events search descendants only by @tonyalaribe in #373
- Refactor AI prompts for clarity and structured output by @tonyalaribe in #372
- Feat/schema learning in process by @tonyalaribe in #376
- Feat/schema learning in process by @tonyalaribe in #377
- fix(packaging): align cabal with AGPL LICENSE, add fmt pre-commit by @victalejo in #385
- chore(deps): bump fast-uri from 3.1.0 to 3.1.2 by @dependabot[bot] in #374
- chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.29.0 to 7.29.4 by @dependabot[bot] in #375
- chore(deps): bump the npm-dev-dependencies group with 4 updates by @dependabot[bot] in #378
- chore(deps): bump @types/node from 25.6.0 to 25.6.2 in /web-components in the web-components-dev group by @dependabot[bot] in #380
- chore(deps): bump vite from 7.3.2 to 8.0.12 in /web-components by @dependabot[bot] in #381
- chore(deps): bump @napi-rs/canvas from 0.1.100 to 1.0.0 in /web-components by @dependabot[bot] in #382
- chore(deps): bump @opentelemetry/exporter-prometheus and @opentelemetry/auto-instrumentations-node by @dependabot[bot] in #383
- chore(deps): bump @opentelemetry/sdk-node and @opentelemetry/auto-instrumentations-node by @dependabot[bot] in #384
- chore(deps): bump the web-components-prod group in /web-components with 3 updates by @dependabot[bot] in #387
- chore(deps): bump the web-components-dev group in /web-components with 4 updates by @dependabot[bot] in #386
- chore(deps): bump the npm-prod-dependencies group across 1 directory with 2 updates by @dependabot[bot] in #379
- docs: add CONTRIBUTING.md with development and PR workflow guide by @Arvuno in #389
- docs: add bug report and feature request issue templates by @Arvuno in #392
- docs(docker): expand override example with persistent storage and MinIO options by @Arvuno in #391
- chore(deps): bump qs from 6.14.2 to 6.15.2 in /web-components by @dependabot[bot] in #393
- chore(deps): bump the web-components-prod group in /web-components with 3 updates by @dependabot[bot] in #396
- chore(deps): bump the web-components-dev group in /web-components with 3 updates by @dependabot[bot] in #395
- chore(deps): bump the npm-dev-dependencies group with 2 updates by @dependabot[bot] in #394
- feat(i18n): YAML-driven translations with EN/ES + language switcher by @victalejo in #397
- ci: add weeder check for unused code detection by @tonyalaribe in #243
- Implement unified time testing with controllable app_now() function by @tonyalaribe in #329
- facets: consolidate to dotted OTel paths; bulk-refresh in-memory + batched by @tonyalaribe in #399
- facets: restore top-level + severity facets, empty-state row, more tests by @tonyalaribe in #401
- ingestion: TF-strict commit, per-partition offsets, row-level bisection by @tonyalaribe in #402
- hasql-interpolate + record-dot migration: derived ENUM/CITEXT decoders by @tonyalaribe in #409
- Ingestion/derive bulk insert cap by @tonyalaribe in #410
- tests: faster dev loop + hpack dep dedup; misc hasql fixes by @tonyalaribe in #411
- ingestion: OTel decode/write histograms, per-partition Kafka concurrency, redactJSON early-exit by @tonyalaribe in #412
- refactor(phase1): conciseness pass — makeEffect, DAE.Snake, combinators by @tonyalaribe in #413
- otel: propagate context across forks + root spans at queue/gRPC entry points by @tonyalaribe in #414
- chore(deps): bump @rrweb/replay from 2.0.0-alpha.20 to 2.0.0 in /web-components by @dependabot[bot] in #407
- otel: extract batchSpanAttrs helper to dedupe processList/processMessages by @tonyalaribe in #415
- perf: drop UPDATE-2 CASE-WHEN ladder for native unnest-join now that … by @tonyalaribe in #420
- refactor(LogQueries): collapse wrappers onto jsonb_build_array(sub.*) by @tonyalaribe in #423
New Contributors
- @victalejo made their first contribution in #385
- @Arvuno made their first contribution in #389
Full Changelog: v0.6.22...v0.6.23
v0.6.22
CLI
events search -o jsonnow preserves JSON types: numbers stay numbers, bools stay bools, thesummarycolumn comes back as a clean array of strings instead of a doubly-encoded JSON blob withfield;style⇒valuemarkup. Empty cells collapse tonullso agents can distinguish absent from empty.
v0.6.21
v0.6.20
What's Changed
- Improve MCP and CLI (#368)
- feat: expose monoscope as MCP server at /api/v1/mcp (#367)
- refactor: CLI agent-mode hardening + cross-cutting LOC reduction (#365)
- refactor: replace PGArray with V.Vector for array-typed columns
- Various dependency bumps (npm, github-actions)
Full Changelog: v0.6.19...v0.6.20
Monoscope v0.6.19
What's Changed
- .github/workflows: Migrate workflows to Blacksmith runners by @blacksmith-sh[bot] in #364
Full Changelog: v0.6.16...v0.6.19
Monoscope v0.6.18
Full Changelog: v0.6.16...v0.6.18
v0.6.2 — session bucket bar height fix
Fixes
- Log explorer: session bucket bars now fill the full container height (
h-fulladded soflex-col-reversechildren align correctly).
Chores
- Refresh
web-components/package-lock.json.
Full changelog: v0.6.1...v0.6.2
v0.6.1 — docker-compose fresh clone fix
Fix
-
docker-compose / libpq keyword/value connection strings:
addKeepaliveParamswas appending?keepalives=1&…to every connection string, which only works for URI-form URLs. With the docker-compose defaultDATABASE_URL=host=… sslmode=disable, the?glued onto the last keyword's value and libpq rejected startup with:libpq: failed (invalid sslmode value: "disable?keepalives=1&keepalives_idle=15&...")The helper now detects URI vs keyword/value form and joins with the right separator (
?/&vs space). The TimescaleDBoptions=…append inSystem.Configwas routed through the same helper, so a freshdocker compose upnow boots cleanly.
Full changelog: v0.6.0...v0.6.1
v0.6.0 — Notification overhaul
Highlights
Major overhaul of Slack and Discord notifications for runtime errors, monitors, new endpoints, log patterns, and scheduled reports — denser, clearer, less wasted vertical space, and more actionable.
Slack alerts
- Severity color bar via
attachmentswrapper — red/orange/amber/blue/green/slate applied consistently across all alert types - Compact titles —
{emoji} *{label}* · {errorType} in {project}(no more triple-duplicated error headers) - Top stack frame inlined in the body for file/line context at a glance
- Secondary action button —
View traceappears alongside🔍 Investigatewhen a traceId is present, jumping into Log Explorer filtered by trace_id - Single context block (was up to three), empty fields dropped instead of rendering as empty backticks
- First seen now shows compact relative + absolute time (e.g.
3m ago · Apr 14 4:17 PM) - Field labels standardized:
Environment/Route/Rate/Runtime/Trace - Monitor alert: passive
🤖 Alert triggered for X→ active🚨 Monitor alerting: X; resolved state gets green bar + clickable title - New endpoints: proper singular/plural, redundant body prose removed
- Log-volume rate change: signed change (
+42%/-18%), amber on spike / blue on drop - Report: merged context blocks, terse image titles, explicit
Open reportbutton
Discord alerts
- Per-severity embed colors matching Slack palette
- Monitor content and titles aligned with Slack wording
- Removed redundant body intros on log-pattern and rate-change embeds
- New-endpoint plural fixed
Chart rendering fix
- ECharts bars rendered as a fused "square blob" due to
showBackgroundpainting empty buckets — removed, addedbarCategoryGap: 30%,barMaxWidth: 10, and roundedborderRadiusso columns read as distinct rounded bars
Incidental fixes
- Trace viewer: orphan spans whose parent isn't in the current batch are normalized to roots instead of being silently dropped
- Span timing bar chart: guard against non-finite
maxDurationwhen all bars share the same start