Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
8685f24
updates dev environment
lePereT Jan 20, 2026
28cb399
updates dev environment
lePereT Jan 21, 2026
b5fe061
move dependencies, pin fibers v0.6, bus v0.3.1 and trie v0.3
lePereT Jan 21, 2026
a2b59fe
first steps
lePereT Jan 23, 2026
a772679
remove unchanges files for clarity
lePereT Jan 23, 2026
b7a47e0
add planned hal file structure
rslater-cs Feb 3, 2026
024a3c5
Moved and annotated cache
rslater-cs Feb 5, 2026
9f0787c
Type system for HAL core, capabilities, modems and external use (capa…
rslater-cs Feb 5, 2026
3c2b061
HAL core, basic handling of caps and devs
rslater-cs Feb 5, 2026
c8bc5ef
updated HAL structure
rslater-cs Feb 6, 2026
3e5b3ea
log service just to get logs for now
rslater-cs Feb 17, 2026
849b806
service scope monitoring
rslater-cs Feb 17, 2026
74a9ee3
proper rpc endpoints and crash reporting
rslater-cs Feb 17, 2026
e1cd55c
channel metatable for validation
rslater-cs Feb 17, 2026
6b9f7d8
more capability opt types
rslater-cs Feb 17, 2026
f1f7540
cache bug fix on timeout
rslater-cs Feb 17, 2026
dc47b77
linting and type detection
rslater-cs Feb 17, 2026
f3c2612
Added HAL bootstrap and config loading
rslater-cs Feb 20, 2026
d6908a3
filesystem driver and manager
rslater-cs Feb 20, 2026
b705e11
Added filesystem cap
rslater-cs Feb 20, 2026
d3386c9
Added filesystem opts
rslater-cs Feb 20, 2026
2b9734f
Manager annotation update
rslater-cs Feb 20, 2026
8efb2ba
Cache now stores tables as-is
rslater-cs Feb 20, 2026
9303708
better logging + retain state and meta
rslater-cs Mar 4, 2026
43c8b45
config service to work with HAL bootstrapping
rslater-cs Mar 12, 2026
9ec5714
remove outdated submodule entries for local-ui and lua-fibers
rslater-cs Mar 13, 2026
56ccecc
enhance main.lua: improve path handling and error logging in service …
rslater-cs Mar 13, 2026
44634a9
bug fix for unapplied HAL manager configs
rslater-cs Mar 16, 2026
ed1ad78
add initial implementation of authz and service base modules; refacto…
rslater-cs Mar 27, 2026
c6d8069
refactor config service: implement codec and state helpers for improv…
rslater-cs Mar 27, 2026
ece0cce
refactor: enhance HAL service structure with improved logging and con…
rslater-cs Mar 27, 2026
13d831a
feat: add capability sdk
rslater-cs Mar 27, 2026
9dac199
refactor: remove log service implementation and enhance monitor servi…
rslater-cs Mar 27, 2026
865bdd7
refactor: restructure config.json for new config service
rslater-cs Mar 27, 2026
9f16160
refactor: replace custom logging function with direct logger calls in…
rslater-cs Mar 30, 2026
f837cfb
Remove obsolete test files for modem driver, modem card manager, serv…
rslater-cs Mar 31, 2026
21f53b9
feat: add initial support files for testing with bus and HAL function…
rslater-cs Mar 31, 2026
331910b
refactor: remove obsolete test files and utilities for modem and shim…
rslater-cs Mar 31, 2026
848fd58
feat: add integration and unit tests for config and main services
rslater-cs Mar 31, 2026
3aec893
refactor: remove unused hal_wait_tick_s variable and format control c…
rslater-cs Mar 31, 2026
91905f7
feat: set environment variable CONFIG_TARGET for service configuration
rslater-cs Mar 31, 2026
586d1b9
feat: enhance FakeHal with capability RPC handling and state management
rslater-cs Mar 31, 2026
b882af5
refactor: update references from 'config' to 'cfg' for consistency in…
rslater-cs Mar 31, 2026
58bf4a0
refactor: adjust indentation and enhance logging for capability regis…
rslater-cs Apr 2, 2026
a20acce
refactor CapabilityReference: add opts parameter to call_control_op f…
rslater-cs Apr 2, 2026
daa0c09
added options for state and event subs
rslater-cs Apr 7, 2026
4fb8687
HAL docs - Manager, Driver, Capability, Backend
rslater-cs Apr 9, 2026
3c1beb5
refactor README.md: reorganize sections and remove make script refere…
rslater-cs Apr 9, 2026
be91580
runtime proposal
rslater-cs Apr 9, 2026
4af4d5f
added vendor versions
rslater-cs Apr 9, 2026
045a31e
System migration (#184)
rslater-cs Apr 9, 2026
954b980
Changed template to remove luajit only features
rslater-cs Apr 15, 2026
19de07a
better error message
rslater-cs Apr 17, 2026
8558dbc
linting fixes
rslater-cs Apr 15, 2026
4c2603b
Migration to bus v0.6.1 (#188)
lePereT Apr 16, 2026
ea57ce1
Refactor system configuration to include schema and restructure alarms
rslater-cs Apr 22, 2026
c1d0de1
Test harness fix (#198)
lePereT Apr 23, 2026
ce7321d
Refactors the devhost test diagnostics (#199)
lePereT Apr 23, 2026
009cd05
compatibility: add richer service-base lifecycle and raw-host HAL cap…
lePereT May 13, 2026
dde24e3
adopts fibers v0.9.1
lePereT May 13, 2026
d8fbd7c
hal: adds op-only drivers and managers (#232)
lePereT May 13, 2026
b4ed397
fabric: adds fabric service + tests (#233)
lePereT May 13, 2026
09da40f
device: adds device service + tests (#234)
lePereT May 13, 2026
a402f29
update: adds update service + tests (#235)
lePereT May 13, 2026
897f982
http: adds http service + tests (#236)
lePereT May 13, 2026
77ced36
ui: adds ui service + tests (#237)
lePereT May 13, 2026
c1bad37
Gsm migration (#181)
rslater-cs May 14, 2026
a50f7e6
Time migration (#177)
rslater-cs May 14, 2026
24bbe1c
better ui state reporting and reprojection fix (#238)
lePereT May 14, 2026
5437d52
http: removes the premature request and response registry (#239)
lePereT May 14, 2026
332366e
cleans up http entry + lifecycle publication, ui lifecycle publicatio…
lePereT May 14, 2026
fcd89d5
Makefile migration (#200)
rslater-cs May 15, 2026
190d8b9
Metrics migration (#180)
rslater-cs May 15, 2026
57bea84
Uci singleton (#192)
rslater-cs May 15, 2026
4eb0d2c
Wifi migration (#194)
rslater-cs May 15, 2026
7d079af
Add OpenWrt VM integration test lane for HAL networking work (#242)
lePereT May 16, 2026
a3d8990
system: time and metrics fixes (#244)
rslater-cs May 18, 2026
a8d77f5
http: propagate bus request cancellation into admitted scoped work (#…
lePereT May 18, 2026
1ab26aa
core: adopt cross-boundary cancellation fully (#252)
lePereT May 18, 2026
667cdc2
net; wired: adds net and wired services with hal OpenWrt network prov…
lePereT May 18, 2026
e89e09d
fabric: adds fabric proto docs + tests (#253)
lePereT May 19, 2026
4f92ccf
config: adds tests, docs (#254)
lePereT May 19, 2026
ec6e7a2
Setup shared path for lua http and .init at root (#245)
rslater-cs May 19, 2026
33bc465
http: bus: fix hidden HTTP-over-bus timeouts. (#255)
lePereT May 19, 2026
2bd8de0
update: full working end to end version (#257)
lePereT May 20, 2026
e497bcc
metrics: use http service for publishing cloud metrics (#256)
rslater-cs May 20, 2026
e50eb6d
core: make service startup dependency-aware across modern services (#…
lePereT May 21, 2026
4303393
configs update for hal, metrics, wifi, gsm (#259)
rslater-cs May 21, 2026
0ddf58f
prevents spurious publishes by ui (#261)
lePereT May 21, 2026
6aad1e4
stops passing unsupported options to fw4 (#262)
lePereT May 21, 2026
6329241
config: add sysmon configuration to bigbox-v1-cm-2.json (#263)
rslater-cs May 22, 2026
19afe27
net: generate OpenWrt config and calibrate WAN weights (#264)
lePereT May 28, 2026
08c21d5
hal: add validation for UCI section types to support hyphens (#265)
rslater-cs May 29, 2026
efaed33
Makefile replace constants (#268)
rslater-cs May 29, 2026
3b62c6b
main: make root path an unconditional package path (#273)
rslater-cs Jun 5, 2026
2e798bb
main: add exit grace period before service cancellation (#272)
rslater-cs Jun 5, 2026
9a94382
mcu update: minimal hardening and proof (#274)
lePereT Jun 8, 2026
a52d30c
updates bus and fibers to 0.8.2 and 0.9.3 (#276)
lePereT Jun 8, 2026
345b23c
fixes racy tests (#266)
lePereT Jun 8, 2026
9b48589
fix: update metrics service to use 'credentials' path instead of 'con…
rslater-cs Jun 11, 2026
1aa9e88
terminates abandoned http object immediately (#277)
lePereT Jun 16, 2026
89b60e1
wired: implement wired and switch driver (#249)
cpunt Jun 17, 2026
a9bf8e0
main: allow configurable exit grace period (#279)
rslater-cs Jun 19, 2026
7e7228b
bumps fibers to 0.10 (#283)
lePereT Jun 23, 2026
862939e
Speedtest metrics (#278)
rslater-cs Jun 23, 2026
15782e6
switch: makes driver architecture compliant (#282)
lePereT Jun 23, 2026
42f27ce
http, ui: reduces service observability noise (#284)
lePereT Jun 23, 2026
1749e4e
gsm: wann_type, state metrics (#288)
rslater-cs Jun 25, 2026
a5ef5da
net: metrics (#287)
rslater-cs Jun 25, 2026
45e8376
mcu: update reliability, Fabric transfer observability, and retained …
lePereT Jun 29, 2026
4c03ed4
updates tests, makes explicit policy required (#289)
lePereT Jun 29, 2026
de44036
policy-driven bundled MCU firmware updates (#290)
lePereT Jun 30, 2026
763c24b
hal,http,switch: improves process ownership and shutdown behaviour (#…
lePereT Jul 3, 2026
88051c2
calms control plane: reduces retained-state churn and fixes hal apply…
lePereT Jul 3, 2026
8727094
shaping: adds canonical OpenWrt WAN and segment shaping (#295)
lePereT Jul 5, 2026
30c469e
Monitor pass (#296)
lePereT Jul 6, 2026
fdb8d81
ui: consolidate retained connectivity state and local UI delivery (#291)
cpunt Jul 7, 2026
831c949
net: stabilises backhaul modelling (#301)
lePereT Jul 8, 2026
55fcd85
device: publish MCU metrics (#299)
cpunt Jul 8, 2026
70f1c8f
gsm, hal, ui: apn editor fix (#300)
rslater-cs Jul 8, 2026
cc4af5c
build: point local ui to dev
cpunt Jul 8, 2026
c8ad427
hal: moves to lifecycle pump, generations (#303)
lePereT Jul 8, 2026
6b64eee
changes default traffic shaping to 500/250
lePereT Jul 8, 2026
10e6dc3
migration: reconcile rebased tree
cpunt Jul 22, 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
  •  
  •  
  •  
25 changes: 0 additions & 25 deletions .devcontainer/Dockerfile

This file was deleted.

12 changes: 4 additions & 8 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
{
"name": "devicecode-lua",
"build": {
"dockerfile": "Dockerfile"
},
"image": "ghcr.io/jangala-dev/mini-lua-image:latest",
"remoteUser": "vscode",
"postCreateCommand": "bash .devcontainer/postCreateCommand.sh",
"forwardPorts": [
8081
8081,
2222,
2242
],
"customizations": {
"vscode": {
"extensions": [
"ms-azuretools.vscode-docker",
"ms-vscode-remote.remote-containers",
"waderyan.gitblame",
"sumneko.lua",
"rog2.luacheck",
"tomblind.local-lua-debugger-vscode",
"bierner.markdown-mermaid"
]
}
Expand Down
104 changes: 60 additions & 44 deletions .devcontainer/postCreateCommand.sh
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,46 +1,62 @@
#!/bin/sh

sudo apt update -y

sudo apt install -y apt-utils unzip curl wget git build-essential libreadline-dev dialog libssl-dev m4 openssl

# install core lua packages

sudo apt install -y lua5.1 liblua5.1-dev luarocks lua-dkjson

cd /tmp
sudo rm -rf LuaJIT
git clone -b v2.1.ROLLING https://github.com/LuaJIT/LuaJIT.git
cd LuaJIT
make -j$(nproc)
sudo make install
# Find the latest installed luajit binary under /usr/local/bin
latest=$(ls -1 /usr/local/bin/luajit-2.1.* | sort | tail -n 1)
# Symlink it to /usr/local/bin/luajit
sudo ln -sf "$latest" /usr/local/bin/luajit
sudo ldconfig

# install luarocks packages
sudo luarocks install bit32
sudo luarocks install cqueues
sudo luarocks install http
sudo luarocks install luaposix
sudo luarocks install luacheck
sudo luarocks install lua-cjson
sudo luarocks install dkjson
sudo luarocks install luaunit

# install cffi-lua
sudo apt install -y meson pkg-config cmake libffi-dev

cd /tmp
sudo rm -rf cffi-lua
git clone https://github.com/q66/cffi-lua
mkdir cffi-lua/build
cd cffi-lua/build
sudo meson .. -Dlua_version=5.1 --buildtype=release
sudo ninja all
sudo ninja test
sudo cp cffi.so /usr/local/lib/lua/5.1/cffi.so
#!/usr/bin/env sh
set -eu

echo "[devcontainer] preparing OpenWrt VM test tools"

if command -v apt-get >/dev/null 2>&1; then
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
curl \
ca-certificates \
gzip \
openssh-client \
rsync \
socat \
qemu-system-x86 \
qemu-system-arm \
qemu-utils \
ovmf \
qemu-efi-aarch64 \
make \
iproute2 \
iputils-ping \
busybox \
dnsutils \
wget \
tcpdump \
cloud-image-utils \
genisoimage
elif command -v apk >/dev/null 2>&1; then
sudo apk add --no-cache \
curl \
ca-certificates \
gzip \
openssh-client \
rsync \
socat \
qemu-system-x86_64 \
qemu-system-aarch64 \
qemu-img \
ovmf \
edk2-aarch64 \
make \
iproute2 \
iputils \
busybox \
bind-tools \
wget \
tcpdump \
xorriso
else
echo "[devcontainer] unsupported base image: no apt-get or apk found" >&2
exit 1
fi

# Privileged OpenWrt dataplane tests are run inside the optional network-lab VM.
# The top-level devcontainer is intentionally unprivileged so normal development
# and fast CI jobs do not inherit bridge/tap/netns permissions.
mkdir -p tests/integration/openwrt_vm/{images,work,scripts,tests}

echo "[devcontainer] OpenWrt VM tools ready"

exit 0
8 changes: 4 additions & 4 deletions .env
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FIBERS_VER=43a04d1
TRIE_VER=28b3572
BUS_VER=89af71a
UI_VER=f424ac2
FIBERS_VER=30353346ca58c3662b9942f62ff4a9610f8ab8cb
TRIE_VER=v0.3
BUS_VER=v0.8.2
UI_VER=c4451f4f386f5e47a13e8689a0bbf587031e34b2
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ scratchpad
src/services/modem-*
docs/
build/
.env.secret
local-ui/
src/services/ui/www/
15 changes: 6 additions & 9 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
[submodule "src/lua-fibers"]
path = src/lua-fibers
[submodule "vendor/lua-fibers"]
path = vendor/lua-fibers
url = https://github.com/jangala-dev/lua-fibers.git
[submodule "src/lua-trie"]
path = src/lua-trie
[submodule "vendor/lua-trie"]
path = vendor/lua-trie
url = https://github.com/jangala-dev/lua-trie.git
[submodule "src/lua-bus"]
path = src/lua-bus
[submodule "vendor/lua-bus"]
path = vendor/lua-bus
url = https://github.com/jangala-dev/lua-bus.git
[submodule "src/services/ui/local-ui"]
path = src/services/ui/local-ui
url = https://github.com/jangala-dev/local-ui.git
32 changes: 32 additions & 0 deletions .luarc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",

"runtime.version": "LuaJIT",

"runtime.path": [
"src/?.lua",
"src/?/init.lua",

"vendor/lua-fibers/src/?.lua",
"vendor/lua-fibers/src/?/init.lua",

"vendor/lua-bus/src/?.lua",
"vendor/lua-bus/src/?/init.lua",

"vendor/lua-trie/src/?.lua",
"vendor/lua-trie/src/?/init.lua"
],

"workspace.library": [
"src",
"vendor/lua-fibers/src",
"vendor/lua-bus/src",
"vendor/lua-trie/src"
],

"workspace.checkThirdParty": false,
"workspace.maxPreload": 10000,

"diagnostics.enable": true,
"diagnostics.workspaceDelay": -1
}
26 changes: 26 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Debug Lua Interpreter",
"type": "lua-local",
"request": "launch",
"program": {
"lua": "lua",
"file": "${file}"
}
},
{
"name": "Debug Custom Lua Environment",
"type": "lua-local",
"request": "launch",
"program": {
"command": "command"
},
"args": []
}
]
}
3 changes: 0 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,7 @@
"[lua]": {
"editor.tabSize": 4
},
"Lua.workspace.checkThirdParty": false,
"Lua.workspace.maxPreload": 0,
"Lua.diagnostics.workspaceDelay": -1,
"Lua.workspace.library": [],
"Lua.diagnostics.enable": true,
"cSpell.words": [
"autopin",
Expand Down
Loading