Commit Graph

255 Commits

Author SHA1 Message Date
Billie Ponder 10d6260393
feat(ops): add live execution progress tracker, stepper, docked hud, and completion modal (#19)
Co-authored-by: Developer <dev@example.com>
2026-09-21 11:04:49 -04:00
Billie Ponder fb67252bc8
feat(ops): add speedtest, cms persistence, support ticket db storage, and action resiliency (#18)
Co-authored-by: Developer <dev@example.com>
2026-09-21 10:46:09 -04:00
Billie Ponder cf7c99b210
feat(ops): implement deployment controls, service restarts, and action auditing (phase 2) (#17)
Co-authored-by: Developer <dev@example.com>
2026-09-21 02:56:58 -04:00
Billie Ponder d69d6119d0
ci: skip Android builds for unrelated changes (#16)
* ci: skip Android builds for unrelated changes

* test(ci): adjust live git verification test for branch head

* test(ci): make detector git test deterministic

---------

Co-authored-by: Developer <dev@example.com>
2026-09-21 02:02:32 -04:00
Billie Ponder 0344691194
feat(ops): add disabled action foundation and support report creation (#15)
* feat(ops): add truthful disabled action plane and support modal

* fix(ops): align support report types with backend contract

* fix(ops): address action audit and support validation review

* test(website): add behavioral coverage for support reports

---------

Co-authored-by: Developer <dev@example.com>
2026-09-21 01:19:47 -04:00
Billie Ponder 7efd29a214
feat(website): expose and verify deployed Git revision (#13)
* feat(website): embed deployment revision

* feat(website): expose deployment revision endpoint

* fix(website): normalize revision variable name

* fix(website): normalize revision variable name

* feat(deploy): verify exact website revision

* test(website): cover deployment revision contract

* ci(website): validate deployment revision contract

* fix(deploy): resolve package paths from repository root

* fix(deploy): reject dirty website sources before assigning deployment revision

- Check git status --porcelain on website/ and refuse deployment if uncommitted changes exist.

- Add assertions in deployment-revision.test.cjs to enforce dirty working tree rejection.

---------

Co-authored-by: Developer <dev@example.com>
2026-09-20 18:59:17 -04:00
Billie Ponder 9d99bfa4e4
feat(ops): implement production operations infrastructure dashboard (phase 1) (#14)
* feat(ops): implement production operations infrastructure dashboard (phase 1)

- Add backend read-only infrastructure metrics collector (CPU, RAM, swap, disk with 80%/90% thresholds, uptime, network cumulative totals, systemd service allowlist) using standard library only (no psutil).

- Register GET /api/v1/ops/infrastructure endpoint guarded by require_ops_roles('operator', 'owner').

- Add Next.js API proxy route /api/ops/infrastructure validating ops session cookie and forwarding to backend.

- Implement dark-surface OperationsInfrastructure component in website admin console with 30s visibility-gated polling and overlap prevention.

- Add comprehensive backend and frontend test suites (8 backend tests, 43 ops-experience tests).

* fix(ops): query internal website version endpoint defensively on verified port 3001

- Query internal website GET /api/version on verified production listener http://127.0.0.1:3001 (configurable via WEBSITE_INTERNAL_URL).

- Parse JSON defensively with a 4096-byte response bound and validate exact 40-char hex revision pattern.

- Add comprehensive tests for valid, missing, malformed, oversized, and unreachable version responses.

- Do not expose internal URLs or connection errors in API responses.

* fix(ops): map postgresql service to cluster unit postgresql@14-main and preserve health errors

- Map public logical service ID 'postgresql' to fixed systemd unit 'postgresql@14-main'.

- Reject direct systemd unit names and arbitrary service names.

- Preserve HTTP 5xx responses as degraded on /api/health before root fallback.

- Add regression tests for postgresql unit mapping, API response name stability, and health 5xx preservation.

---------

Co-authored-by: Developer <dev@example.com>
2026-09-20 17:14:21 -04:00
Billie Ponder da0a05d3a2
fix(website): normalize founder portal page widths across profile, applications, and ranks (#12)
Co-authored-by: Developer <dev@example.com>
2026-09-20 13:46:58 -04:00
Billie Ponder 1a2ac12893
fix(website): expand Founder Portal layout width to fill available canvas (#11)
* fix(website): expand Founder Portal layout width to fill available canvas

* fix(website): restore mobile padding, preserve public main landmark, and harden width test

Apply responsive mobile padding to .site-page-frame under 760px. Render semantic <main> for public routes and <div> for portal routes with internal <main> via SitePageFrame. Assert max-w-[1536px] exclusively and reject old max-w-[1440px] cap in founder-portal.test.cjs.

---------

Co-authored-by: Developer <dev@example.com>
2026-09-20 08:59:43 -04:00
Billie Ponder 59900f46f2
feat(web): add clubs rides management (#9)
Add the disabled Founder Portal Club Rides scaffold aligned with the live GroupRide.clubId domain.

Keep production discovery and actions disabled until a privacy-preserving read path and real management destinations are implemented.
2026-09-20 07:23:00 -04:00
Billie Ponder 68d4539f90
feat(group-rides): add club-affiliated rides (#10)
Add optional immutable Club affiliation, authorized Club Owner/Admin ride planning, privacy-preserving point access, and narrowly scoped Club admin ride controls.

Club-wide ride discovery remains deferred pending a privacy-preserving architecture.
2026-09-20 07:03:48 -04:00
Billie Ponder e784c4895d
Merge pull request #6 from bponders12-cell/fix/clubs-management-repair
fix(web): repair clubs management experience
2026-09-20 02:53:53 -04:00
Developer 4dc6e0526d fix(web): address clubs review findings
- Gate ranks-roles management route on canManageSettings with safe
  unauthorized state, matching sibling founder-management routes
- Enforce HTTPS image URL invariant for club logo/banner in the data
  layer (validateClubImageUrl) and in Firestore rules, preserving
  null/empty clearing
2026-09-20 02:35:37 -04:00
Developer 008a5fc5bd fix(web): remove speculative squad rank hierarchy from ranks-roles page 2026-09-20 02:05:09 -04:00
Developer b01054b696 fix(web): repair clubs management experience 2026-09-20 02:02:22 -04:00
Billie Ponder 7e47f776e1
Merge pull request #5 from bponders12-cell/chore/copilot-instructions
chore: add MotorSignal Copilot instructions
2026-09-19 21:04:13 -04:00
root 1e19f739bc chore: add MotorSignal Copilot instructions 2026-09-19 22:30:28 +00:00
Billie Ponder 2a8c438f07
Merge pull request #4 from bponders12-cell/fix/gnss-freshness-semantics
fix(telemetry): harden GNSS freshness semantics
2026-09-19 13:50:14 -04:00
root 6d4c5daa0b fix(telemetry): address GNSS freshness review findings 2026-09-19 16:32:45 +00:00
Developer 22930e7e3a fix(telemetry): harden GNSS freshness semantics 2026-09-19 10:53:27 -04:00
Billie Ponder d3caf37bb2
Merge pull request #3 from bponders12-cell/chore/ci-hardening-phase-1
chore(ci): add website, relay, and backend PR validation
2026-09-18 22:47:45 -04:00
Developer ae49814bd7 fix(android): remove unused MCP toolkit build dependency 2026-09-18 21:57:01 -04:00
Developer d3f48b0a6f chore(ci): add website relay and backend PR validation 2026-09-18 19:07:51 -04:00
Developer 2778c65972 docs(ops): document OPS-4 production deployment runbook and update repository ignore rules 2026-09-18 18:35:48 -04:00
Developer d5dcc97495 feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
Developer 9418aa2ac8 feat(clubs): add public syndicates directory, club discovery, and founder management portal 2026-09-18 18:35:21 -04:00
Developer fa2fccd137 feat(ops): add incident management, user administration, support tickets, and website CMS 2026-09-18 18:35:12 -04:00
Developer 0282a2972f fix(telemetry): accurately track dropped telemetry samples under queue bounds in ride state and field test summary 2026-09-18 18:34:58 -04:00
Developer bb509a4bac fix: offset consumer pages for fixed header 2026-09-13 06:57:11 -04:00
Developer 7365bf56d1 fix: restore website visual assets and shell 2026-09-13 03:45:35 -04:00
Developer e77e16fa19 build: enable standalone website runtime 2026-09-13 01:42:40 -04:00
Developer cd5201c13a fix: isolate marketing layout checkpoint 2026-09-12 18:36:53 -04:00
Developer bbe6d612a7 fix: repair responsive marketing layouts 2026-09-12 18:16:29 -04:00
Developer 87f2289fbc fix: retire legacy admin authority 2026-09-11 03:42:29 -04:00
Developer 304d2db108 fix: make field test event persistence ownership-safe 2026-09-10 23:06:05 -04:00
Developer c227244d5f fix: separate ride actions from truthful recording status claims 2026-09-10 18:01:58 -04:00
Developer ec759ea3c5 fix: make recording health evidence-based and notification truthful 2026-09-10 17:13:27 -04:00
Developer 8681e6f259 feat: add Operations incident management 2026-09-10 14:48:08 -04:00
Developer d31f88e97d fix: make telemetry flush completion dispose-safe 2026-09-10 14:31:33 -04:00
Developer 94d8191b43 fix: enforce telemetry durability before ride finish 2026-09-10 13:10:32 -04:00
Developer 55b3a5908a feat: add isolated MotorSignal Operations console 2026-09-10 08:17:06 -04:00
Developer 5402412ea0 fix: make telemetry batch flush ownership safe 2026-09-10 06:18:39 -04:00
Developer 6161233b2d fix: make ride finish idempotent and contain stop errors 2026-09-10 04:33:41 -04:00
Developer bd5a70e862 fix: make ride start idempotent and harden sync enqueue 2026-09-10 03:18:00 -04:00
Developer 6386dc8697 feat: add dashboard performance launch and lean visualization 2026-09-09 22:08:16 -04:00
Developer 661cd07124 fix: repair group ride routing and route planner 2026-09-09 22:08:01 -04:00
Developer 58193f6de4 feat: add founder club applications workflow 2026-09-09 08:37:34 -04:00
Developer d544292a3c feat: add founder club settings and governance lifecycle 2026-09-09 07:51:48 -04:00
Developer 5eb47e8c09 feat: add founder club profile and sub-routing foundation 2026-09-09 07:06:45 -04:00
Developer 912b4d2a45 Improve ride recording and telemetry workflows 2026-09-08 02:13:03 -04:00