Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
215 commits
Select commit Hold shift + click to select a range
d331fa2
chore(deps): update github/codeql-action digest to 0d579ff
renovate[bot] Mar 9, 2026
ee667bf
chore(deps): update swatinem/rust-cache digest to 779680d
renovate[bot] Mar 9, 2026
45bc4f1
chore: update dependencies for improved compatibility
JustAGhosT Mar 9, 2026
d94819c
ci(deps): bump hashicorp/setup-terraform from 3.1.2 to 4.0.0
dependabot[bot] Mar 9, 2026
4dae8bc
deps(deps): bump uuid from 1.21.0 to 1.22.0
dependabot[bot] Mar 9, 2026
e4c57ff
deps(deps): bump tauri from 2.10.2 to 2.10.3
dependabot[bot] Mar 9, 2026
599c2a9
deps(deps): bump azure_core from 0.32.0 to 0.33.0
dependabot[bot] Mar 9, 2026
1bd1834
deps(deps): bump @azure/msal-browser from 5.2.0 to 5.4.0
dependabot[bot] Mar 9, 2026
a790702
deps(deps-dev): bump lint-staged from 16.2.7 to 16.3.2
dependabot[bot] Mar 9, 2026
e198fec
deps(deps): bump jose from 6.1.3 to 6.2.1
dependabot[bot] Mar 9, 2026
34be87e
chore: upgrade pnpm version across project files
JustAGhosT Mar 9, 2026
3f712ee
fix(ci): use pnpm from packageManager; add @next/eslint-plugin-next f…
JustAGhosT Mar 9, 2026
7c46b87
chore: update lockfile for @types/node ^25.3.5 and @next/eslint-plugi…
JustAGhosT Mar 9, 2026
0e87e68
Merge pull request #725 from phoenixvc/fix/pnpm-10-and-marketing-lint
JustAGhosT Mar 9, 2026
beeb1b9
Merge pull request #724 from phoenixvc/fix/pnpm-10-and-marketing-lint
JustAGhosT Mar 9, 2026
0ebea20
ci(deps): bump actions/setup-node from 6.2.0 to 6.3.0
dependabot[bot] Mar 9, 2026
e63140a
deps(deps-dev): bump postcss from 8.5.6 to 8.5.8
dependabot[bot] Mar 9, 2026
c24aa37
chore(deps): update dependency eslint to v10.0.3
renovate[bot] Mar 9, 2026
0f2ed59
Merge pull request #722 from phoenixvc/chore--cleanup-packages
JustAGhosT Mar 9, 2026
24fa722
Merge pull request #711 from phoenixvc/dependabot/cargo/tauri-2.10.3
JustAGhosT Mar 9, 2026
939847b
Merge pull request #710 from phoenixvc/dependabot/npm_and_yarn/lint-s…
JustAGhosT Mar 9, 2026
2a294d7
deps(deps): bump libc from 0.2.182 to 0.2.183
dependabot[bot] Mar 9, 2026
ef5a7c2
Merge pull request #713 from phoenixvc/dependabot/cargo/libc-0.2.183
JustAGhosT Mar 9, 2026
daa289e
Merge pull request #705 from phoenixvc/dependabot/cargo/uuid-1.22.0
JustAGhosT Mar 9, 2026
d37caf8
Merge pull request #720 from phoenixvc/dependabot/npm_and_yarn/postcs…
JustAGhosT Mar 9, 2026
d31e454
deps(deps-dev): bump turbo from 2.8.10 to 2.8.14
dependabot[bot] Mar 9, 2026
e976675
deps(deps-dev): bump globals from 17.3.0 to 17.4.0
dependabot[bot] Mar 9, 2026
5c0efda
chore(deps): update dependency autoprefixer to v10.4.27
renovate[bot] Mar 9, 2026
1a9cf58
chore: enhance deployment workflow to exclude Dependabot and Renovate…
JustAGhosT Mar 9, 2026
7572287
Merge pull request #695 from phoenixvc/renovate/swatinem-rust-cache-d…
JustAGhosT Mar 9, 2026
f4b7ab6
Merge pull request #717 from phoenixvc/dependabot/npm_and_yarn/global…
JustAGhosT Mar 9, 2026
df76474
Merge pull request #716 from phoenixvc/dependabot/npm_and_yarn/turbo-…
JustAGhosT Mar 9, 2026
2dc962d
Merge pull request #702 from phoenixvc/renovate/autoprefixer-10.x
JustAGhosT Mar 9, 2026
2e47090
Merge pull request #704 from phoenixvc/dependabot/github_actions/acti…
JustAGhosT Mar 9, 2026
b2c66c2
chore(deps): update dependency @azure/msal-browser to v5.4.0
renovate[bot] Mar 9, 2026
8975cc6
chore(deps): update dependency applicationinsights to v3.14.0
renovate[bot] Mar 9, 2026
e4202d3
Merge pull request #730 from phoenixvc/fix/deploymentduringdenpendabot
JustAGhosT Mar 9, 2026
c829e29
chore(deps): update dependency turbo to v2.8.15
renovate[bot] Mar 9, 2026
f34ed55
chore(deps): update dependency @types/node to v25.4.0
renovate[bot] Mar 9, 2026
126c81c
chore(deps): update pnpm to v10.32.0
renovate[bot] Mar 9, 2026
a750a42
Merge pull request #700 from phoenixvc/renovate/node-25.x-lockfile
JustAGhosT Mar 10, 2026
c02d44f
Merge pull request #706 from phoenixvc/dependabot/cargo/azure_core-0.…
JustAGhosT Mar 10, 2026
5867008
chore(deps): update dependency lint-staged to v16.3.3
renovate[bot] Mar 10, 2026
f5b10e5
chore(deps): update dependency applicationinsights to v3.14.0
renovate[bot] Mar 10, 2026
237dc46
Merge pull request #703 from phoenixvc/dependabot/github_actions/hash…
JustAGhosT Mar 10, 2026
2b6b026
Merge pull request #708 from phoenixvc/renovate/github-codeql-action-…
JustAGhosT Mar 10, 2026
cedaf7a
Merge pull request #712 from phoenixvc/renovate/eslint-monorepo
JustAGhosT Mar 10, 2026
5be7772
Merge pull request #726 from phoenixvc/renovate/turbo-monorepo
JustAGhosT Mar 10, 2026
0bef8dc
Merge pull request #719 from phoenixvc/dependabot/npm_and_yarn/jose-6…
JustAGhosT Mar 10, 2026
82cd403
Merge pull request #721 from phoenixvc/dependabot/npm_and_yarn/azure/…
JustAGhosT Mar 10, 2026
26bfe35
Merge pull request #729 from phoenixvc/renovate/applicationinsights-3…
JustAGhosT Mar 10, 2026
7eb0960
Merge pull request #733 from phoenixvc/renovate/pnpm-10.x
JustAGhosT Mar 10, 2026
aff1dac
Merge pull request #735 from phoenixvc/renovate/lint-staged-16.x-lock…
JustAGhosT Mar 10, 2026
4698c79
chore(deps): update dependency markdownlint-cli to ^0.48.0
renovate[bot] Mar 10, 2026
fb26b1b
chore(deps): update jest monorepo to v30.3.0
renovate[bot] Mar 10, 2026
3d3e383
chore(deps): update typescript-eslint monorepo to v8.57.0
renovate[bot] Mar 10, 2026
3f07ad1
fix(deps): update rust crate azure_identity to 0.33
renovate[bot] Mar 10, 2026
e1a8c4b
deps(deps): bump quinn-proto in the cargo group across 1 directory
dependabot[bot] Mar 11, 2026
3fd1d24
Merge pull request #732 from phoenixvc/renovate/markdownlint-cli-0.x
JustAGhosT Mar 11, 2026
82835c9
Merge pull request #736 from phoenixvc/renovate/jest-monorepo
JustAGhosT Mar 11, 2026
f2461fa
chore(deps): update dependency macos to v15
renovate[bot] Mar 11, 2026
4cd4f92
chore(deps): update dependency node to v24
renovate[bot] Mar 11, 2026
ec80e9d
Merge pull request #734 from phoenixvc/renovate/typescript-eslint-mon…
JustAGhosT Mar 11, 2026
08a76ca
Merge pull request #740 from phoenixvc/renovate/node-24.x
JustAGhosT Mar 11, 2026
da2f627
Merge pull request #739 from phoenixvc/renovate/macos-15.x
JustAGhosT Mar 11, 2026
11c4c73
Merge pull request #738 from phoenixvc/dependabot/cargo/cargo-6aa8836123
JustAGhosT Mar 11, 2026
5222cd7
Merge pull request #737 from phoenixvc/renovate/azure-sdk-for-rust-mo…
JustAGhosT Mar 11, 2026
695b646
chore(deps): update rust crate tempfile to v3.27.0
renovate[bot] Mar 11, 2026
2f0cdd5
chore(deps): update dependency ubuntu to v24
renovate[bot] Mar 11, 2026
99b5b04
chore(deps): update resource microsoft.documentdb/databaseaccounts to…
renovate[bot] Mar 11, 2026
12d760b
chore(deps): update resource microsoft.documentdb/databaseaccounts/sq…
renovate[bot] Mar 11, 2026
7dbf08c
chore(deps): update resource microsoft.documentdb/databaseaccounts/sq…
renovate[bot] Mar 11, 2026
d181ce9
chore(deps): update actions/download-artifact action to v8.0.1
renovate[bot] Mar 11, 2026
d18f5ea
chore(deps): update pnpm/action-setup digest to fc06bc1
renovate[bot] Mar 13, 2026
cd68624
ci(deps): bump softprops/action-gh-release from 2.5.0 to 2.6.1
dependabot[bot] Mar 16, 2026
ccd7e4f
ci(deps): bump actions/download-artifact from 8.0.0 to 8.0.1
dependabot[bot] Mar 16, 2026
75fea3f
ci(deps): bump actions-rust-lang/setup-rust-toolchain
dependabot[bot] Mar 16, 2026
956bd11
deps(deps): bump tracing-subscriber from 0.3.22 to 0.3.23
dependabot[bot] Mar 16, 2026
88229f4
deps(deps): bump once_cell from 1.21.3 to 1.21.4
dependabot[bot] Mar 16, 2026
96526d9
deps(deps): bump tempfile from 3.26.0 to 3.27.0
dependabot[bot] Mar 16, 2026
82e4d86
deps(deps): bump dompurify from 3.3.2 to 3.3.3
dependabot[bot] Mar 16, 2026
d6e913f
deps(deps-dev): bump lint-staged from 16.3.3 to 16.4.0
dependabot[bot] Mar 16, 2026
382656d
deps(deps-dev): bump @vitejs/plugin-react from 5.1.4 to 6.0.1
dependabot[bot] Mar 16, 2026
4ac918a
chore(ci): reduce CodeQL to weekly schedule + manual trigger
JustAGhosT Mar 17, 2026
1c1cb74
Merge pull request #768 from phoenixvc/chore/codeql-weekly-only
JustAGhosT Mar 17, 2026
efe1d6c
chore(deps): bump next
dependabot[bot] Mar 17, 2026
15bc50b
deps(deps): bump next in the npm_and_yarn group across 1 directory
dependabot[bot] Mar 17, 2026
f0dc6e6
chore(deps): update dependency dompurify to v3.3.3
renovate[bot] Mar 18, 2026
e7bec2e
chore(deps): update dependency turbo to v2.8.20
renovate[bot] Mar 19, 2026
fc90896
feat(hardware): add drone-mounted net launcher node to Phase 1A
claude Mar 23, 2026
69dc26c
feat(hardware): add gas-ignition and spring-loaded deployment options
claude Mar 23, 2026
37031e4
feat(firmware): add Phase 1 ESP32 three-node firmware and wiring docs
claude Mar 23, 2026
8723d2c
docs(hardware): add Mermaid diagrams for Phase 1 wiring reference
claude Mar 23, 2026
bc2bfe3
feat(firmware): add SX1276 LoRa gateway to hub for long-range alerts
claude Mar 23, 2026
d408125
Merge pull request #773 from phoenixvc/claude/esp32-drone-planning-fQEsJ
JustAGhosT Mar 24, 2026
c89f0af
feat(hardware): add Phase 1 3D-printable enclosures and turret bracket
claude Mar 24, 2026
948e399
docs(hardware): add complete STL-to-G-code slicing guide
claude Mar 24, 2026
87e7de6
feat(hardware): add quad drone test target build plan
claude Mar 24, 2026
8232e08
feat(hardware): add component inventory and expense tracker
claude Mar 24, 2026
04e83b7
Merge pull request #774 from phoenixvc/claude/esp32-drone-planning-fQEsJ
JustAGhosT Mar 24, 2026
f46482a
Merge pull request #771 from phoenixvc/dependabot/npm_and_yarn/npm_an…
JustAGhosT Mar 24, 2026
9f48356
docs: add battery technologies counter-UAS threat assessment research
claude Mar 24, 2026
f122e95
docs: add storage technologies counter-UAS threat assessment research
claude Mar 24, 2026
ddfcbc3
docs: add hardware teardown of toy-grade quadcopter for threat baseline
claude Mar 24, 2026
66fce42
chore(deps): update pnpm to v10.33.0
renovate[bot] Mar 24, 2026
34cfc1a
docs: add tiered internal upgrade BOM for toy quadcopter teardown
claude Mar 24, 2026
dbbe70e
docs: add upgrade path roadmaps and purchasing tracker for X8 quadcopter
claude Mar 25, 2026
1a81ff4
docs: establish C → A → B upgrade progression order
claude Mar 25, 2026
2aa3a42
Merge pull request #775 from phoenixvc/claude/cr2032-rechargeable-res…
JustAGhosT Mar 25, 2026
dc8c089
docs: Add spare parts bin inventory document
claude Mar 25, 2026
a52adc9
Merge pull request #769 from phoenixvc/dependabot/npm_and_yarn/apps/m…
JustAGhosT Mar 25, 2026
14adc94
Merge pull request #767 from phoenixvc/dependabot/npm_and_yarn/vitejs…
JustAGhosT Mar 25, 2026
02be811
docs: Update spare parts bin with hoverboard components and corrections
claude Mar 25, 2026
a880c3f
docs: Add spare parts decision records and fix stolen drone note
claude Mar 25, 2026
20bff0b
docs: Add decision records for washing machine panel and LG T-Con board
claude Mar 25, 2026
c67c85d
docs: Add routers, adapters, NiMH charger, and BenQ monitor to spare …
claude Mar 25, 2026
0a47fed
docs: Comprehensive spare parts rewrite — free labor paradigm, 29 items
claude Mar 25, 2026
bd21810
Merge pull request #776 from phoenixvc/claude/cr2032-rechargeable-res…
JustAGhosT Mar 25, 2026
e1455f9
chore: add pre-release notes draft [skip ci]
stilla[bot] Mar 25, 2026
352bca0
docs: Update purchasing tracker to R478 cart and add component pricelist
claude Mar 25, 2026
8658609
feat: reality-align team structure and values for NexaMesh rebrand
claude Mar 25, 2026
44d45a0
feat: reality-aligned NexaMesh rebrand — fundability roadmap and inve…
claude Mar 25, 2026
dad3c3a
ci(deps): bump azure/login from 2.3.0 to 3.0.0
dependabot[bot] Mar 25, 2026
ea33bd1
deps(deps): bump sha2 from 0.10.9 to 0.11.0
dependabot[bot] Mar 25, 2026
d1a9012
ci(deps): bump github/codeql-action from 4.32.6 to 4.34.1
dependabot[bot] Mar 25, 2026
0ee3955
deps(deps): bump gloo-timers from 0.3.0 to 0.4.0
dependabot[bot] Mar 25, 2026
b51d0ad
deps(deps-dev): bump @typescript-eslint/parser from 8.57.0 to 8.57.2
dependabot[bot] Mar 25, 2026
0a0fbd2
deps(deps): bump openai from 6.25.0 to 6.32.0
dependabot[bot] Mar 25, 2026
973acdd
deps(deps-dev): bump @marp-team/marp-cli from 4.2.3 to 4.3.1
dependabot[bot] Mar 25, 2026
4f10d45
deps(deps-dev): bump @vitest/coverage-v8 from 4.0.18 to 4.1.1
dependabot[bot] Mar 25, 2026
f6936fc
deps(deps-dev): bump vitest from 4.0.18 to 4.1.1
dependabot[bot] Mar 25, 2026
a3d46ab
deps(deps-dev): bump jsdom from 28.1.0 to 29.0.1
dependabot[bot] Mar 25, 2026
bab532a
deps(deps-dev): bump turbo from 2.8.15 to 2.8.20
dependabot[bot] Mar 25, 2026
06fdac9
deps(deps): bump @azure/msal-browser from 5.4.0 to 5.6.1
dependabot[bot] Mar 25, 2026
6c4ce06
docs: add session handover for fundability and rebrand planning
JustAGhosT Mar 25, 2026
db1c688
Merge branch 'claude/cr2032-rechargeable-research-3mWaD' into dev
JustAGhosT Mar 25, 2026
0c21ce4
docs: update handover — brand confirmed as Nexamesh
JustAGhosT Mar 25, 2026
4d18ec0
docs: add roadmap and todo YAML files for project tasks and priorities
JustAGhosT Mar 25, 2026
7c6f043
docs: add fundability roadmap, SA funding guide, and application tracker
JustAGhosT Mar 25, 2026
bd9f93a
Merge branch 'claude/research-project-fundability-yLktG' into dev
JustAGhosT Mar 25, 2026
141e78d
Merge branch 'stilla/prelim-release-notes-2026-03-25' into dev
JustAGhosT Mar 25, 2026
5071743
chore(deps): merge renovate/actions-download-artifact-8.x
JustAGhosT Mar 25, 2026
a882686
chore(deps): merge renovate/applicationinsights-3.x-lockfile
JustAGhosT Mar 25, 2026
5aadd1d
chore(deps): merge renovate/azure-ad-microsoft-authentication-library…
JustAGhosT Mar 25, 2026
ff844ca
chore(deps): merge renovate/dompurify-3.x-lockfile
JustAGhosT Mar 25, 2026
00f54d7
chore(deps): merge renovate/microsoft.documentdb-databaseaccounts-202…
JustAGhosT Mar 25, 2026
cac40b8
chore(deps): merge renovate/microsoft.documentdb-databaseaccounts-sql…
JustAGhosT Mar 25, 2026
2fc3ba5
chore(deps): merge renovate/microsoft.documentdb-databaseaccounts-sql…
JustAGhosT Mar 25, 2026
a88d828
chore(deps): merge renovate/pnpm-10.x
JustAGhosT Mar 25, 2026
8f084f7
chore(deps): merge renovate/pnpm-action-setup-digest
JustAGhosT Mar 25, 2026
fbad6f5
chore(deps): merge renovate/tempfile-3.x-lockfile
JustAGhosT Mar 25, 2026
d8c77f0
chore(deps): merge renovate/turbo-monorepo
JustAGhosT Mar 25, 2026
06cd3e2
chore(deps): merge renovate/ubuntu-24.x
JustAGhosT Mar 25, 2026
45e32f3
chore: remove stale pnpm-lock.yaml — regenerate with pnpm install
JustAGhosT Mar 25, 2026
7865825
chore(deps): merge dependabot/npm_and_yarn/azure/msal-browser-5.6.1 […
JustAGhosT Mar 25, 2026
2996dce
chore(deps): merge dependabot/npm_and_yarn/turbo-2.8.20
JustAGhosT Mar 25, 2026
b053c93
chore(deps): merge dependabot/npm_and_yarn/jsdom-29.0.1
JustAGhosT Mar 25, 2026
c3138e9
chore(deps): merge dependabot/npm_and_yarn/vitest-4.1.1 [lockfile res…
JustAGhosT Mar 25, 2026
82940c3
chore(deps): merge dependabot/npm_and_yarn/vitest/coverage-v8-4.1.1 […
JustAGhosT Mar 25, 2026
8b560ef
chore(deps): merge dependabot/npm_and_yarn/marp-team/marp-cli-4.3.1
JustAGhosT Mar 25, 2026
93210d0
chore(deps): merge dependabot/npm_and_yarn/openai-6.32.0 [lockfile re…
JustAGhosT Mar 25, 2026
848f5c7
chore(deps): merge dependabot/npm_and_yarn/typescript-eslint/parser-8…
JustAGhosT Mar 25, 2026
099415e
chore(deps): merge dependabot/cargo/gloo-timers-0.4.0
JustAGhosT Mar 25, 2026
bb02c27
chore(deps): merge dependabot/github_actions/github/codeql-action-4.34.1
JustAGhosT Mar 25, 2026
7429c0d
chore(deps): merge dependabot/cargo/sha2-0.11.0
JustAGhosT Mar 25, 2026
2b50b0c
chore(deps): merge dependabot/github_actions/azure/login-3.0.0
JustAGhosT Mar 25, 2026
1adc5b2
chore(deps): merge dependabot/npm_and_yarn/lint-staged-16.4.0
JustAGhosT Mar 25, 2026
105213a
chore(deps): merge dependabot/npm_and_yarn/dompurify-3.3.3
JustAGhosT Mar 25, 2026
20368cc
chore(deps): merge dependabot/cargo/tempfile-3.27.0
JustAGhosT Mar 25, 2026
a94dbde
chore(deps): merge dependabot/cargo/once_cell-1.21.4
JustAGhosT Mar 25, 2026
c9c8562
chore(deps): merge dependabot/github_actions/actions-rust-lang/setup-…
JustAGhosT Mar 25, 2026
19300bb
chore(deps): merge dependabot/cargo/tracing-subscriber-0.3.23
JustAGhosT Mar 25, 2026
75b59ed
chore(deps): merge dependabot/github_actions/actions/download-artifac…
JustAGhosT Mar 25, 2026
a5b7fdb
chore(deps): merge dependabot/github_actions/softprops/action-gh-rele…
JustAGhosT Mar 25, 2026
1569ed0
chore: drop pnpm-lock.yaml — regenerate with pnpm install
JustAGhosT Mar 25, 2026
8d130be
docs: reality-align business docs and team profiles for Nexamesh
JustAGhosT Mar 25, 2026
fd58c72
fix: update domain from nexamesh.com to nexamesh.ai
JustAGhosT Mar 25, 2026
41c3165
docs: update Delaware incorporation status to reflect Firstbase in-pr…
JustAGhosT Mar 25, 2026
32fdb6c
docs: promote docs-staging content to live docs (Nexamesh brand)
JustAGhosT Mar 25, 2026
5084462
refactor: complete brand alignment — Phoenix Rooivalk → NexaMesh acro…
JustAGhosT Mar 25, 2026
a4b4a8f
docs: add NexaMesh brand identity direction document
JustAGhosT Mar 25, 2026
3b02d97
design: add NexaMesh brand identity SVG assets v1.0
JustAGhosT Mar 25, 2026
918e9ce
feat: complete NexaMesh rebrand across marketing, docs, and packages
JustAGhosT Mar 25, 2026
139330a
infra: adopt naming convention v3.0 + Terragrunt for ML infra
JustAGhosT Mar 26, 2026
e4c5646
feat: align product copy to NexaMesh AI-first story + wire global CAE
JustAGhosT Mar 26, 2026
f863dcc
chore: rebrand docs, configs, and naming across remaining files
JustAGhosT Mar 26, 2026
168a802
fix: complete NexaMesh rebrand across source files and tests
JustAGhosT Mar 26, 2026
0f708cf
fix: sweep remaining SkySnare/AeroNet references from all source files
JustAGhosT Mar 26, 2026
87817b1
polish: NexaMesh content alignment — slide decks, product positioning…
JustAGhosT Mar 26, 2026
8fb7ac0
polish: marketing site content refinements
JustAGhosT Mar 26, 2026
0733dce
polish: marketing site layout, color, and content fixes
JustAGhosT Mar 26, 2026
64a68a3
feat: align product catalog between marketing and docs via shared types
JustAGhosT Mar 26, 2026
ea716f9
fix: metadata, accessibility, and legal pages in marketing
JustAGhosT Mar 26, 2026
617f0db
refactor: extract shared utilities and hooks to packages
JustAGhosT Mar 26, 2026
883230f
polish: marketing site UI refinements — layout, CSS, new components
JustAGhosT Mar 26, 2026
d2b9d80
chore: rename phoenix-docs-* localStorage keys to nexamesh-docs-*
JustAGhosT Mar 26, 2026
1772863
test: add catalog integrity checks for docs product catalog
JustAGhosT Mar 26, 2026
1327cd2
fix(deps): patch 17 Dependabot vulnerabilities via overrides and carg…
JustAGhosT Mar 26, 2026
fb754a7
feat: add NexaMeshOrb hero visual + split hero layout
JustAGhosT Mar 26, 2026
4365f29
feat: add Graphite-inspired home page enhancements
JustAGhosT Mar 26, 2026
e93b6a3
infra: migrate Azure Bicep to Terragrunt modules
JustAGhosT Mar 26, 2026
f42b051
infra(cost): optimize all envs for free tier and zero idle spend
JustAGhosT Mar 26, 2026
6ad272b
infra(dev): switch Cosmos DB to serverless, drop free-tier flag
JustAGhosT Mar 26, 2026
8972e27
ci: add Terragrunt plan/apply workflow for nexamesh-core
JustAGhosT Mar 26, 2026
37a706a
ci: fix action SHAs in infra-terragrunt workflow
JustAGhosT Mar 26, 2026
43ce399
fix(infra): rename root.terragrunt.hcl → terragrunt.hcl
JustAGhosT Mar 26, 2026
c351d5a
fix(infra): replace removed overwrite_terraformignore with overwrite
JustAGhosT Mar 26, 2026
69c21a4
fix(infra): use double-slash source path so Terragrunt copies all sib…
JustAGhosT Mar 26, 2026
a3ae558
fix(ci): remove environment: gate from apply job to match OIDC federa…
JustAGhosT Mar 26, 2026
59e35f8
fix(infra): expand multi-attribute index blocks to multi-line in cosm…
JustAGhosT Mar 26, 2026
04acfef
fix(infra): resolve all terraform plan errors across three modules
JustAGhosT Mar 26, 2026
afba4a3
fix(infra): use eastus2 for SWAs and add KV Secrets Officer role
JustAGhosT Mar 26, 2026
d83012d
fix(infra): add create_functions toggle; disable in dev (Y1 quota = 0)
JustAGhosT Mar 26, 2026
b532cba
feat(ci): auto-sync SWA deployment tokens to GitHub Secrets after apply
JustAGhosT Mar 26, 2026
91ee9ca
fix(ci): store SWA tokens in Key Vault instead of GitHub Secrets
JustAGhosT Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .claude/agents/engineering/devops.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ You are a senior DevOps engineer managing this workspace's infrastructure:

Key constraints:

- pnpm 9.6.0 enforced via corepack
- pnpm 10.31.0 enforced via corepack (packageManager in root package.json)
- Turborepo 2.7 for JS/TS build orchestration
- Rust CI needs Linux GUI deps for Tauri (GTK, webkit, appindicator)
- Cargo audit currently skipped in CI (CVSS 4.0 support pending)
Expand Down
2 changes: 1 addition & 1 deletion .claude/agents/engineering/frontend-specialist.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ stack:
- **Next.js 16** marketing site (`apps/marketing/`) — static export, React 19
- **Docusaurus 3** docs portal (`apps/docs/`) — Azure Functions backend
- **Leptos WASM** threat simulator (`apps/threat-simulator-desktop/`)
- **Shared packages**: `@phoenix-rooivalk/types`, `ui`, `utils`
- **Shared packages**: `@nexamesh/types`, `ui`, `utils`

Key constraints:

Expand Down
4 changes: 2 additions & 2 deletions .claude/agents/marketing/content-strategist.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ model: sonnet
---

You are a content strategist for a dual-brand counter-UAS defense platform
(SkySnare consumer / AeroNet enterprise). The marketing site is a Next.js 16
(Kestrel Mesh consumer / Sentinel Ring enterprise). The marketing site is a Next.js 16
static export at `apps/marketing/`.

Content infrastructure you manage:
Expand All @@ -21,7 +21,7 @@ Content infrastructure you manage:

When working on content:

1. Maintain dual-brand voice (SkySnare = accessible sports; AeroNet =
1. Maintain dual-brand voice (Kestrel Mesh = accessible; Sentinel Ring =
enterprise)
2. Defense terminology must be accurate but accessible
3. SEO: every page needs title, description, Open Graph, and canonical URL
Expand Down
4 changes: 2 additions & 2 deletions .claude/agents/marketing/market-finder.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ Canonical market and competitor data (docs-side):

Market segments:

1. **Consumer sports/training** (SkySnare) — Drone racing, hobby events
2. **Critical infrastructure** (AeroNet) — Airports, power plants, prisons
1. **Consumer sports/training** (Kestrel Mesh) — Consumer detection, hobby events
2. **Critical infrastructure** (Sentinel Ring) — Airports, power plants, prisons
3. **Government/military** — SBIR, DoD, law enforcement
4. **Events/venues** — Stadiums, concerts, VIP protection
5. **Agriculture** — Crop protection, livestock monitoring
Expand Down
4 changes: 2 additions & 2 deletions .claude/agents/product/product-manager.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ Product infrastructure:

- **Product catalog** (`apps/marketing/src/data/products.ts`): 24 products with
SKU, pricing, COGS, margins, specs, phase tracking
- **Product lines**: SkySnare (1), NetSnare (3), SkyWatch (8), NetSentry (3),
AeroNet (2), RKV (3) — 24 total
- **Product lines**: KestrelMesh (1), NetSnare (3), SkyWatch (8), NetSentry (3),
SentinelRing (2), RKV (3) — 24 total
- **Categories**: consumer, prosumer, enterprise, military
- **Phases**: seed, series-a, series-b, series-c, scale
- **Docs-side data** (`apps/docs/src/data/`): Canonical business numbers
Expand Down
4 changes: 2 additions & 2 deletions .claude/agents/product/product-pricer.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@ Product economics schema per product:

Product lines and categories:

- **SkySnare** (consumer): Entry-level, highest volume, lowest margin
- **Kestrel Mesh** (consumer): Entry-level, highest volume, lowest margin
- **NetSnare** (prosumer): Mid-range, hobby/small-business
- **SkyWatch** (prosumer): Surveillance-focused
- **NetSentry** (enterprise): Perimeter security, recurring revenue
- **AeroNet** (enterprise): Full AI-enabled platform, highest margin
- **Sentinel Ring** (enterprise): Full AI-enabled platform, highest margin
- **RKV** (military): Specialized, government contract pricing

x402 API pricing tiers:
Expand Down
2 changes: 1 addition & 1 deletion .claude/rules/typescript.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ paths:
- WCAG AA+ accessibility: ARIA labels, keyboard navigation, 4.5:1 contrast
- ESLint security plugin enabled — no `dangerouslySetInnerHTML`, no `eval`
- Cross-package imports use workspace protocol:
`"@phoenix-rooivalk/types": "workspace:*"`
`"@nexamesh/types": "workspace:*"`
- Path aliases: `@/*` maps to `./src/*` in marketing app
- Next.js marketing is static export (`output: "export"`) — no SSR, no API
routes, no server components
Expand Down
13 changes: 13 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"permissions": {
"allow": [
"Bash(cd /c/Users/smitj/repos/phoenix-rooivalk git add apps/docs/docs/technical/control/ apps/docs/docs/technical/hardware/board-bringup-and-flashing.mdx apps/docs/docs/technical/hardware/index.mdx apps/docs/docs/technical/hardware/power-budgeting-and-rail-isolation.mdx apps/docs/docs/technical/hardware/prototype-compute-tiers.mdx apps/docs/docs/technical/hardware/salvage-and-zero-budget-hardware.mdx apps/docs/docs/technical/hardware/servo-selection-and-calibration.mdx apps/docs/docs/technical/hardware/phase1/avoid-list.mdx apps/docs/docs/technical/hardware/phase1/buy-now-vs-later.mdx apps/docs/docs/technical/hardware/phase1/safety-boundary.mdx apps/docs/docs/technical/hardware/phase1/platform-bom-v1.mdx apps/docs/docs/technical/architecture/interfaces/ apps/docs/docs/technical/architecture/adr-0202-x402-data-marketplace.mdx apps/docs/docs/operations/runbooks/ apps/docs/docs/business/prd/depin-network-strategy.mdx apps/docs/docs/business/prd/data-marketplace-prd.mdx apps/docs/docs/business/prd/partnership-strategy.mdx apps/docs/docs/legal/compliance/ apps/docs/sidebars.ts __NEW_LINE_f00f39e4ca34aa14__ git status --short)",
"Bash(curl -s -X POST \"https://stitch.googleapis.com/mcp\" -H \"Content-Type: application/json\" -H \"X-Goog-Api-Key: AQ.Ab8RN6J2ikC8PyiV8XZjdsHIKOLtcve88czpBa1TExnc_-SZng\" -d '{\"\"\"\"jsonrpc\"\"\"\":\"\"\"\"2.0\"\"\"\",\"\"\"\"id\"\"\"\":20,\"\"\"\"method\"\"\"\":\"\"\"\"tools/list\"\"\"\",\"\"\"\"params\"\"\"\":{}}')",
"Bash(python3 -c \"import sys,json; tools=json.load\\(sys.stdin\\)[''''result''''][''''tools'''']; [print\\(t[''''name'''']\\) for t in tools]\")"
]
},
"enabledMcpjsonServers": [
"stitch"
],
"enableAllProjectMcpServers": true
}
6 changes: 3 additions & 3 deletions .github/workflows/ci-marketing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4

- name: Setup Rust (for threat-simulator-desktop WASM dependencies)
uses: dtolnay/rust-toolchain@stable
Expand All @@ -52,9 +52,9 @@ jobs:
fi

- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: "20"
node-version: "24"
package-manager-cache: false

- name: Install dependencies
Expand Down
36 changes: 10 additions & 26 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,8 @@
name: "CodeQL Security Analysis"

on:
push:
branches: ["main"]
paths:
- "**/*.ts"
- "**/*.tsx"
- "**/*.js"
- "**/*.jsx"
- "**/*.rs"
- ".github/workflows/codeql.yml"
pull_request:
branches: ["main"]
paths:
- "**/*.ts"
- "**/*.tsx"
- "**/*.js"
- "**/*.jsx"
- "**/*.rs"
- ".github/workflows/codeql.yml"
# Reduced to weekly + manual to cut GitHub Actions costs
# Was running on every push/PR including Renovate bot
schedule:
- cron: "30 2 * * 1" # Weekly on Monday at 2:30 AM UTC
workflow_dispatch:
Expand Down Expand Up @@ -76,7 +60,7 @@ jobs:
if:
${{ steps.codeql-check.outputs.enabled == 'true' && matrix.language ==
'rust' }}
uses: actions-rust-lang/setup-rust-toolchain@a0b538fa0b742a6aa35d6e2c169b4bd06d225a98 # v1
uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1
with:
toolchain: stable
components: rustfmt, clippy
Expand All @@ -85,13 +69,13 @@ jobs:
if:
${{ steps.codeql-check.outputs.enabled == 'true' && matrix.language ==
'rust' }}
uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2
uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
with:
shared-key: codeql-rust

- name: Setup pnpm
if: matrix.language == 'javascript-typescript'
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4

- name: Generate lockfile if missing
if: matrix.language == 'javascript-typescript'
Expand All @@ -103,9 +87,9 @@ jobs:

- name: Setup Node.js
if: matrix.language == 'javascript-typescript'
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: "20"
node-version: "24"
package-manager-cache: false

- name: Install dependencies
Expand All @@ -116,15 +100,15 @@ jobs:

- name: Initialize CodeQL
if: steps.codeql-check.outputs.enabled == 'true'
uses: github/codeql-action/init@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4
uses: github/codeql-action/init@38697555549f1db7851b81482ff19f1fa5c4fedc # v4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: .github/codeql-config.yml

- name: Perform CodeQL Analysis
if: steps.codeql-check.outputs.enabled == 'true'
uses: github/codeql-action/analyze@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4
uses: github/codeql-action/analyze@38697555549f1db7851b81482ff19f1fa5c4fedc # v4
with:
category: "/language:${{matrix.language}}"
upload: false
Expand All @@ -133,7 +117,7 @@ jobs:
- name: Upload SARIF results (non-fatal)
if: steps.codeql-check.outputs.enabled == 'true'
continue-on-error: true
uses: github/codeql-action/upload-sarif@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4
uses: github/codeql-action/upload-sarif@38697555549f1db7851b81482ff19f1fa5c4fedc # v4
with:
sarif_file: codeql-results.sarif
checkout_path: ${{ github.workspace }}
Expand Down
28 changes: 12 additions & 16 deletions .github/workflows/deploy-azure-functions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -150,15 +150,15 @@ jobs:
echo "::error:: 2. Delete the AZURE_FUNCTIONAPP_NAME secret"
echo "::error:: 3. Go to Variables tab → New repository variable"
echo "::error:: 4. Name: AZURE_FUNCTIONAPP_NAME"
echo "::error:: 5. Value: Your function app name (e.g., phoenix-rooivalk-functions)"
echo "::error:: 5. Value: Your function app name (e.g., nex-dev-docs-func)"
MISCONFIG_WARNINGS="${MISCONFIG_WARNINGS}\n ⚠️ AZURE_FUNCTIONAPP_NAME is set as a SECRET but should be a VARIABLE"
echo "::warning::AZURE_FUNCTIONAPP_NAME is configured as a secret but should be a variable. Delete the secret and set it as a variable instead."
else
echo "::error::To fix: Add AZURE_FUNCTIONAPP_NAME as a repository VARIABLE (not secret)"
echo "::error:: 1. Go to Settings → Secrets and variables → Actions → Variables tab"
echo "::error:: 2. Click 'New repository variable'"
echo "::error:: 3. Name: AZURE_FUNCTIONAPP_NAME"
echo "::error:: 4. Value: Your function app name (e.g., phoenix-rooivalk-functions)"
echo "::error:: 4. Value: Your function app name (e.g., nex-dev-docs-func)"
fi
else
echo "✅ AZURE_FUNCTIONAPP_NAME is configured: ${{ vars.AZURE_FUNCTIONAPP_NAME }}"
Expand Down Expand Up @@ -397,14 +397,12 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: ${{ env.NODE_VERSION }}

- name: Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
with:
version: 9.15.9
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4

- name: Install dependencies
run: pnpm install --no-frozen-lockfile
Expand Down Expand Up @@ -499,13 +497,13 @@ jobs:
url: https://${{ vars.AZURE_FUNCTIONAPP_NAME }}.azurewebsites.net
steps:
- name: Download build artifact
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: azure-functions-build
path: deploy-package

- name: Azure Login
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2
uses: azure/login@532459ea530d8321f2fb9bb10d1e0bcf23869a43 # v3.0.0
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}

Expand Down Expand Up @@ -535,14 +533,14 @@ jobs:
echo "Configuring CORS for Azure Functions..."
az functionapp cors add \
--name "${{ vars.AZURE_FUNCTIONAPP_NAME }}" \
--resource-group "${{ vars.AZURE_RESOURCE_GROUP || 'dev-euw-rg-rooivalk' }}" \
--allowed-origins "https://docs.phoenixrooivalk.com" "https://phoenixrooivalk.com" "http://localhost:3000" "http://localhost:3001" \
--resource-group "${{ vars.AZURE_RESOURCE_GROUP || 'nex-dev-rg' }}" \
--allowed-origins "https://docs.nexamesh.ai" "https://nexamesh.ai" "http://localhost:3000" "http://localhost:3001" \
2>/dev/null || echo "CORS origins may already exist"

# Enable credentials
az functionapp cors credentials \
--name "${{ vars.AZURE_FUNCTIONAPP_NAME }}" \
--resource-group "${{ vars.AZURE_RESOURCE_GROUP || 'dev-euw-rg-rooivalk' }}" \
--resource-group "${{ vars.AZURE_RESOURCE_GROUP || 'nex-dev-rg' }}" \
--enable true \
2>/dev/null || echo "CORS credentials already enabled"

Expand Down Expand Up @@ -597,7 +595,7 @@ jobs:
env:
COSMOS_DB_CONNECTION_STRING:
${{ secrets.COSMOS_DB_CONNECTION_STRING }}
COSMOS_DB_DATABASE: phoenix-docs
COSMOS_DB_DATABASE: nexamesh-docs
run: |
echo "🌱 Seeding known emails to Cosmos DB..."
npm install @azure/cosmos --no-save
Expand Down Expand Up @@ -642,14 +640,12 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: ${{ env.NODE_VERSION }}

- name: Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
with:
version: 9.15.9
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4

- name: Install dependencies
run: pnpm install --no-frozen-lockfile
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/deploy-docs-azure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,12 +165,12 @@ jobs:
lfs: false

- name: Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4

- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: "20"
node-version: "24"

- name: Install dependencies
working-directory: ${{ env.APP_LOCATION }}
Expand Down Expand Up @@ -345,12 +345,12 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup pnpm
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v4

- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: "20"
node-version: "24"

- name: Install Azure Functions dependencies
working-directory: apps/docs/azure-functions
Expand Down Expand Up @@ -380,7 +380,7 @@ jobs:
echo "✅ Deployment package created"

- name: Azure Login
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2
uses: azure/login@532459ea530d8321f2fb9bb10d1e0bcf23869a43 # v3.0.0
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}

Expand Down
Loading
Loading