Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
734 commits
Select commit Hold shift + click to select a range
d8bab97
removed running booolean onlu using thread safe threading event
mustafab0 Nov 20, 2025
b5b1b26
fix imports
paul-nechifor Nov 19, 2025
bfac74d
ruff/mypy fixes
paul-nechifor Nov 19, 2025
a708e56
fixed conflict markers after rebase
mustafab0 Dec 2, 2025
e300b19
Fix typing.List derecation
mustafab0 Dec 2, 2025
657b141
added xarm sdk to pyproject.toml
mustafab0 Dec 2, 2025
650914d
restructured hardware folder
mustafab0 Oct 22, 2025
0b75143
added custom messages for robot state and joint commands
mustafab0 Oct 24, 2025
6baf677
added all api calls as rpc calls
mustafab0 Oct 25, 2025
bac611d
ruff/mypy fixes
paul-nechifor Nov 19, 2025
c3ee361
added cartesian motor controller
mustafab0 Nov 20, 2025
0cb1be4
cartesian motion controller listens to LCM topic /target_pose
mustafab0 Nov 21, 2025
d836c17
removed deprecated test files from the arm driver
mustafab0 Nov 21, 2025
ed6039c
added xarm driver blueprint
mustafab0 Nov 21, 2025
bd3a93e
added blue print for running cartesian motion controller
mustafab0 Nov 21, 2025
2893c80
CI code cleanup
mustafab0 Nov 21, 2025
19dbb7e
restructured manipulation/control folder
mustafab0 Nov 21, 2025
774edab
Important message types for trajectory controller
mustafab0 Nov 21, 2025
03cdf38
simple trajectory controller subscribes to LCM trajectory topic and e…
mustafab0 Nov 21, 2025
d0a42c7
added a simple trajectory generator that creates a trapezoidal motion…
mustafab0 Nov 21, 2025
ef9b3a8
simple trajectory setter to add waypoints for trajectory generation
mustafab0 Nov 21, 2025
9e6b279
created a blueprint for the joint controller
mustafab0 Nov 21, 2025
55a8bfa
replaced hardcoded arm DOF with calculating on receiving joint states
mustafab0 Nov 28, 2025
767b0b4
CI code cleanup
mustafab0 Nov 28, 2025
f11e76a
fixed deprecation and method mismatch
mustafab0 Dec 2, 2025
8a1ea19
Fix duplicate imports in gstreamer_camera_test_script
mustafab0 Dec 2, 2025
07210d0
updated driver to work with all xarm
mustafab0 Dec 2, 2025
8bb872d
basic realtime piper driver implemented
mustafab0 Dec 3, 2025
6943821
deleted old piper_arm driver
mustafab0 Dec 3, 2025
ca4d54c
added rpc methods for the piper sdk api as mixins
mustafab0 Dec 3, 2025
519657c
piper blueprints added
mustafab0 Dec 4, 2025
5c482ba
basic test files for checking driver performance
mustafab0 Dec 4, 2025
7be1405
genreawlized trajectory setter
mustafab0 Dec 6, 2025
503f55c
added piper readme
mustafab0 Dec 6, 2025
881b18d
removed temp test files for the driver
mustafab0 Dec 6, 2025
9f2ec3a
defined a component based architecture for general arm driver
mustafab0 Dec 6, 2025
b96c498
universal manipulator driver spec defined
mustafab0 Dec 6, 2025
45f5c65
generic ManipulatorDriver which all manipulators inherit from
mustafab0 Dec 6, 2025
8cdd25d
utils setup for base driver
mustafab0 Dec 6, 2025
69bc456
rpc components added to interface with arm specific SDK APIs
mustafab0 Dec 6, 2025
fde4b66
renamed xarm specific driver to driver old
mustafab0 Dec 6, 2025
d303a6c
new xarm driver inherits from BasreManipulatorDriver class
mustafab0 Dec 6, 2025
aa14ce4
xarm SDK wrapper that translates dimos commands to arm specific comma…
mustafab0 Dec 6, 2025
8de983c
xarm blueprints added
mustafab0 Dec 6, 2025
428f883
renamed old priper driver
mustafab0 Dec 6, 2025
3d7a90e
new piper driver inherits from base manipulator driver
mustafab0 Dec 6, 2025
1aae6ad
added piper driver blueprints
mustafab0 Dec 6, 2025
500aa76
changed driver architecture to use 2 threads only instead of 3
mustafab0 Dec 11, 2025
aaeb85a
updated xarm and piper driver to use new 2 thread archirecture
mustafab0 Dec 11, 2025
8eddfff
updated xarm_wrapper set_position method to use servo mode
mustafab0 Dec 11, 2025
cecda37
removed fake rpc methods and added new component_api decorator for au…
mustafab0 Dec 14, 2025
cddc360
updated component files to remove fake rpc names and added @component…
mustafab0 Dec 14, 2025
f01a78d
updated piper driver to remove fake rpc name for enable servo
mustafab0 Dec 14, 2025
b725e08
updated compoment based architecture to match final 2 thread implemen…
mustafab0 Dec 14, 2025
ee023ab
Added How To readme to add new drivers to the system
mustafab0 Dec 14, 2025
2a26f52
fixed bugs after rebasing with dev
mustafab0 Dec 14, 2025
ca48965
optimized control loop
mustafab0 Dec 14, 2025
ce4c091
fixed end effector pre-commit issue
mustafab0 Dec 14, 2025
f9fa3de
updaed camera module import path
mustafab0 Dec 14, 2025
e50e0f9
fixed dictionary changed size during iteration for lcmspy crashes
mustafab0 Dec 14, 2025
f9eb272
removed old architecture based drivers
mustafab0 Dec 16, 2025
f5f61c7
removed deprecated tests
mustafab0 Dec 16, 2025
ebe2c57
corrected sdk_wrapper for enabling servo
mustafab0 Dec 16, 2025
09c0652
added piper blueprints to the all blueprints
mustafab0 Dec 16, 2025
2e75968
added mock sdk and driver unit test
mustafab0 Dec 16, 2025
c17f1fe
added driver integration test
mustafab0 Dec 16, 2025
2d5249a
renamed test_driver_integration to avoid my test naming conflict
mustafab0 Dec 16, 2025
6fba929
fix mypy type errors
mustafab0 Dec 16, 2025
8022b60
Fix mypy type errors in manipulator base components
mustafab0 Dec 16, 2025
20823c4
next_time tracking to maintain consistent frequency
mustafab0 Dec 24, 2025
e2a3634
fixed mypy type issues with sdk_interface
mustafab0 Dec 24, 2025
4db2fd3
fix rxpy backpressure
paul-nechifor Dec 24, 2025
39f9f3f
Cuda mapper (#862)
leshy Dec 24, 2025
7c8df0e
Merge branch 'dev' into generalized_manipulator_driver
mustafab0 Dec 24, 2025
3b1ebe7
fixed trajectory and joint message for mypy type checker
mustafab0 Dec 24, 2025
1d06d45
ignore rxpy_backpressure
paul-nechifor Dec 25, 2025
0ecec75
skip rxpy_backpressure errors
paul-nechifor Dec 25, 2025
06d4ac7
Merge branch 'dev' into pip-install
paul-nechifor Dec 25, 2025
766a746
add new readme
paul-nechifor Dec 25, 2025
54f1005
fix linting
paul-nechifor Dec 25, 2025
82462b4
Merge branch 'dev' into module_init_and_agents
leshy Dec 25, 2025
e7857e6
fixing mypy errors - manipulation folders
ruthwikdasyam Dec 25, 2025
628f1d5
update readme
paul-nechifor Dec 25, 2025
05503ae
Fix: pre-commit errors
ruthwikdasyam Dec 25, 2025
393397f
rename agents to agents_deprecated (#877)
paul-nechifor Dec 25, 2025
719f863
Merge branch 'dev' into generalized_manipulator_driver
mustafab0 Dec 25, 2025
0678b9e
new planner new mapper (#879)
paul-nechifor Dec 26, 2025
74f6d53
Merge branch 'dev' into pip-install
paul-nechifor Dec 26, 2025
2f1529e
sim fix
paul-nechifor Dec 26, 2025
a1d45c8
odom ts parsing
leshy Dec 26, 2025
04eaf35
Merge pull request #882 from dimensionalOS/unitree_odom_fix
paul-nechifor Dec 26, 2025
91aaefa
Sim fix (#881)
paul-nechifor Dec 26, 2025
f9d39d3
navigation tuning (#883)
leshy Dec 26, 2025
03d70fc
add controllers
paul-nechifor Dec 26, 2025
0d45a08
add langchain
paul-nechifor Dec 26, 2025
fbe1864
Merge branch 'dev' into add-controllers
paul-nechifor Dec 26, 2025
467dc52
update uv.lock
paul-nechifor Dec 26, 2025
a62a196
linting
paul-nechifor Dec 26, 2025
10ef16c
debugging costmapper delays
leshy Dec 26, 2025
c4d2074
unitree debug dash
leshy Dec 26, 2025
c9eabe7
use p or pd
paul-nechifor Dec 26, 2025
b9b45b7
linting
paul-nechifor Dec 26, 2025
db767e6
go to unknown goal
paul-nechifor Dec 26, 2025
625c8e6
replanning
paul-nechifor Dec 27, 2025
c465b2f
add large map
paul-nechifor Dec 27, 2025
521e715
work on costmap debugging
leshy Dec 27, 2025
24939ab
costmapper latency test
leshy Dec 27, 2025
a707177
issue identified
leshy Dec 27, 2025
81468b6
remove slow part of simple occupancy
paul-nechifor Dec 27, 2025
1dc3c2f
new pointcloud2 backedn
leshy Dec 27, 2025
a6a6cd2
removed debug tests
leshy Dec 27, 2025
4dd341e
fix test
paul-nechifor Dec 27, 2025
905e8be
mypy
leshy Dec 27, 2025
2a6671f
optimizations
paul-nechifor Dec 27, 2025
eda0a56
remove time
paul-nechifor Dec 27, 2025
d1f006e
fix typing
paul-nechifor Dec 27, 2025
917a6e0
Merge branch 'add-controllers' into e2e-tests
paul-nechifor Dec 27, 2025
4199e63
fix test
paul-nechifor Dec 27, 2025
44f7253
fix linting
paul-nechifor Dec 27, 2025
fa9d313
fix tests
paul-nechifor Dec 27, 2025
5d36452
fixing tests
leshy Dec 27, 2025
b2cd3fe
mypy
leshy Dec 27, 2025
14560fa
comments cleanup
leshy Dec 27, 2025
3e52332
go2 urdf box, and urdf box generator
leshy Dec 27, 2025
a832849
fixing occupancy test in CI
leshy Dec 27, 2025
e7e91f1
updated pyproject to include our fixed unitree lib
leshy Dec 27, 2025
1c0c4d6
Merge remote-tracking branch 'origin/add-controllers' into release_pl…
leshy Dec 27, 2025
d044bfb
Merge branch 'unitree_box_urdf' into release_planner
leshy Dec 27, 2025
06c3894
go2 dash update
leshy Dec 27, 2025
4ba8c5e
pyproject fix
leshy Dec 27, 2025
d7f4ba6
fix numba issue
paul-nechifor Dec 27, 2025
46eb923
removed unused
paul-nechifor Dec 27, 2025
a055dd4
update coverage uv
paul-nechifor Dec 27, 2025
418060b
Merge branch 'dev' into module_init_and_agents
paul-nechifor Dec 27, 2025
b9da235
fix mypy
paul-nechifor Dec 27, 2025
f058dc9
Merge pull request #876 from dimensionalOS/module_init_and_agents
paul-nechifor Dec 27, 2025
27f2e63
try to fix open3d leak
paul-nechifor Dec 27, 2025
aacbfa5
remove old setup.sh (#888)
paul-nechifor Dec 27, 2025
ddf8d02
Revert "try to fix open3d leak"
paul-nechifor Dec 27, 2025
48fbcb0
lcm stop
paul-nechifor Dec 27, 2025
1f814c1
go2 detections
leshy Dec 27, 2025
487bcff
Merge pull request #887 from dimensionalOS/release_planner
paul-nechifor Dec 27, 2025
1639808
added ignore overrides for libraries and other dependencies for mypy …
mustafab0 Dec 27, 2025
4658aab
Merge branch 'dev' into generalized_manipulator_driver
mustafab0 Dec 27, 2025
81ef121
renamed integration_test to test_integration
mustafab0 Dec 27, 2025
f4279c0
renamed mock_sdk to conftest.py
mustafab0 Dec 27, 2025
c600045
updated ignore list to ignore errors due to merge with dev branch
mustafab0 Dec 27, 2025
d65b7a8
Merge branch 'dev' into pip-install
paul-nechifor Dec 28, 2025
31f18f3
fix leak (#890)
paul-nechifor Dec 28, 2025
f9bac53
first pass on large file deletions (#891)
leshy Dec 28, 2025
8032299
renamed functions to avoid pytest auto detection
mustafab0 Dec 28, 2025
c5e74d8
Add rerun visualization support (Lesh's approach)
Nabla7 Dec 28, 2025
72d2d65
Merge release_detections: Add detection support to Go2 blueprints
Nabla7 Dec 28, 2025
f645b08
command center stop and home
leshy Dec 28, 2025
eadee24
Add rerun + controls web interface to WebsocketVisModule
Nabla7 Dec 28, 2025
eea3f57
Add Rerun web viewer integration with control dashboard
Nabla7 Dec 28, 2025
576af79
CI code cleanup
Nabla7 Dec 28, 2025
11b90f4
feat(dashboard): Add centralized RerunModule for visualization
Nabla7 Dec 28, 2025
2e79ea5
CI code cleanup
Nabla7 Dec 28, 2025
1bd4398
fix(rerun): camera frustum now tracks robot odometry
Nabla7 Dec 28, 2025
621970c
CI code cleanup
Nabla7 Dec 28, 2025
46376f3
remove garbage
Nabla7 Dec 29, 2025
b6d3878
Merge pull request #831 from dimensionalOS/generalized_manipulator_dr…
mustafab0 Dec 29, 2025
281107f
feat: distributed Rerun logging with proper transform hierarchy
Nabla7 Dec 29, 2025
a02010a
CI code cleanup
Nabla7 Dec 29, 2025
a136c6e
feat: add camera/costmap panels and native viewer option
Nabla7 Dec 29, 2025
f70a4f4
CI code cleanup
Nabla7 Dec 29, 2025
dc1188e
feat: Out.to_rerun() API for declarative Rerun logging
Nabla7 Dec 29, 2025
c5f91bf
Restore MacOS Support (flake.nix) (#863)
jeff-hykin Dec 29, 2025
39ee9a3
feat(rerun): Upgrade visualization with boxes, colormap, and dual cos…
Nabla7 Dec 29, 2025
41b0238
CI code cleanup
Nabla7 Dec 29, 2025
e46d97c
fix(rerun): Flip costmap 2D image axes to match world coordinates
Nabla7 Dec 29, 2025
3d16b5c
check-uv
paul-nechifor Dec 29, 2025
7f81513
fix uv.lock
paul-nechifor Dec 29, 2025
f4f4348
autofixes.
paul-nechifor Dec 30, 2025
0e11981
fix use astral for uv
paul-nechifor Dec 30, 2025
6b25f4f
feat(web): Build command-center as standalone React app for unified d…
Nabla7 Dec 30, 2025
6e4629b
CI code cleanup
Nabla7 Dec 30, 2025
483703b
style(rerun): Set 3D view background to black
Nabla7 Dec 30, 2025
1713352
Merge pull request #902 from dimensionalOS/check-uv
paul-nechifor Dec 30, 2025
2de81e0
refactor(rerun): Address PR review feedback
Nabla7 Dec 30, 2025
627d320
Merge branch 'dev' into pip-install
paul-nechifor Dec 30, 2025
762facf
CI code cleanup
Nabla7 Dec 30, 2025
d94d65e
use unitree-webrtc-connect-leshy
paul-nechifor Dec 30, 2025
4fba609
refactor(image): Fix PR feedback - shared to_rerun, DepthImage, simpl…
Nabla7 Dec 30, 2025
0f26381
fix(rerun): Costmap mesh only renders known cells, proper colors
Nabla7 Dec 30, 2025
647b7db
Merge pull request #731 from dimensionalOS/pip-install
paul-nechifor Dec 30, 2025
7f2c72d
feat: add latency logging panels to Rerun viewer
Nabla7 Dec 30, 2025
14172ef
CI code cleanup
Nabla7 Dec 30, 2025
c488f5c
feat: add latency logging panels + vectorize mesh generation
Nabla7 Dec 30, 2025
ca278f3
CI code cleanup
Nabla7 Dec 30, 2025
7f7ec10
Revert "Restore MacOS Support (flake.nix) (#863)" (#907)
leshy Dec 30, 2025
1553a9d
jeff flake without py env stuff (#911)
leshy Dec 30, 2025
394bd9e
remove deprecated docker files (#912)
paul-nechifor Dec 30, 2025
67dafeb
update .foxe file
paul-nechifor Dec 31, 2025
dae459e
fix move skill
paul-nechifor Dec 28, 2025
d4bf711
Merge pull request #893 from dimensionalOS/command_center_stop_home
paul-nechifor Dec 31, 2025
0a6175b
fix(metrics): Use monotonic timestamps for accurate latency in replay
Nabla7 Dec 31, 2025
efca64c
use packages (#915)
paul-nechifor Dec 31, 2025
99564f2
Fix agents prompt (#914)
paul-nechifor Dec 31, 2025
545075a
feat: Viewer backend toggle + async Rerun logging for 10Hz costmap
Nabla7 Dec 31, 2025
9f22f24
refactor: Consolidate to single VIEWER_BACKEND config
Nabla7 Dec 31, 2025
d203fd4
refactor: Modular Rerun blueprint composition
Nabla7 Dec 31, 2025
ad9537b
fix manifest
paul-nechifor Dec 31, 2025
859e38d
fix:imports and conditional Rerun
Nabla7 Dec 31, 2025
a5c8997
fix big
paul-nechifor Dec 31, 2025
d665996
duplicate test
paul-nechifor Dec 31, 2025
1c888a7
fix
paul-nechifor Dec 31, 2025
683b065
max 100s
paul-nechifor Dec 31, 2025
5ca9f93
Merge pull request #916 from dimensionalOS/fix-manifest
paul-nechifor Dec 31, 2025
d6fbb3e
refactor: Move CostMapper Rerun logging to async thread
Nabla7 Dec 31, 2025
d157b45
feat: Set rerun-native as default + improve costmap colors
Nabla7 Dec 31, 2025
03fe30f
Merge branch 'dev' into feat/rerun-latency-panels
Nabla7 Dec 31, 2025
573e339
Merge pull request #913 from dimensionalOS/move-fix
paul-nechifor Dec 31, 2025
94319e3
refactor: Address PR review feedback from Paul
Nabla7 Dec 31, 2025
dc8cb8f
fix: Address all mypy errors from CI
Nabla7 Jan 1, 2026
18b88b9
style: Apply ruff formatting from pre-commit hooks
Nabla7 Jan 1, 2026
94ead6d
Ignore individual errors (#919)
paul-nechifor Jan 1, 2026
ffe0665
fix: Fix remaining 3 mypy errors
Nabla7 Jan 2, 2026
c3de2db
Merge latest dev into feat/rerun-latency-panels
Nabla7 Jan 2, 2026
d84d649
style: Add license header from pre-commit hook
Nabla7 Jan 2, 2026
7d7931c
fix: Import Any in foxglove_bridge.py
Nabla7 Jan 2, 2026
0407ed9
fix: Add missing type annotations after dev merge
Nabla7 Jan 2, 2026
918ac21
fix: Add abstract to_rerun() method and missing Any import
Nabla7 Jan 2, 2026
ac59941
fix mypy
paul-nechifor Jan 2, 2026
72935f8
Merge pull request #917 from dimensionalOS/feat/rerun-latency-panels
Nabla7 Jan 2, 2026
ba6601e
remove old navigation modules
paul-nechifor Jan 2, 2026
8c037fb
fix bad args
paul-nechifor Jan 2, 2026
e87c4ba
Update dimos/robot/all_blueprints.py
paul-nechifor Jan 2, 2026
ef4ccfe
CI code cleanup
paul-nechifor Jan 2, 2026
1190e19
Merge pull request #923 from dimensionalOS/remove-old-nav
paul-nechifor Jan 3, 2026
fca9a14
Feat/rerun latency panels (#925)
Nabla7 Jan 3, 2026
45c4436
Repair camera module (#929)
leshy Jan 3, 2026
ab74c2c
Repair Stream (#932)
leshy Jan 3, 2026
4499e08
Docs Clean (#933)
leshy Jan 3, 2026
6c1c971
docs: sensor streams (#934)
leshy Jan 4, 2026
f2a76b1
Docs: bugfixes (#940)
leshy Jan 4, 2026
f8af294
Fixed doclinks to use git ls for resolving paths rather than os.walk(…
spomichter Jan 4, 2026
c0d5281
Examples: third party language interop (#946)
leshy Jan 5, 2026
4bc7688
DOCS: temporal alignment docs improvements (#944)
leshy Jan 5, 2026
bfbe197
filter bots from commits (#947)
leshy Jan 6, 2026
5bb42d9
Fix skills (#950)
paul-nechifor Jan 6, 2026
e618e34
Limit Rerun viewer memory to 4GB default (#949)
Nabla7 Jan 6, 2026
44f654c
Working dimensional MCP server - tested with Claude Code MCP client (…
spomichter Jan 7, 2026
fb51cdf
allow registration of different agents (#951)
paul-nechifor Jan 7, 2026
da51ee8
Pre commit large files (#953)
leshy Jan 7, 2026
5896df5
Proper Realsense and ZED Camera Drivers (#935)
alexlin2 Jan 7, 2026
d1c87cd
Granular deps (#894)
leshy Jan 7, 2026
74fabaf
class VLMAgent(AgentSpec, Module) for streamed VLM queries over Trans…
spomichter Jan 7, 2026
690a859
mac compatible commit filter (#961)
paul-nechifor Jan 8, 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
  •  
  •  
  •  
27 changes: 27 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# top-most EditorConfig file
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
indent_size = 4

[*.nix]
indent_size = 2

[*.{py,ipynb}]
indent_size = 4
max_line_length = 100

[*.rs]
indent_style = space
indent_size = 4

[*.{ts,svelte}]
indent_size = 2
5 changes: 0 additions & 5 deletions .envrc

This file was deleted.

6 changes: 6 additions & 0 deletions .envrc.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,10 @@ if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.6/direnvrc" "sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM="
fi
use flake .
for venv in venv .venv env; do
if [[ -f "$venv/bin/activate" ]]; then
source "$venv/bin/activate"
break
fi
done
dotenv_if_exists
7 changes: 6 additions & 1 deletion .envrc.venv
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
source env/bin/activate
for venv in venv .venv env; do
if [[ -f "$venv/bin/activate" ]]; then
source "$venv/bin/activate"
break
fi
done
dotenv_if_exists
6 changes: 4 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
# Ensure Python files always use LF for line endings.
*.py text eol=lf
# Treat designated file types as binary and do not alter their contents or line endings.
*.png binary
*.jpg binary
*.png filter=lfs diff=lfs merge=lfs -text binary
*.jpg filter=lfs diff=lfs merge=lfs -text binary
*.jpeg filter=lfs diff=lfs merge=lfs -text binary
*.ico binary
*.pdf binary
# Explicit LFS tracking for test files
Expand All @@ -14,3 +15,4 @@
*.mp4 filter=lfs diff=lfs merge=lfs -text binary
*.mov filter=lfs diff=lfs merge=lfs -text binary
*.gif filter=lfs diff=lfs merge=lfs -text binary
*.foxe filter=lfs diff=lfs merge=lfs -text binary
32 changes: 16 additions & 16 deletions .github/workflows/_docker-build-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,19 +38,19 @@ jobs:
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/share/boost
sudo rm -rf /usr/local/lib/android

echo "=== Cleaning images from deleted branches ==="

# Get list of all remote branches
git ls-remote --heads origin | awk '{print $2}' | sed 's|refs/heads/||' > /tmp/active_branches.txt

# Check each docker image tag against branch list
docker images --format "{{.Repository}}:{{.Tag}}|{{.ID}}" | \
grep "ghcr.io/dimensionalos" | \
grep -v ":<none>" | \
while IFS='|' read image_ref id; do
tag=$(echo "$image_ref" | cut -d: -f2)

# Skip if tag matches an active branch
if grep -qx "$tag" /tmp/active_branches.txt; then
echo "Branch exists: $tag - keeping $image_ref"
Expand All @@ -59,15 +59,15 @@ jobs:
docker rmi "$id" 2>/dev/null || true
fi
done

rm -f /tmp/active_branches.txt

USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
echo "Pre-docker-cleanup disk usage: ${USAGE}%"

if [ $USAGE -gt 60 ]; then
echo "=== Running quick cleanup (usage > 60%) ==="

# Keep newest image per tag
docker images --format "{{.Repository}}|{{.Tag}}|{{.ID}}" | \
grep "ghcr.io/dimensionalos" | \
Expand All @@ -81,39 +81,39 @@ jobs:
{
repo=$1; tag=$2; id=$3
repo_tag = repo ":" tag

# Skip protected tags
if (tag ~ /^(main|dev|latest)$/) next

# Keep newest per tag, remove older duplicates
if (!(repo_tag in seen_combos)) {
seen_combos[repo_tag] = 1
} else {
system("docker rmi " id " 2>/dev/null || true")
}
}'

docker image prune -f
docker volume prune -f
fi

# Aggressive cleanup if still above 85%
USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $USAGE -gt 85 ]; then
echo "=== AGGRESSIVE cleanup (usage > 85%) - removing all except main/dev ==="

# Remove ALL images except main and dev tags
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | \
grep -E "ghcr.io/dimensionalos" | \
grep -vE ":(main|dev)$" | \
awk '{print $2}' | xargs -r docker rmi -f || true

docker container prune -f
docker volume prune -a -f
docker network prune -f
docker image prune -f
docker image prune -f
fi

echo -e "post cleanup space:\n $(df -h)"

- uses: docker/login-action@v3
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/code-cleanup.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: code-cleanup
on: push
on:
push:
paths-ignore:
- '**.md'

permissions:
contents: write
Expand All @@ -13,20 +16,21 @@ jobs:
- name: Fix permissions
run: |
sudo chown -R $USER:$USER ${{ github.workspace }} || true

- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- uses: astral-sh/setup-uv@v4
- name: Run pre-commit
id: pre-commit-first
uses: pre-commit/action@v3.0.1
continue-on-error: true

- name: Re-run pre-commit if failed initially
id: pre-commit-retry
if: steps.pre-commit-first.outcome == 'failure'
uses: pre-commit/action@v3.0.1
continue-on-error: false

- name: Commit code changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
Expand Down
30 changes: 24 additions & 6 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ on:
branches:
- main
- dev
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'

permissions:
contents: read
Expand All @@ -24,7 +28,7 @@ jobs:
- name: Fix permissions
run: |
sudo chown -R $USER:$USER ${{ github.workspace }} || true

- uses: actions/checkout@v4
- id: filter
uses: dorny/paths-filter@v3
Expand Down Expand Up @@ -132,7 +136,7 @@ jobs:
uses: ./.github/workflows/_docker-build-template.yml
with:
should-run: ${{
needs.check-changes.result == 'success' &&
needs.check-changes.result == 'success' &&
(needs.check-changes.outputs.dev == 'true' ||
(needs.ros-python.result == 'success' && (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.ros == 'true')))
}}
Expand Down Expand Up @@ -201,6 +205,21 @@ jobs:
cmd: "pytest -m lcm"
dev-image: dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true') && needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }}

run-mypy:
needs: [check-changes, ros-dev]
if: always()
uses: ./.github/workflows/tests.yml
secrets: inherit
with:
should-run: ${{
needs.check-changes.result == 'success' &&
((needs.ros-dev.result == 'success') ||
(needs.ros-dev.result == 'skipped' &&
needs.check-changes.outputs.tests == 'true'))
}}
cmd: "MYPYPATH=/opt/ros/humble/lib/python3.10/site-packages mypy dimos"
dev-image: ros-dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true' || needs.check-changes.outputs.ros == 'true') && needs.ros-dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }}

# Run module tests directly to avoid pytest forking issues
# run-module-tests:
# needs: [check-changes, dev]
Expand All @@ -218,21 +237,20 @@ jobs:
# - name: Fix permissions
# run: |
# sudo chown -R $USER:$USER ${{ github.workspace }} || true
#
#
# - uses: actions/checkout@v4
# with:
# lfs: true
#
#
# - name: Configure Git LFS
# run: |
# git config --global --add safe.directory '*'
# git lfs install
# git lfs fetch
# git lfs checkout
#
#
# - name: Run module tests
# env:
# CI: "true"
# run: |
# /entrypoint.sh bash -c "pytest -m module"

12 changes: 6 additions & 6 deletions .github/workflows/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@ https://code.visualstudio.com/docs/devcontainers/containers
create personal access token (classic, not fine grained)
https://github.com/settings/tokens

add permissions
add permissions
- read:packages scope to download container images and read their metadata.

and optionally,

- write:packages scope to download and upload container images and read and write their metadata.
- delete:packages scope to delete container images.

more info @ https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry

login to docker via
login to docker via

`sh
echo TOKEN | docker login ghcr.io -u GITHUB_USER --password-stdin
Expand All @@ -38,14 +38,14 @@ pull dev image (master)
docker pull ghcr.io/dimensionalos/dev:latest
`

# todo
# todo

Currently there is an issue with ensuring both correct docker image build ordering, and skipping unneccessary re-builds.

(we need job dependancies for builds to wait to their images underneath to be built (for example py waits for ros))
by default if a parent is skipped, it's children get skipped as well, unless they have always() in their conditional.

Issue is once we put always() in the conditional, it seems that no matter what other check we put in the same conditional, job will always run.
Issue is once we put always() in the conditional, it seems that no matter what other check we put in the same conditional, job will always run.
for this reason we cannot skip python (and above) builds for now. Needs review.

I think we will need to write our own build dispatcher in python that calls github workflows that build images.
11 changes: 5 additions & 6 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ jobs:
# if: ${{ !inputs.should-run }}
# run: |
# exit 0

# - name: Free disk space
# run: |
# sudo rm -rf /opt/ghc
# sudo rm -rf /usr/share/dotnet
# sudo rm -rf /usr/local/share/boost
# sudo rm -rf /usr/local/lib/android

run-tests:
runs-on: [self-hosted, Linux]
container:
Expand All @@ -47,17 +47,16 @@ jobs:

steps:
- uses: actions/checkout@v4

- name: Fix permissions
run: |
git config --global --add safe.directory '*'

- name: Run tests
run: |
/entrypoint.sh bash -c "${{ inputs.cmd }}"

- name: check disk space
if: failure()
run: |
df -h

14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# generic ignore pattern
**/*.ignore
**/*.ignore.*

.vscode/

# Ignore Python cache files
Expand All @@ -8,6 +12,7 @@ __pycache__/
*venv*/
.venv*/
.ssh/
.direnv/

# Ignore python tooling dirs
*.egg-info/
Expand Down Expand Up @@ -49,3 +54,12 @@ yolo11n.pt
# symlink one of .envrc.* if you'd like to use
.envrc
.claude
.direnv/

/logs

*.so

/.mypy_cache*

*mobileclip*
Loading
Loading