mirror of
https://github.com/gadgethd/ukmesh.git
synced 2026-10-23 06:12:27 +00:00
- ml-path-learner: new Python worker that trains a prefix→node ML model from gold paths and writes scores to ml_path_prefix_scores - lazyResolver: integrate ML scores and edge priors into tiered candidate ranking; bidirectional pass-2 propagation; global cross-group direct anchors - Anubis: add sidecar bot-protection containers for all public HTTP services; botPolicy.yaml - Planned coverage: new API route + frontend map layers for placing hypothetical repeaters and computing coverage - Map: light/dark theme toggle; map-tools button group (LOS, Repeater, theme); plan-repeater mode with click-to-place/remove and polling - Frontend: remove inferred nodes from map display (backend inference kept for internal use) - Stats page: observer region summary, channel traffic, companion activity endpoints and UI - UKCompanionPage: new companion activity page - Teesside site: extracted into standalone build context (teesside-site/) - healthcheck overrides: share.html, sw.js, region filter support, SVG score ring updates - DB: dedicated analytics pool; DATABASE_SKIP_SCHEMA_INIT flag; path hash prefix indexes; lateral join fixes for node_link_radio_reports - docker-compose: ml-path-learner service; anubis sidecars; DATABASE_SKIP_SCHEMA_INIT on all workers; OBSERVER_RETENTION_SECONDS; REGIONS_FILE - backend-site: internal operator dashboard routes - docker/mesh-health-check-entrypoint.sh: extract channel secret from MESHCORE_CHANNEL_SECRETS at startup - scripts: observer key generation, observer registration, healthcheck tunnel check - vacuum-compressed-chunks.sh: maintenance script Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
782 B
Bash
Executable File
27 lines
782 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")"
|
|
|
|
# Find all compressed packet chunks and VACUUM FULL them.
|
|
# Autovacuum skips these because they report 0 live/dead tuples after compression,
|
|
# causing index and heap bloat to accumulate over time.
|
|
|
|
CHUNKS=$(docker compose exec -T timescaledb psql -U meshcore -d meshcore -t -A -c "
|
|
SELECT chunk_schema||'.'||chunk_name
|
|
FROM timescaledb_information.chunks
|
|
WHERE is_compressed = true
|
|
AND hypertable_name = 'packets'
|
|
")
|
|
|
|
if [ -z "$CHUNKS" ]; then
|
|
echo "$(date -u +%FT%TZ) no compressed chunks found"
|
|
exit 0
|
|
fi
|
|
|
|
for chunk in $CHUNKS; do
|
|
echo "$(date -u +%FT%TZ) VACUUM FULL $chunk"
|
|
docker compose exec -T timescaledb psql -U meshcore -d meshcore -c "VACUUM FULL $chunk;"
|
|
done
|
|
|
|
echo "$(date -u +%FT%TZ) done"
|