Commit Graph
84 Commits
Author SHA1 Message Date
renovate[bot] fd1fd02f07 chore(deps): update anomalyco/opencode action to v2 2026-10-12 14:51:27 +00:00
renovate[bot] e91f15543b chore(deps): update anomalyco/opencode action to v1.18.29 2026-09-05 10:57:41 +00:00
Louis King 3593d14878 feat(api): make Redis a required cache dependency
Redis becomes mandatory infrastructure (PostgreSQL-parity): the
REDIS_ENABLED flag, NullCache backend, and every conditional caching
code path are removed. /health/ready reports not_ready (503) when
Redis is unreachable and cached endpoints return 503 instead of
silently degrading; invalidation helpers never raise after a
committed write.

The bundled redis container joins the core profile only via
docker-compose.dev.yml (production points REDIS_* at an external
instance, same no-shadowing pattern as postgres), the backend suite
runs against real Redis (test-redis on 127.0.0.1:55433, CI redis:8
service container, per-xdist-worker key prefixes), and operator docs
describe the required-dependency setup (upgrading.md gains the
v0.20.0 section).
2026-08-30 21:51:51 +01:00
renovate[bot] 9406ff4e1d chore(deps): update actions/download-artifact action to v8 2026-08-30 10:51:23 +00:00
Louis King 9f9cd67440 ci: add consolidated job summary with test results and artifacts
Add a summary job that runs after all CI jobs (even on failure),
parses the pytest/vitest/Playwright JUnit reports plus coverage.xml,
and renders a consolidated Markdown summary to $GITHUB_STEP_SUMMARY:
job results, test counts, durations, backend coverage, failure
details, and the artifact inventory. Enable a Playwright JUnit
reporter and include it in the playwright-report artifact.
2026-08-30 11:46:12 +01:00
JingleManSweep 5f621d8036 Merge branch 'main' into chore/ci-e2e-and-report-artifacts 2026-08-30 11:02:56 +01:00
Louis King 3ca379c923 Add Playwright e2e job to CI and upload test report artifacts 2026-08-30 11:02:12 +01:00
Louis King 81dcd3dead Remove SQLite support; PostgreSQL is now the only database backend 2026-08-30 10:19:12 +01:00
renovate[bot] 524b2f0445 chore(deps): update anomalyco/opencode action to v1.18.25 2026-08-29 10:37:00 +00:00
renovate[bot] 4ed9dfd5f8 chore(deps): update anomalyco/opencode action to v1.18.23 2026-08-25 22:53:03 +00:00
renovate[bot] e7aaebfc85 chore(deps): update anomalyco/opencode action to v1.18.5 2026-07-24 22:56:29 +00:00
renovate[bot] 694176b2d8 chore(deps): update actions/setup-node action to v7 2026-07-23 01:40:55 +00:00
JingleManSweep 005c5102ae Merge branch 'main' into feat/react-frontend-phase1 2026-07-22 23:04:09 +01:00
renovate[bot] 5cd8af10b0 chore(deps): update anomalyco/opencode action to v1.18.4 2026-07-22 22:01:09 +00:00
Louis King a3136e59e0 ci: add Node.js setup to Lint job for frontend-typecheck hook 2026-07-22 23:00:09 +01:00
Louis King 789b756aa8 Merge branch 'main' of github.com:ipnet-mesh/meshcore-hub into feat/react-frontend-phase1 2026-07-22 08:19:32 +01:00
Louis King 527c860bf8 feat(web): frontend CI, vitest suite, navbar→React SPA shell — Phase 5
Frontend CI (closes the no-coverage gap for the TSX):
- ci.yml: new 'frontend' job — npm ci, tsc --noEmit, test:frontend, build.
- package.json: engines.node>=20, test:frontend/typecheck scripts.

vitest unit + component tests (jsdom, @testing-library/react):
- utils/charts.test.ts — tier math + every chart builder.
- utils/format.test.ts — parseAppDate, formatNumber, truncateKey, emoji helpers,
  formatRelativeTime.
- components/Navbar.test.tsx — feature-gated nav, custom pages, OIDC/maintenance
  auth gating.
- components/Announcements.test.tsx — banner rendering, ordering, dismiss +
  sessionStorage (covers behaviour moved out of the Python suite).

Navbar → React (full SPA shell):
- New Navbar/ThemeToggle/Announcements components + useNavItems hook (shared
  feature-gated nav for desktop + mobile); nav uses react-router NavLink
  (client-side nav + auto active) — drops the imperative data-nav-link bridge.
- main.tsx single root; App.tsx renders Navbar + Announcements above routed <main>.
- spa.html slimmed to SEO/config/footer shell (Jinja2 navbar/banners/theme script
  removed; #app is a plain div React fills).
- Backend: _build_config_json exposes system_announcement/network_announcement.

Tests (server-rendered nav/banner assertions → config):
- conftest.py: get_app_config() helper (robust __APP_CONFIG__ extraction).
- test_features/app/home/pages/dashboard rewritten to assert __APP_CONFIG__;
  dashboard client-rendered-stats tests replaced with a shell assertion.

Docs: REACT_MIGRATION.md Phase 5 (incl. deliberately-skipped react-query/
Storybook/Playwright), AGENTS.md Frontend section.

Verified: tsc clean, npm run build, vitest (49 passed), pytest tests/test_web
(251 passed), full suite (1459 passed), pre-commit (passed).
2026-07-21 20:06:52 +01:00
renovate[bot] e71918ca13 chore(deps): update actions/setup-python action to v7 2026-07-20 11:52:15 +00:00
renovate[bot] 346d75415a chore(deps): update anomalyco/opencode action to v1.18.3 2026-07-16 21:59:45 +00:00
JingleManSweep 91a65807ad Add GitHub funding link to FUNDING.yml 2026-07-09 22:16:08 +01:00
renovate[bot] 0981b2ec73 chore(deps): update anomalyco/opencode action to v1.17.18 2026-07-09 19:40:13 +00:00
renovate[bot] 857e13c3fe chore(deps): update anomalyco/opencode action to v1.17.15 2026-07-07 21:14:13 +00:00
renovate[bot] 6ae656576b chore(deps): update anomalyco/opencode action to v1.17.13 2026-07-02 21:04:02 +00:00
renovate[bot] 9a8c21d3cf chore(deps): update anomalyco/opencode action to v1.17.11 2026-06-25 13:55:20 +00:00
renovate[bot] 39900b15db chore(deps): update anomalyco/opencode action to v1.17.10 2026-06-24 21:44:53 +00:00
renovate[bot] 316293f6a1 chore(deps): update actions/cache action to v6 2026-06-23 19:30:54 +00:00
renovate[bot] 643e9fa423 chore(deps): update anomalyco/opencode action to v1.17.9 2026-06-23 08:08:04 +00:00
renovate[bot] 0b534781da chore(deps): update actions/checkout action to v7 2026-06-18 21:40:43 +00:00
renovate[bot] 8cd70f87af chore(deps): update anomalyco/opencode action to v1.17.8 2026-06-18 03:02:00 +00:00
Louis King 6ede32b2d4 fix: ensure CI required checks run on all PRs
Remove paths-ignore from the pull_request trigger so the CI workflow
always runs and the required Lint/Test/Build Package checks report on
docs-only PRs (previously skipped entirely, blocking merges).

Drop the github.event_name == 'push' gate on the build job so the
required Build Package check also reports on pull requests.
2026-06-17 21:54:20 +01:00
Louis KingandClaude Opus 4.8 ebb6547457 ci: prune old untagged GHCR package versions
Add actions/delete-package-versions@v5 to both Docker build pipelines to
clean up orphaned untagged manifests left behind by multi-arch rebuilds.

Uses delete-only-untagged-versions so tagged versions (v*, latest, main,
sha-*) are never deleted, with min-versions-to-keep: 10 to protect the
freshly-pushed image's own untagged child/attestation manifests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 15:00:34 +01:00
renovate[bot] 1a94da9f32 chore(deps): update actions/cache action to v5 2026-06-14 21:23:48 +00:00
Louis King 5866428f69 chore(ci): optimise GitHub workflows
Add concurrency (PR-cancel only), dependency caching, timeouts, and
path filters across all four workflows. Pin opencode action to v1.17.7
and tighten the /oc trigger. Skip MQTT broker rebuild when upstream
SHA is unchanged. Gate sdist/wheel build job to main-only pushes.
2026-06-14 22:16:57 +01:00
renovate[bot] b685333790 Update codecov/codecov-action action to v7 2026-06-07 13:45:33 +00:00
Louis King 5df308b6bc Updates 2026-04-19 21:56:59 +01:00
Louis King 0d4c8643f3 Updates 2026-04-18 10:04:47 +01:00
renovate[bot] 01a3b24a8a Update codecov/codecov-action action to v6 2026-04-17 22:06:59 +00:00
Louis King e9bab33560 Restrict opencode workflow to repo owners/members/collaborators 2026-04-17 22:47:43 +01:00
Louis King dbd68e9a9f Replace obsolete MQTT broker image with custom build, add connection retry and upgrade docs
- Add custom Dockerfile for meshcore-mqtt-broker (Node 22 Alpine, built from michaelhart/meshcore-mqtt-broker source)
- Add GitHub Actions workflow for weekly multi-arch MQTT broker image builds
- Add local build script (etc/docker/meshcore-mqtt-broker/build.sh)
- Update docker-compose.yml and test compose to use new ghcr.io image
- Add MQTT connection retry logic with exponential backoff to collector subscriber
- Create UPGRADING.md with migration guide for breaking changes
- Update README.md and AGENTS.md for accuracy (Python 3.14, removed commands, fixed MQTT defaults)
- Remove obsolete files (etc/mosquitto.conf, .agentmap.yaml, CLAUDE.md)
2026-04-13 22:27:39 +01:00
JingleManSweep 0e2a24caa6 Upgrade Codecov action and specify report type
Updated Codecov action to version 5 and added report type.
2026-03-18 12:03:05 +00:00
JingleManSweep ff36a991af Update ci.yml 2026-03-18 11:57:23 +00:00
JingleManSweep f8219b4626 Add push trigger for CI on main branch 2026-03-18 11:39:42 +00:00
JingleManSweep d4c3e127a2 Add CODECOV_TOKEN to CI workflow 2026-03-18 11:23:32 +00:00
renovate[bot] 9256f8375d Update docker/metadata-action action to v6 2026-03-06 19:03:36 +00:00
renovate[bot] 749bed6d5b Update docker/build-push-action action to v7 2026-03-06 18:04:06 +00:00
renovate[bot] 17fa2f1005 Update docker/setup-buildx-action action to v4 2026-03-05 11:44:58 +00:00
JingleManSweep fa1db5e709 Merge branch 'main' into renovate/docker-setup-qemu-action-4.x 2026-03-05 11:42:14 +00:00
renovate[bot] cb305083e7 Update docker/setup-qemu-action action to v4 2026-03-05 11:38:49 +00:00
renovate[bot] d475a12292 Update docker/login-action action to v4 2026-03-05 11:38:41 +00:00
Louis King 90268e9b98 Updates 2026-03-05 11:34:18 +00:00