This repository was archived by the owner on Aug 31, 2026. It is now read-only.
Repository navigation
Make CI truthful: remove continue-on-error, fix broken tests, delete dead workflows - #10
Merged
Merged
Conversation
…dead workflows Addresses audit findings P0-3 and P1-1. Before this change CI was green by construction: every ci.yml step had continue-on-error plus an "|| echo skipped" swallow, while pytest collection aborted on a SyntaxError and 52 CPU tests failed underneath. ci.yml: - Remove continue-on-error and the error-swallowing echo from every step; a failing step now fails the job. - Lint gates on flake8 E9/F63/F7/F82 (syntax errors and undefined names); the mypy step, which never gated anything, is removed. - Install the package for real (pip install -e . --no-build-isolation) and run the full test suite; run the import check from robocache/ so the repo-root directory does not shadow the installed package. Test fixes (real bugs): - tests/test_memory_strategy.py:107: dtype=torch::int32 (C++ syntax) -> torch.int32; this SyntaxError aborted collection of the whole suite. - python/robocache/backends.py: fused_multimodal_alignment used torch without importing it (NameError on the CPU multimodal path, ruff F821). - Expose robocache.get_backend_info() (tests called it; the attribute did not exist on the package). Honest failure accounting (not fixed, marked): - 16 CPU voxelization-fallback tests marked xfail: the fallback clamps out-of-bounds points into boundary voxels where the CUDA kernel drops them (0.3-3% voxel mismatch vs golden reference) and raises IndexError on empty/single-point clouds. Documented in the README Known Issues section rather than shipped as green. - tests/test_multimodal_fusion.py skipped module-wide with reason: it targets the pre-1.0 two-stream fuse_multimodal API; the current API takes three streams. CPU suite result: 44 passed, 350 skipped (CUDA-gated + stale module), 16 xfailed, 0 failed. Dead workflows deleted (P1-1): - Self-hosted GPU runners no longer exist (repo runner count is 0); their scheduled workflows produced 177 cancelled runs: isaac_sim_nightly.yml, benchmark_validation.yml, compute-sanitizer.yml, gpu_ci_a100.yml, gpu_ci_h100.yml. - static-analysis.yml: all four jobs if: false - can never run. - security_scan.yml: two jobs if: false, third requires a pull_request event its triggers never deliver - every scheduled run was skipped. - kernel_build_validation.yml: requires a GPU container (--gpus all) on a hosted runner; its last run on main failed and it cannot succeed without a GPU. - robocache/.github/workflows/: seven nested duplicates GitHub never reads. ci.yml and build-and-publish.yml (tag/dispatch-gated) remain. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL
tests/perf modules import "from tests.perf.perf_guard import ..."; bare pytest does not put the working directory on sys.path, python -m pytest does. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL
output.sum() after the block's final LayerNorm (gamma=1, beta=0 at init) is a constant, so its true input gradient is exactly zero; the assertion only passed where floating-point reduction order left roundoff noise (arm64) and failed where it cancelled exactly (x86_64 CI). A quadratic loss exercises the gradient path for real. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pre-archive cleanup, part 2 of 2 (CI honesty). Addresses audit findings P0-3 and P1-1. Companion to #9.
Why
CI was green by construction: every
ci.ymlstep carriedcontinue-on-error: trueplus an|| echo "skipped"swallow, while underneath pytest collection aborted on a SyntaxError and 52 CPU tests failed. The Actions tab was a wall of 177 cancelled nightly runs queued against self-hosted GPU runners that no longer exist (repo runner count: 0).ci.yml
continue-on-errorand error-swallowing removed from every step; failures now fail the job.E9,F63,F7,F82; the never-gating mypy step is removed.pip install -e . --no-build-isolation) and the full suite runs; the import check runs fromrobocache/so the repo-root directory cannot shadow the installed package.Real bugs fixed
robocache/tests/test_memory_strategy.py:107:dtype=torch::int32(C++ scope syntax) ->torch.int32; this SyntaxError aborted collection of the entire suite.robocache/python/robocache/backends.py:fused_multimodal_alignmentusedtorchwithout importing it (NameError on the CPU multimodal path; ruff F821).robocache.get_backend_info()now exists (tests called it; the package had no such attribute).Honest failure accounting (marked, not hidden)
xfailwith reason: the fallback clamps out-of-bounds points into boundary voxels where the CUDA kernel drops them (0.3-3% voxel mismatch vs the golden reference) and raises IndexError on empty/single-point clouds. This is stated in the README Known Issues section (Correct performance claims, remove fabricated persona and self-audit docs #9) instead of being shipped as green.tests/test_multimodal_fusion.pyis skipped module-wide with reason: it targets the pre-1.0 two-streamfuse_multimodalAPI; the current API takes three streams.Local CPU suite result: 44 passed, 350 skipped, 16 xfailed, 0 failed (fresh venv, torch 2.13.0 CPU, Python 3.11).
Dead workflows deleted
isaac_sim_nightly.yml[self-hosted, gpu]; runners gone; each run queued 24 h then was cancelledbenchmark_validation.ymlself-hosted; samecompute-sanitizer.yml[self-hosted, gpu], dispatch-only, 0 runs evergpu_ci_a100.yml/gpu_ci_h100.ymlself-hosted; runners gonestatic-analysis.ymlif: falsesecurity_scan.ymlif: false; third requires apull_requestevent its triggers never deliver - every scheduled run was skippedkernel_build_validation.yml--gpus all) on a hosted runner; last main run failed; cannot succeed without a GPUrobocache/.github/workflows/(7 files)ci.ymlandbuild-and-publish.yml(tag/dispatch-gated) remain.🤖 Generated with Claude Code
https://claude.ai/code/session_01142EwVwkXFRGnYu7YgHSYL