From b398445238bbbb334eb70564081ca0d4cdffc3ed Mon Sep 17 00:00:00 2001 From: dolepee Date: Tue, 10 Feb 2026 06:13:04 +0000 Subject: [PATCH 1/9] ci: default AWS region for schema upload workflow --- .github/workflows/generate-config-schema.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/generate-config-schema.yml b/.github/workflows/generate-config-schema.yml index 8d955b59e..6d0e93cca 100644 --- a/.github/workflows/generate-config-schema.yml +++ b/.github/workflows/generate-config-schema.yml @@ -38,7 +38,7 @@ jobs: uses: aws-actions/configure-aws-credentials@v3 with: role-to-assume: ${{ secrets.AWS_ROLE }} - aws-region: ${{ secrets.AWS_REGION }} + aws-region: ${{ secrets.AWS_REGION || 'us-east-1' }} - name: Set environment variables run: | From 65135dc99e1989640058873944823cb388710276 Mon Sep 17 00:00:00 2001 From: dolepee Date: Tue, 10 Feb 2026 06:14:43 +0000 Subject: [PATCH 2/9] ci: skip schema upload job when AWS secrets are missing --- .github/workflows/generate-config-schema.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/generate-config-schema.yml b/.github/workflows/generate-config-schema.yml index 6d0e93cca..46a94f142 100644 --- a/.github/workflows/generate-config-schema.yml +++ b/.github/workflows/generate-config-schema.yml @@ -16,6 +16,8 @@ on: jobs: generate-and-upload: + # Forks typically don't have the AWS upload secrets; skip cleanly when missing. + if: ${{ secrets.AWS_ROLE != '' && secrets.S3_BUCKET != '' && secrets.CLOUDFRONT_DISTRIBUTION_ID != '' }} runs-on: ubuntu-latest permissions: id-token: write From 2a82ddcf39b696aecc2e120836bc91a68622abab Mon Sep 17 00:00:00 2001 From: dolepee Date: Tue, 10 Feb 2026 06:15:22 +0000 Subject: [PATCH 3/9] ci: add noop job so workflow succeeds when upload job is skipped --- .github/workflows/generate-config-schema.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/generate-config-schema.yml b/.github/workflows/generate-config-schema.yml index 46a94f142..599c1cac2 100644 --- a/.github/workflows/generate-config-schema.yml +++ b/.github/workflows/generate-config-schema.yml @@ -15,6 +15,11 @@ on: workflow_dispatch: jobs: + noop: + runs-on: ubuntu-latest + steps: + - run: echo "Schema upload job skipped (forks typically lack AWS secrets)." + generate-and-upload: # Forks typically don't have the AWS upload secrets; skip cleanly when missing. if: ${{ secrets.AWS_ROLE != '' && secrets.S3_BUCKET != '' && secrets.CLOUDFRONT_DISTRIBUTION_ID != '' }} From 4cac661172666bab2a4e601561d45708357a6fc0 Mon Sep 17 00:00:00 2001 From: dolepee Date: Tue, 10 Feb 2026 06:16:36 +0000 Subject: [PATCH 4/9] ci: run schema upload only on upstream repo --- .github/workflows/generate-config-schema.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate-config-schema.yml b/.github/workflows/generate-config-schema.yml index 599c1cac2..3d166e715 100644 --- a/.github/workflows/generate-config-schema.yml +++ b/.github/workflows/generate-config-schema.yml @@ -21,8 +21,8 @@ jobs: - run: echo "Schema upload job skipped (forks typically lack AWS secrets)." generate-and-upload: - # Forks typically don't have the AWS upload secrets; skip cleanly when missing. - if: ${{ secrets.AWS_ROLE != '' && secrets.S3_BUCKET != '' && secrets.CLOUDFRONT_DISTRIBUTION_ID != '' }} + # Forks don't have the AWS upload secrets; only run this job on the upstream repo. + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-latest permissions: id-token: write From 947c5f87588e4097af8b7a288d34203863b7777e Mon Sep 17 00:00:00 2001 From: dolepee Date: Tue, 10 Feb 2026 06:21:14 +0000 Subject: [PATCH 5/9] ci: skip docker publish jobs on forks --- .github/workflows/release.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 33e2bf1c0..4db4041a6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,13 @@ on: workflow_dispatch: jobs: + noop: + runs-on: ubuntu-latest + steps: + - run: echo "Docker publish workflow skipped (forks typically lack Docker Hub secrets)." + build-amd64: + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-latest outputs: image-digest: ${{ steps.build.outputs.digest }} @@ -60,6 +66,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} build-arm64: + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-22.04-arm outputs: image-digest: ${{ steps.build.outputs.digest }} @@ -109,6 +116,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} create-manifest: + if: ${{ github.repository_owner == 'OpenMind' }} runs-on: ubuntu-latest needs: [build-amd64, build-arm64] steps: From 99d55531f098ed271eacabee38ba356d2911f9f1 Mon Sep 17 00:00:00 2001 From: dolepee Date: Tue, 10 Feb 2026 15:34:15 +0000 Subject: [PATCH 6/9] ci: skip Slack notify in fork nightly workflow --- .github/workflows/nightly-integration-tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly-integration-tests.yml b/.github/workflows/nightly-integration-tests.yml index 5c87fbc57..6ffdf1f65 100644 --- a/.github/workflows/nightly-integration-tests.yml +++ b/.github/workflows/nightly-integration-tests.yml @@ -123,7 +123,8 @@ jobs: EOF - name: Notify Slack on failure - if: failure() && github.event_name == 'schedule' && github.event.pull_request.head.repo.fork != true + # Slack webhook is only configured on the upstream repo. + if: failure() && github.event_name == 'schedule' && github.repository == 'OpenMind/OM1' run: | curl -X POST -H 'Content-type: application/json' \ --data "{ @@ -136,7 +137,8 @@ jobs: ${{ secrets.ONCALL_SLACK_WEBHOOK_URL }} - name: Notify Slack on success - if: success() && github.event_name == 'schedule' && github.event.pull_request.head.repo.fork != true + # Slack webhook is only configured on the upstream repo. + if: success() && github.event_name == 'schedule' && github.repository == 'OpenMind/OM1' run: | curl -X POST -H 'Content-type: application/json' \ --data "{ From 74adc6c7bbd1933e456dfb636e9087bd253e2b5e Mon Sep 17 00:00:00 2001 From: dolepee Date: Wed, 11 Feb 2026 16:32:15 +0000 Subject: [PATCH 7/9] ci: disable recursive submodule checkout for nightly workflow --- .github/workflows/nightly-integration-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly-integration-tests.yml b/.github/workflows/nightly-integration-tests.yml index 6ffdf1f65..a46f0afb2 100644 --- a/.github/workflows/nightly-integration-tests.yml +++ b/.github/workflows/nightly-integration-tests.yml @@ -22,7 +22,7 @@ jobs: - name: Checkout code uses: actions/checkout@v5 with: - submodules: 'recursive' + submodules: false - name: Set up Python 3.10 uses: actions/setup-python@v4 From 5f5e07f99528bceaf176720c3963008748b44678 Mon Sep 17 00:00:00 2001 From: dolepee Date: Wed, 11 Feb 2026 16:37:13 +0000 Subject: [PATCH 8/9] ci: skip hardware-specific integration tests in nightly workflow --- .github/workflows/nightly-integration-tests.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nightly-integration-tests.yml b/.github/workflows/nightly-integration-tests.yml index a46f0afb2..4a50335c5 100644 --- a/.github/workflows/nightly-integration-tests.yml +++ b/.github/workflows/nightly-integration-tests.yml @@ -83,7 +83,15 @@ jobs: - name: Run integration tests run: | - uv run pytest -m "integration" --log-cli-level=DEBUG --junitxml=test-reports/results.xml -s + uv run pytest -m "integration" \ + --ignore=tests/actions/move_go2_autonomy/test_unitree_om_path_sdk.py \ + --ignore=tests/actions/move_go2_autonomy/test_unitree_rplidar_sdk.py \ + --ignore=tests/inputs/base/test_inputs_plugins.py \ + --ignore=tests/inputs/plugins/test_ubtech_camera_vlm_input.py \ + --ignore=tests/inputs/plugins/test_unitree_g1_basic.py \ + --ignore=tests/providers/test_ubtech_video_stream.py \ + --ignore=tests/providers/test_ubtech_vlm_provider.py \ + --log-cli-level=DEBUG --junitxml=test-reports/results.xml -s - name: Extract test summary id: summary From c6d16d84be792170913d99ff61128c54ecb8a0d8 Mon Sep 17 00:00:00 2001 From: dolepee Date: Wed, 18 Feb 2026 12:37:11 +0000 Subject: [PATCH 9/9] fix: correct backward movement comparison in TurtleBot4 MoveZenohConnector --- src/actions/move_turtle/connector/zenoh.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/actions/move_turtle/connector/zenoh.py b/src/actions/move_turtle/connector/zenoh.py index b61109600..2d4ecb846 100644 --- a/src/actions/move_turtle/connector/zenoh.py +++ b/src/actions/move_turtle/connector/zenoh.py @@ -387,7 +387,7 @@ def tick(self) -> None: distance_traveled = math.sqrt( (self.odom.x - s_x) ** 2 + (self.odom.y - s_y) ** 2 ) - remaining = abs(goal_dx - distance_traveled) + remaining = abs(abs(goal_dx) - distance_traveled) logging.info(f"remaining advance GAP: {round(remaining,2)}") fb = 0 @@ -401,10 +401,10 @@ def tick(self) -> None: return if remaining > self.distance_tolerance: - if distance_traveled < goal_dx: # keep advancing + if distance_traveled < abs(goal_dx): # keep advancing logging.debug(f"keep moving. remaining:{remaining} ") self.move(fb * 0.4, 0.0) - elif distance_traveled > goal_dx: # you moved too far + elif distance_traveled > abs(goal_dx): # you moved too far logging.debug( f"OVERSHOOT: move other way. remaining:{remaining} " )