gadgethd
4bd2c08b7e
scripts: harden read-only evidence runner (PGAPPNAME + idle-tx timeout)
2026-09-19 11:20:46 +00:00
gadgethd
d73b75e43e
frontend: refresh maplibre-gl to 6.10.0 (GHSA-jrc7-96c5-q579)
2026-09-19 11:20:46 +00:00
gadgethd
52d1812f4d
docs: refresh generated OpenAPI artifact (unblocks contract gate)
2026-09-19 11:20:46 +00:00
gadgethd
7ca92ad6cf
docs: record CI smoke-failure analysis (inherited tagger-worker build gap)
2026-09-19 11:20:46 +00:00
gadgethd
4eb8bcb951
ci: build tagger-worker image so the compose smoke stack can start
2026-09-19 11:20:46 +00:00
gadgethd
115400835c
docs: record inherited contract and dependency CI failures
2026-09-19 10:38:46 +00:00
gadgethd
333f180530
fix: reduce health query latency and measure feed rows
2026-09-19 10:34:47 +00:00
gadgethd
1d86e043a5
feat(tags): live message tags for feed + app
...
- tagger-worker: persistent retry queue (tagger_retry) so API outages cannot
drop tags; overlap 20s->120s; only publicly-visible in-scope messages are
sent to the API (visibility + network filter)
- backend: tags joined into /feed/messages, /packets/recent, /packets/:hash
and the WS initial state; new GET /tags/recent for live enrichment; contract
+ openapi entries
- frontend: tag chips under the row meta line (feed + app), live 15s tag poll,
Message tags section in the packet detail panel
2026-09-18 00:13:01 +00:00
hermes-gadget
4bf39aea94
feat(api): honor region= filter on /packets/recent raw events
...
The raw events path (getRecentPacketEvents) ignored a region query, so
consumers could only filter the newest few hundred feed rows themselves
(~10 min slice). Honoring region_scope here lets the nemesh.uk eng-ne
toggle show the most recent eng-ne-scoped packets across the 24h window
and update live as new ones arrive. Normalises 'eng-ne' / '#eng-ne' to
the stored '#eng-ne' form; invalid values fall back to unfiltered.
Verified live: region=eng-ne returns tagged rows; the compat route
serves them through to the site in a browser.
2026-09-17 14:26:44 +00:00
hermes-gadget
ffa3160348
fix(api): expose region_scope in /packets/recent raw events (eng-ne feed toggle)
...
The raw=1 response path (getRecentPacketEvents) omitted region_scope, so
consumers filtering on region scope (nemesh.uk compat region=eng-ne) could
never match, even though packets were correctly tagged at ingest. Add the
column to the SELECT. Verified live: 1000-row raw fetch now carries
region_scope and the compat filter serves #eng-ne rows from real data.
2026-09-17 14:16:44 +00:00
gadgethd
a8921b89f0
compose: add MESHCORE_REGION_NAMES backend probe list (eng-ne)
...
Region-scope probing was unset -> defaulted to Europe,Global, so
eng-ne scoped packets (the North East mesh region) were never tagged
with region_scope. Verified before enabling: 174/400 recent
transport-coded packets match eng-ne via the decoder transportCodeMatchesRegion;
0 match Europe/Global. Probe list is now eng-ne,Europe,Global so
ingest tags region_scope=#eng-ne for downstream consumers (nemesh.uk
eng-ne feed toggle, ukmesh charts regionScope resolution).
2026-09-17 13:42:32 +00:00
gadgethd
1eefb50b31
fix(map): remove duplicate attribution controls — default MapLibre attribution is sufficient
2026-08-27 23:59:16 +00:00
gadgethd
aee892cc82
fix(ws): improve initial-state size estimator accuracy and drop duplicate viable_pairs
2026-08-27 23:59:16 +00:00
gadgethd
4f4546f31a
test(e2e): migrate E2E test route stubs from CARTO to OpenFreeMap
2026-08-27 23:48:01 +00:00
gadgethd
0a41d4bfc6
refactor(map): fix overlay anchors and migrate mini-maps to OpenFreeMap with attribution
2026-08-27 23:48:01 +00:00
gadgethd
fda05b835f
refactor(map): rewrite theme switching to use OpenFreeMap setStyle with style.load rehydration
2026-08-27 23:48:01 +00:00
gadgethd
c177bc44d4
refactor(map): replace CARTO basemap definitions with OpenFreeMap style URLs
2026-08-27 23:48:01 +00:00
gadgethd
d864d0a15b
infra: migrate preconnects, CSP, and service worker from CARTO to OpenFreeMap
2026-08-27 23:48:01 +00:00
gadgethd
5b555a7d4f
style(repeaters): drop IATA chip from top adverting list
2026-08-27 23:48:01 +00:00
gadgethd
44f52fd7e4
fix(api): coerce COUNT(*) string to numeric adverts_in_window
2026-08-27 23:48:01 +00:00
gadgethd
79e5e4ad0b
feat(repeaters): top 10 adverting repeaters (24h) in repeater search empty state
2026-08-27 23:48:01 +00:00
gadgethd
bf7d7ad85e
fix: anchor confirmed paths and stabilize observer dots
2026-08-27 23:48:01 +00:00
gadgethd
2a4dd27bcd
fix(site): update operator Discord handle to sudogadget on install page
2026-08-27 23:48:01 +00:00
gadgethd
306b512ab0
docs: record database reset readiness evidence
2026-08-27 23:48:01 +00:00
gadgethd
d11336da64
fix(backup): restore split-stack recovery workflow
2026-08-27 23:48:01 +00:00
gadgethd
b7bd60f629
fix(owner): preserve authorization inventory across reset
2026-08-27 23:48:01 +00:00
gadgethd
26781dc7d9
fix(db): make reset schema and lifecycle reproducible
2026-08-27 23:48:01 +00:00
gadgethd
ece8c70aa6
fix(map): fetch DEM z0-4 too (MapLibre 6 pyramid starts at lowest available zoom)
2026-08-27 23:48:01 +00:00
gadgethd
42cfdca975
chore: record MapLibre terrain release
2026-08-27 23:48:01 +00:00
gadgethd
b50957c0ba
fix(map): let MapLibre select terrain DEM pyramid
2026-08-27 23:48:01 +00:00
gadgethd
69b0f3811e
fix(map): restore multi-tile terrain on MapLibre 6
2026-08-27 23:48:01 +00:00
gadgethd
733b0f11e4
chore: re-baseline drift-guard manifests (terrain fix release)
2026-08-27 23:47:37 +00:00
gadgethd
b3473b5d11
chore(map): reproducible terrain tile fetch script; ignore terrain-tiles dir
2026-08-27 23:47:37 +00:00
gadgethd
c63f638d46
fix(map): serve terrain tiles from website containers too (nginx location + volume)
2026-08-27 23:47:37 +00:00
gadgethd
1888c2863c
fix(ci): move E2E tests to workers-and-compose job where backend is running
2026-08-27 09:33:53 +00:00
dependabot[bot]
f990c6bd74
chore(deps): bump the actions group across 1 directory with 6 updates ( #71 )
...
Bumps the actions group with 6 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout ) | `4.4.0` | `7.0.1` |
| [actions/setup-node](https://github.com/actions/setup-node ) | `4.4.0` | `7.0.0` |
| [actions/setup-python](https://github.com/actions/setup-python ) | `5.6.0` | `7.0.0` |
| [gitleaks/gitleaks-action](https://github.com/gitleaks/gitleaks-action ) | `2.3.9` | `3.0.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action ) | `4.2.0` | `4.3.0` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer ) | `3.9.1` | `4.1.2` |
Updates `actions/checkout` from 4.4.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4.4.0...3d3c42e5aac5ba805825da76410c181273ba90b1 )
Updates `actions/setup-node` from 4.4.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-node/releases )
- [Commits](https://github.com/actions/setup-node/compare/v4.4.0...820762786026740c76f36085b0efc47a31fe5020 )
Updates `actions/setup-python` from 5.6.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-python/releases )
- [Commits](https://github.com/actions/setup-python/compare/a26af69be951a213d495a4c3e4e4022e16d87065...5fda3b95a4ea91299a34e894583c3862153e4b97 )
Updates `gitleaks/gitleaks-action` from 2.3.9 to 3.0.0
- [Release notes](https://github.com/gitleaks/gitleaks-action/releases )
- [Commits](https://github.com/gitleaks/gitleaks-action/compare/ff98106e4c7b2bc287b24eaf42907196329070c7...e0c47f4f8be36e29cdc102c57e68cb5cbf0e8d1e )
Updates `docker/setup-buildx-action` from 4.2.0 to 4.3.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases )
- [Commits](https://github.com/docker/setup-buildx-action/compare/bb05f3f5519dd87d3ba754cc423b652a5edd6d2c...37fe631027851001ddb9b187196cc803df7f5f0e )
Updates `sigstore/cosign-installer` from 3.9.1 to 4.1.2
- [Release notes](https://github.com/sigstore/cosign-installer/releases )
- [Commits](https://github.com/sigstore/cosign-installer/compare/398d4b0eeef1380460a10c8013a76f728fb906ac...6f9f17788090df1f26f669e9d70d6ae9567deba6 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 7.0.1
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/setup-node
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: actions/setup-python
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: gitleaks/gitleaks-action
dependency-version: 3.0.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
- dependency-name: docker/setup-buildx-action
dependency-version: 4.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
- dependency-name: sigstore/cosign-installer
dependency-version: 4.1.2
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-27 09:41:49 +01:00
dependabot[bot]
bccc4af59c
chore(deps): bump the frontend-dependencies group across 1 directory with 9 updates ( #70 )
...
Bumps the frontend-dependencies group with 9 updates in the /frontend directory:
| Package | From | To |
| --- | --- | --- |
| [@deck.gl/aggregation-layers](https://github.com/visgl/deck.gl ) | `9.3.8` | `9.3.10` |
| [@deck.gl/core](https://github.com/visgl/deck.gl ) | `9.3.8` | `9.3.10` |
| [@deck.gl/extensions](https://github.com/visgl/deck.gl ) | `9.3.8` | `9.3.10` |
| [@deck.gl/layers](https://github.com/visgl/deck.gl ) | `9.3.8` | `9.3.10` |
| [@deck.gl/mapbox](https://github.com/visgl/deck.gl ) | `9.3.8` | `9.3.10` |
| [maplibre-gl](https://github.com/maplibre/maplibre-gl-js ) | `6.2.0` | `6.4.0` |
| [zustand](https://github.com/pmndrs/zustand ) | `5.0.14` | `5.0.15` |
| [@axe-core/playwright](https://github.com/dequelabs/axe-core-npm ) | `4.12.1` | `4.13.0` |
| [tsx](https://github.com/privatenumber/tsx ) | `4.23.11` | `4.23.12` |
Updates `@deck.gl/aggregation-layers` from 9.3.8 to 9.3.10
- [Release notes](https://github.com/visgl/deck.gl/releases )
- [Changelog](https://github.com/visgl/deck.gl/blob/v9.3.10/CHANGELOG.md )
- [Commits](https://github.com/visgl/deck.gl/compare/v9.3.8...v9.3.10 )
Updates `@deck.gl/core` from 9.3.8 to 9.3.10
- [Release notes](https://github.com/visgl/deck.gl/releases )
- [Changelog](https://github.com/visgl/deck.gl/blob/v9.3.10/CHANGELOG.md )
- [Commits](https://github.com/visgl/deck.gl/compare/v9.3.8...v9.3.10 )
Updates `@deck.gl/extensions` from 9.3.8 to 9.3.10
- [Release notes](https://github.com/visgl/deck.gl/releases )
- [Changelog](https://github.com/visgl/deck.gl/blob/v9.3.10/CHANGELOG.md )
- [Commits](https://github.com/visgl/deck.gl/compare/v9.3.8...v9.3.10 )
Updates `@deck.gl/layers` from 9.3.8 to 9.3.10
- [Release notes](https://github.com/visgl/deck.gl/releases )
- [Changelog](https://github.com/visgl/deck.gl/blob/v9.3.10/CHANGELOG.md )
- [Commits](https://github.com/visgl/deck.gl/compare/v9.3.8...v9.3.10 )
Updates `@deck.gl/mapbox` from 9.3.8 to 9.3.10
- [Release notes](https://github.com/visgl/deck.gl/releases )
- [Changelog](https://github.com/visgl/deck.gl/blob/v9.3.10/CHANGELOG.md )
- [Commits](https://github.com/visgl/deck.gl/compare/v9.3.8...v9.3.10 )
Updates `maplibre-gl` from 6.2.0 to 6.4.0
- [Release notes](https://github.com/maplibre/maplibre-gl-js/releases )
- [Changelog](https://github.com/maplibre/maplibre-gl-js/blob/main/CHANGELOG.md )
- [Commits](https://github.com/maplibre/maplibre-gl-js/compare/v6.2.0...v6.4.0 )
Updates `zustand` from 5.0.14 to 5.0.15
- [Release notes](https://github.com/pmndrs/zustand/releases )
- [Commits](https://github.com/pmndrs/zustand/compare/v5.0.14...v5.0.15 )
Updates `@axe-core/playwright` from 4.12.1 to 4.13.0
- [Release notes](https://github.com/dequelabs/axe-core-npm/releases )
- [Changelog](https://github.com/dequelabs/axe-core-npm/blob/develop/CHANGELOG.md )
- [Commits](https://github.com/dequelabs/axe-core-npm/commits/v4.13.0 )
Updates `tsx` from 4.23.11 to 4.23.12
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.11...v4.23.12 )
---
updated-dependencies:
- dependency-name: "@deck.gl/aggregation-layers"
dependency-version: 9.3.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-dependencies
- dependency-name: "@deck.gl/core"
dependency-version: 9.3.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-dependencies
- dependency-name: "@deck.gl/extensions"
dependency-version: 9.3.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-dependencies
- dependency-name: "@deck.gl/layers"
dependency-version: 9.3.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-dependencies
- dependency-name: "@deck.gl/mapbox"
dependency-version: 9.3.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-dependencies
- dependency-name: maplibre-gl
dependency-version: 6.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: frontend-dependencies
- dependency-name: zustand
dependency-version: 5.0.15
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: frontend-dependencies
- dependency-name: "@axe-core/playwright"
dependency-version: 4.13.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: frontend-dependencies
- dependency-name: tsx
dependency-version: 4.23.12
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: frontend-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-27 09:41:45 +01:00
dependabot[bot]
68225c463b
chore(deps): bump the rf-worker-dependencies group ( #68 )
...
Bumps the rf-worker-dependencies group in /viewshed-worker with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [numpy](https://github.com/numpy/numpy ) | `2.3.5` | `2.5.2` |
| [prometheus-client](https://github.com/prometheus/client_python ) | `0.21.1` | `0.26.0` |
| [psycopg2-binary](https://github.com/psycopg/psycopg2 ) | `2.9.11` | `2.9.12` |
| [redis](https://github.com/redis/redis-py ) | `5.0.8` | `8.1.0` |
| [requests](https://github.com/psf/requests ) | `2.32.3` | `2.34.2` |
| [scipy](https://github.com/scipy/scipy ) | `1.16.3` | `1.18.0` |
Updates `numpy` from 2.3.5 to 2.5.2
- [Release notes](https://github.com/numpy/numpy/releases )
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst )
- [Commits](https://github.com/numpy/numpy/compare/v2.3.5...v2.5.2 )
Updates `prometheus-client` from 0.21.1 to 0.26.0
- [Release notes](https://github.com/prometheus/client_python/releases )
- [Commits](https://github.com/prometheus/client_python/compare/v0.21.1...v0.26.0 )
Updates `psycopg2-binary` from 2.9.11 to 2.9.12
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS )
- [Commits](https://github.com/psycopg/psycopg2/compare/2.9.11...2.9.12 )
Updates `redis` from 5.0.8 to 8.1.0
- [Release notes](https://github.com/redis/redis-py/releases )
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES )
- [Commits](https://github.com/redis/redis-py/compare/v5.0.8...v8.1.0 )
Updates `requests` from 2.32.3 to 2.34.2
- [Release notes](https://github.com/psf/requests/releases )
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md )
- [Commits](https://github.com/psf/requests/compare/v2.32.3...v2.34.2 )
Updates `scipy` from 1.16.3 to 1.18.0
- [Release notes](https://github.com/scipy/scipy/releases )
- [Commits](https://github.com/scipy/scipy/compare/v1.16.3...v1.18.0 )
---
updated-dependencies:
- dependency-name: numpy
dependency-version: 2.5.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rf-worker-dependencies
- dependency-name: prometheus-client
dependency-version: 0.26.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rf-worker-dependencies
- dependency-name: psycopg2-binary
dependency-version: 2.9.12
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: rf-worker-dependencies
- dependency-name: redis
dependency-version: 8.1.0
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: rf-worker-dependencies
- dependency-name: requests
dependency-version: 2.34.2
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rf-worker-dependencies
- dependency-name: scipy
dependency-version: 1.18.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: rf-worker-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-27 09:41:41 +01:00
dependabot[bot]
5fbc45be2b
chore(deps): bump the backend-dependencies group ( #66 )
...
Bumps the backend-dependencies group in /backend with 2 updates: [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg ) and [tsx](https://github.com/privatenumber/tsx ).
Updates `pg` from 8.22.0 to 8.23.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md )
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.23.0/packages/pg )
Updates `tsx` from 4.23.11 to 4.23.12
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.11...v4.23.12 )
---
updated-dependencies:
- dependency-name: pg
dependency-version: 8.23.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: backend-dependencies
- dependency-name: tsx
dependency-version: 4.23.12
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: backend-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-27 09:41:37 +01:00
dependabot[bot]
618d42fd3e
chore(deps): bump the scripts-dependencies group ( #65 )
...
Bumps the scripts-dependencies group in /scripts with 2 updates: [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg ) and [tsx](https://github.com/privatenumber/tsx ).
Updates `pg` from 8.22.0 to 8.23.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md )
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.23.0/packages/pg )
Updates `tsx` from 4.23.11 to 4.23.12
- [Release notes](https://github.com/privatenumber/tsx/releases )
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs )
- [Commits](https://github.com/privatenumber/tsx/compare/v4.23.11...v4.23.12 )
---
updated-dependencies:
- dependency-name: pg
dependency-version: 8.23.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: scripts-dependencies
- dependency-name: tsx
dependency-version: 4.23.12
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: scripts-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-27 09:41:33 +01:00
hermes-gadget
93e72b824e
Remove planning/report/summary .md files from root
...
Cleanup: remove 23 stale planning, report, audit, and summary markdown
files from the root directory. These were artifacts from the early UKMesh
migration planning phase and are no longer needed. README.md retained.
2026-08-21 23:50:09 +01:00
gadgethd
309a108c44
chore: re-baseline drift-guard manifests (privacy page restyle)
2026-08-12 20:50:26 +00:00
gadgethd
1ba7674782
style(privacy): match site-prose/prose-section layout of sibling pages
2026-08-12 20:49:42 +00:00
gadgethd
a4d9120bfc
chore: re-baseline drift-guard manifests to rel-3400d3c (telemetry+gdpr release)
2026-08-12 20:45:41 +00:00
gadgethd
fafc6c52ca
fix(retention): health-worker retention targets from env — covers frontend_error_events + packet_decryptions (was hardcoded 2-table list)
2026-08-12 20:40:09 +00:00
gadgethd
3400d3c1fc
fix(telemetry): correct telemetry=off gate — key is telemetry, value off (probe caught it)
2026-08-12 20:36:19 +00:00
gadgethd
181a41e891
test(dataLifecycle): packets retention now 30 days per 2026-08-12 policy
2026-08-12 20:25:30 +00:00
gadgethd
20ecb5f427
fix(telemetry): lazy telemetry=off check so module imports safely in node tests
2026-08-12 20:23:40 +00:00
gadgethd
b8628a78bf
feat(telemetry+gdpr): shared client error capture, console.error hook, privacy page, retention jobs, packet_paths store
...
- clientErrors.ts: window.onerror/unhandledrejection for BOTH domains via main.tsx
(was app-only in App.tsx); resource-failure classification; telemetry=off gate;
console.error hook (kind warning) with terrain-tiles noise filter; page field
now pathname-only (no query strings)
- PrivacyPage at /privacy linked from footer + cookie banner; docs/privacy.md LIA
- retention: packet_decryptions added to row-table retention targets; packets
180d->30d in lifecycle policies; migration 050 schedules timescaledb retention
jobs (packets 30d, node_status 180d, node_neighbor 7d) that never existed
- migration 050: packet_paths hypertable (content-stripped path store, no
retention) + backfill of 2.56M path-bearing packets + ingest dual-write
2026-08-12 20:23:13 +00:00
gadgethd
c16d14fd93
chore: re-baseline drift-guard manifests to rel-18cb600 (stats mobile fixes); fix image pins to full 64-hex digests
2026-08-12 14:47:45 +00:00