rdc-cli 0.3.5__tar.gz → 0.3.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/PKG-INFO +8 -11
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/README.md +7 -10
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/usage.md +8 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/layouts/Docs.astro +0 -1
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/install.astro +20 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tests/validate.mjs +3 -2
- rdc_cli-0.3.6/openspec/changes/2026-02-26-phase-r3-usability-fixes/proposal.md +71 -0
- rdc_cli-0.3.6/openspec/changes/2026-02-26-phase-r3-usability-fixes/tasks.md +43 -0
- rdc_cli-0.3.6/openspec/changes/2026-02-26-phase-r3-usability-fixes/test-plan.md +190 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/pixi.toml +4 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/e2e-test.sh +43 -13
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_skills/references/commands-quick-ref.md +3 -3
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/_helpers.py +133 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/assert_ci.py +10 -4
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/capture.py +42 -4
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/counters.py +8 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/debug.py +4 -4
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/diff.py +8 -1
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/doctor.py +8 -1
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/events.py +10 -4
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/export.py +94 -5
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/info.py +8 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/mesh.py +2 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/pick_pixel.py +2 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/pipeline.py +102 -12
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/pixel.py +2 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/remote.py +25 -0
- rdc_cli-0.3.6/src/rdc/commands/resources.py +242 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/session.py +51 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/shader_edit.py +3 -3
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/snapshot.py +2 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/tex_stats.py +2 -2
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/unix_helpers.py +8 -2
- rdc_cli-0.3.6/src/rdc/commands/usage.py +155 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/vfs.py +14 -6
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/discover.py +96 -7
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/PKG-INFO +8 -11
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/SOURCES.txt +7 -1
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture.py +158 -3
- rdc_cli-0.3.6/tests/unit/test_discover.py +234 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_doctor.py +61 -0
- rdc_cli-0.3.6/tests/unit/test_eid_completion.py +108 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_commands.py +80 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_commands.py +49 -5
- rdc_cli-0.3.6/tests/unit/test_resource_semantic_completion.py +206 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_resources_commands.py +6 -0
- rdc_cli-0.3.6/tests/unit/test_semantic_completion.py +138 -0
- rdc_cli-0.3.6/tests/unit/test_session_completion.py +72 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_commands.py +4 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_completion.py +12 -0
- rdc_cli-0.3.5/docs-astro/src/pages/docs/install/windows.astro +0 -105
- rdc_cli-0.3.5/src/rdc/commands/resources.py +0 -132
- rdc_cli-0.3.5/src/rdc/commands/usage.py +0 -75
- rdc_cli-0.3.5/tests/unit/test_discover.py +0 -50
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.commitlintrc.yml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.githooks/pre-commit +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.githooks/pre-push +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/CODEOWNERS +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/aur.yml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/ci.yml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/commitlint.yml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/docs.yml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.gitignore +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.python-version +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.release-please-manifest.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/LICENSE +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/Makefile +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/SECURITY.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/aur/PKGBUILD +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/aur/stable/PKGBUILD +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docker/Dockerfile +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/cli-reference.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/index.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/install.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/vfs.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/astro.config.mjs +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/package-lock.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/package.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/public/.nojekyll +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/public/favicon.svg +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Commands.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Demo.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Features.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Footer.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Hero.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Install.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Navbar.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Philosophy.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Terminal.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/data/commands.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/data/replay.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/data/stats.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/layouts/Base.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/commands.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/design.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/examples.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/index.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/remote.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/usage.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/vfs.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/index.astro +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/styles/global.css +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tailwind.config.mjs +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tapes/pipeline.tape +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tapes/quickstart.tape +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tsconfig.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/mkdocs.yml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/mypy.ini +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-23-phase-w2-build-script/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-23-phase-w2-build-script/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-23-phase-w2-build-script/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-m-macos-support/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-m-macos-support/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-m-macos-support/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r1-quick-wins/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r1-quick-wins/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r1-quick-wins/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r2-test-infrastructure/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r2-test-infrastructure/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r2-test-infrastructure/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-docs-automation/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-docs-automation/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-docs-automation/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-skill-auto-install/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-skill-auto-install/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-skill-auto-install/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/proposal.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/tasks.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/test-plan.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/architecture/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/ci/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/daemon/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/foundation/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/packaging/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/session/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/tooling/spec.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/pixi.lock +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/pyproject.toml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/release-please-config.json +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/ruff.toml +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/build-renderdoc.sh +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/build_renderdoc.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/capture_fixture.sh +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/ensure-renderdoc.sh +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-replay.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-skill-ref.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-stats.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/setup-renderdoc.sh +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/verify-package.sh +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/setup.cfg +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/__init__.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_platform.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_skills/SKILL.md +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_skills/__init__.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_transport.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/adapter.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/capture_core.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/cli.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/assert_image.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/capture_control.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/capturefile.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/completion.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/install_skill.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/script.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/search.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/serve.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/daemon_client.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/daemon_server.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/__init__.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/alignment.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/draws.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/framebuffer.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/pipeline.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/resources.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/stats.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/summary.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/json_fmt.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/kv.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/options.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/tsv.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/__init__.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/_helpers.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/_types.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/buffer.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/capture.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/capturefile.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/core.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/debug.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/descriptor.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/pipe_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/pixel.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/query.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/script.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/shader.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/shader_edit.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/texture.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/vfs.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/image_compare.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/protocol.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/remote_core.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/remote_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/__init__.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/diff_service.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/query_service.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/session_service.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/session_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/target_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/__init__.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/formatter.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/router.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/tree_cache.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/entry_points.txt +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/requires.txt +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/top_level.txt +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/conftest.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/fixtures/hello_triangle.rdc +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/fixtures/vkcube.rdc +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/fixtures/vkcube_validation.rdc +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_build_renderdoc_integration.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_daemon_handlers_real.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_mock_api_sync.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_real_replay.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_vulkan_samples.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/mocks/mock_renderdoc.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/conftest.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_adapter.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_assert_ci_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_assert_image_command.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_binary_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_buffer_decode.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_build_renderdoc.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture_control.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture_core.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture_handlers.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capturefile_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capturefile_handlers.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_ci_files.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_cli.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_cli_session_flag.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_completion.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_count_shadermap.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_counters_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_counters_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_crash_regression.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_output_quality.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_pipeline_extended.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_server_unit.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_shader_api_fix.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_shader_extended.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_transport.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_debug_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_debug_handlers.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_descriptors_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_alignment.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_command.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_draws.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_framebuffer.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_pipeline.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_resources.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_service.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_stats.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_summary.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_draws_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_draws_events_cli.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_draws_events_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_events_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_export_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_export_overlay.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_fix1_draws_pass_name.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_fix2_vfs_intermediate_dirs.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_formatters.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_formatters_kv.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_gen_skill_ref.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_handlers_remote.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_image_compare.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_info_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_install_skill.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_json_errors.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_keep_remote.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mesh_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mesh_handler.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mock_capture_types.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mock_renderdoc.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_open_remote.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_output_options.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_overlay_handler.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pick_pixel_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pick_pixel_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_cli_phase27.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_section_routing.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_shader.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pixel_history_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pixel_history_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pixi_files.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_platform.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_protocol.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_query_service.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_core.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_replay.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_resources_filter.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_script_command.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_script_handler.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_search.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_serve.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_session_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_session_service.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_session_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_shader_edit_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_shader_edit_handlers.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_shader_preload.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_skill_structure.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_snapshot_command.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_split_binary.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_split_core.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_target_state.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_tex_stats_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_tex_stats_handler.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_tooling_files.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_unix_helpers_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_usage_commands.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_usage_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_binary.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_daemon.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_formatter.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_router.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_tree_cache.py +0 -0
- {rdc_cli-0.3.5 → rdc_cli-0.3.6}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rdc-cli
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.6
|
|
4
4
|
Summary: CLI for RenderDoc .rdc captures
|
|
5
5
|
Author: Jim
|
|
6
6
|
License-Expression: MIT
|
|
@@ -74,17 +74,14 @@ python scripts/build_renderdoc.py # needs cmake + Visual Studio Build Tools
|
|
|
74
74
|
rdc doctor
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
**PyPI — macOS** (
|
|
77
|
+
**PyPI — macOS** (Split client only)
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
80
|
pipx install rdc-cli
|
|
81
|
-
#
|
|
82
|
-
|
|
83
|
-
rdc
|
|
84
|
-
rdc
|
|
85
|
-
# Optional: local replay — run inside repo for auto-managed deps
|
|
86
|
-
# pixi run setup-renderdoc (installs cmake/ninja/autotools via pixi)
|
|
87
|
-
# or: python scripts/build_renderdoc.py
|
|
81
|
+
# Local replay on macOS is not supported right now.
|
|
82
|
+
# Use Split mode and run replay on a Linux/Windows daemon:
|
|
83
|
+
# rdc open /tmp/frame.rdc --listen 0.0.0.0:54321 # on replay host
|
|
84
|
+
# rdc open --connect host:54321 --token TOKEN # on macOS client
|
|
88
85
|
rdc doctor
|
|
89
86
|
```
|
|
90
87
|
|
|
@@ -111,8 +108,8 @@ pixi run setup-renderdoc
|
|
|
111
108
|
| Platform | Local capture/replay | Split client |
|
|
112
109
|
|----------|----------------------|--------------|
|
|
113
110
|
| Linux | ✅ | ✅ |
|
|
114
|
-
| macOS |
|
|
115
|
-
| Windows
|
|
111
|
+
| macOS | ❌ (not supported yet) | ✅ (recommended) |
|
|
112
|
+
| Windows (experimental) | ⚠️ expected | ⚠️ expected |
|
|
116
113
|
|
|
117
114
|
### RenderDoc bootstrap (all platforms)
|
|
118
115
|
|
|
@@ -45,17 +45,14 @@ python scripts/build_renderdoc.py # needs cmake + Visual Studio Build Tools
|
|
|
45
45
|
rdc doctor
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
**PyPI — macOS** (
|
|
48
|
+
**PyPI — macOS** (Split client only)
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
51
|
pipx install rdc-cli
|
|
52
|
-
#
|
|
53
|
-
|
|
54
|
-
rdc
|
|
55
|
-
rdc
|
|
56
|
-
# Optional: local replay — run inside repo for auto-managed deps
|
|
57
|
-
# pixi run setup-renderdoc (installs cmake/ninja/autotools via pixi)
|
|
58
|
-
# or: python scripts/build_renderdoc.py
|
|
52
|
+
# Local replay on macOS is not supported right now.
|
|
53
|
+
# Use Split mode and run replay on a Linux/Windows daemon:
|
|
54
|
+
# rdc open /tmp/frame.rdc --listen 0.0.0.0:54321 # on replay host
|
|
55
|
+
# rdc open --connect host:54321 --token TOKEN # on macOS client
|
|
59
56
|
rdc doctor
|
|
60
57
|
```
|
|
61
58
|
|
|
@@ -82,8 +79,8 @@ pixi run setup-renderdoc
|
|
|
82
79
|
| Platform | Local capture/replay | Split client |
|
|
83
80
|
|----------|----------------------|--------------|
|
|
84
81
|
| Linux | ✅ | ✅ |
|
|
85
|
-
| macOS |
|
|
86
|
-
| Windows
|
|
82
|
+
| macOS | ❌ (not supported yet) | ✅ (recommended) |
|
|
83
|
+
| Windows (experimental) | ⚠️ expected | ⚠️ expected |
|
|
87
84
|
|
|
88
85
|
### RenderDoc bootstrap (all platforms)
|
|
89
86
|
|
|
@@ -10,9 +10,17 @@ rdc open capture.rdc # start a session (launches daemon)
|
|
|
10
10
|
rdc draws # list draw calls
|
|
11
11
|
rdc pipeline 142 # inspect pipeline state at EID 142
|
|
12
12
|
rdc shader 142 ps # view pixel shader disassembly
|
|
13
|
+
rdc shader ps # view PS at current EID (after goto)
|
|
13
14
|
rdc close # end session (stops daemon)
|
|
14
15
|
```
|
|
15
16
|
|
|
17
|
+
Render pass lookup accepts either a pass name or a 0-based pass index:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
rdc pass 0 # first pass
|
|
21
|
+
rdc pass GBuffer # pass by name
|
|
22
|
+
```
|
|
23
|
+
|
|
16
24
|
## Named sessions
|
|
17
25
|
|
|
18
26
|
Run multiple sessions in parallel with `--session`:
|
|
@@ -15,7 +15,6 @@ const currentPath = Astro.url.pathname.replace(/\/$/, '');
|
|
|
15
15
|
const sidebar = [
|
|
16
16
|
{ label: 'Overview', href: `${base}docs/` },
|
|
17
17
|
{ label: 'Installation', href: `${base}docs/install/` },
|
|
18
|
-
{ label: 'Windows Install', href: `${base}docs/install/windows/` },
|
|
19
18
|
{ label: 'Usage Patterns', href: `${base}docs/usage/` },
|
|
20
19
|
{ label: 'Commands', href: `${base}docs/commands/` },
|
|
21
20
|
{ label: 'Remote & Split', href: `${base}docs/remote/` },
|
|
@@ -44,8 +44,8 @@ pixi run setup-renderdoc</code></pre>
|
|
|
44
44
|
</tr>
|
|
45
45
|
<tr>
|
|
46
46
|
<td>macOS</td>
|
|
47
|
-
<td>
|
|
48
|
-
<td>Supported (
|
|
47
|
+
<td>Not supported yet</td>
|
|
48
|
+
<td>Supported (recommended)</td>
|
|
49
49
|
</tr>
|
|
50
50
|
<tr>
|
|
51
51
|
<td>Windows (experimental)</td>
|
|
@@ -55,6 +55,24 @@ pixi run setup-renderdoc</code></pre>
|
|
|
55
55
|
</tbody>
|
|
56
56
|
</table>
|
|
57
57
|
|
|
58
|
+
<h2>macOS Split Mode</h2>
|
|
59
|
+
<p>
|
|
60
|
+
Local replay on macOS is not supported right now. Use macOS as a Split
|
|
61
|
+
client and run replay on a Linux/Windows daemon.
|
|
62
|
+
</p>
|
|
63
|
+
<pre><code># On Linux/Windows replay host
|
|
64
|
+
rdc open /tmp/frame.rdc --listen 0.0.0.0:54321
|
|
65
|
+
|
|
66
|
+
# On macOS client
|
|
67
|
+
rdc open --connect host:54321 --token TOKEN</code></pre>
|
|
68
|
+
|
|
69
|
+
<h2>Windows Notes</h2>
|
|
70
|
+
<ul>
|
|
71
|
+
<li>Windows 10/11 64-bit</li>
|
|
72
|
+
<li>Python minor version must match renderdoc <code>.pyd</code></li>
|
|
73
|
+
<li>Visual Studio 2022 Build Tools with C++ workload</li>
|
|
74
|
+
</ul>
|
|
75
|
+
|
|
58
76
|
<h2>RenderDoc Python Module</h2>
|
|
59
77
|
<p>
|
|
60
78
|
<code>rdc</code> requires the renderdoc Python module
|
|
@@ -134,8 +134,9 @@ console.log('\n\x1b[1mContent\x1b[0m');
|
|
|
134
134
|
|
|
135
135
|
const indexHtml = readFileSync(join(DIST, 'index.html'), 'utf-8');
|
|
136
136
|
|
|
137
|
-
test('landing page has
|
|
138
|
-
assert(indexHtml.includes('
|
|
137
|
+
test('landing page has terminal replay elements', () => {
|
|
138
|
+
assert(indexHtml.includes('replay-terminal'), 'Missing #replay-terminal element');
|
|
139
|
+
assert(indexHtml.includes('replay-lines'), 'Missing #replay-lines element');
|
|
139
140
|
});
|
|
140
141
|
|
|
141
142
|
test('landing page has GSAP ScrollTrigger bundle', () => {
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Phase R3: Usability Fixes (B46-B51)
|
|
2
|
+
|
|
3
|
+
## Motivation
|
|
4
|
+
|
|
5
|
+
Manual CLI usage surfaced six high-friction bugs that break expected workflows,
|
|
6
|
+
mainly around completion behavior, command argument ergonomics, and error
|
|
7
|
+
messaging clarity. These issues reduce trust in basic interactive usage even
|
|
8
|
+
when backend functionality is correct.
|
|
9
|
+
|
|
10
|
+
This change focuses on predictable operator experience for the existing command
|
|
11
|
+
surface, without introducing new feature scope.
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
In scope:
|
|
16
|
+
|
|
17
|
+
- B46: add capture-path completion for `rdc open`
|
|
18
|
+
- B47: silence VFS completion errors when no active session/daemon
|
|
19
|
+
- B48: support stage-only shader invocation after `goto`
|
|
20
|
+
- B49: make `capture --list-apis` an explicit early-return mode
|
|
21
|
+
- B50: report unreachable `remote list --url` as connection failure
|
|
22
|
+
- B51: clarify 0-based index semantics for `pass`
|
|
23
|
+
|
|
24
|
+
Out of scope:
|
|
25
|
+
|
|
26
|
+
- Any new command beyond behavior fixes above
|
|
27
|
+
- New completion features unrelated to B46/B47
|
|
28
|
+
- Changes to replay/data query core semantics
|
|
29
|
+
|
|
30
|
+
## Design
|
|
31
|
+
|
|
32
|
+
### B46: `open` tab completion
|
|
33
|
+
|
|
34
|
+
- Add capture-path completion for `rdc open` so `<TAB>` offers local `.rdc`
|
|
35
|
+
candidates from the filesystem.
|
|
36
|
+
|
|
37
|
+
### B47: VFS completion with no session
|
|
38
|
+
|
|
39
|
+
- Treat missing session / daemon-not-ready cases as completion-time no-result
|
|
40
|
+
conditions, not user-facing runtime errors.
|
|
41
|
+
- Completion handlers return empty candidates on recoverable lookup failures.
|
|
42
|
+
|
|
43
|
+
### B48: `shader` stage-only form after `goto`
|
|
44
|
+
|
|
45
|
+
- Support `rdc shader <stage>` by resolving EID from session `current_eid`.
|
|
46
|
+
- Preserve explicit form `rdc shader <eid> <stage>` with unchanged precedence.
|
|
47
|
+
|
|
48
|
+
### B49: `capture --list-apis` execution path
|
|
49
|
+
|
|
50
|
+
- Ensure `--list-apis` is handled as an early-return information mode.
|
|
51
|
+
- Skip executable validation and injection-related flow when this flag is set.
|
|
52
|
+
|
|
53
|
+
### B50: `remote list --url` unreachable endpoint
|
|
54
|
+
|
|
55
|
+
- Separate transport/connectivity failures from valid-but-empty target lists.
|
|
56
|
+
- Report unreachable endpoint as a connection error with actionable wording,
|
|
57
|
+
not "no targets found".
|
|
58
|
+
|
|
59
|
+
### B51: pass index base clarity
|
|
60
|
+
|
|
61
|
+
- Standardize user-facing wording to explicitly state pass indices are 0-based.
|
|
62
|
+
- Align command help and docs text to remove ambiguity.
|
|
63
|
+
|
|
64
|
+
## Risks
|
|
65
|
+
|
|
66
|
+
- Completion-path changes may affect shell-specific completion adapters
|
|
67
|
+
(bash/zsh/fish) if output assumptions are inconsistent.
|
|
68
|
+
- Mixed-form `shader` argument parsing can regress if dispatch order is not
|
|
69
|
+
strictly defined.
|
|
70
|
+
- Refined `remote list` errors may require updates where tests assert exact
|
|
71
|
+
message strings.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Tasks
|
|
2
|
+
|
|
3
|
+
## B46 - Add capture path completion for `rdc open`
|
|
4
|
+
|
|
5
|
+
- [ ] Add a local filesystem completion helper for the `CAPTURE` argument in `src/rdc/commands/session.py`.
|
|
6
|
+
- [ ] Wire the helper into `open_cmd` argument declaration so `rdc open <TAB>` suggests valid paths.
|
|
7
|
+
- [ ] Filter completion output to directories and `.rdc` files, preserving shell-friendly path formatting.
|
|
8
|
+
|
|
9
|
+
## B47 - Make VFS completion silent without a session
|
|
10
|
+
|
|
11
|
+
- [ ] Harden `_complete_vfs_path` in `src/rdc/commands/vfs.py` to return empty completions on session/RPC failures.
|
|
12
|
+
- [ ] Catch non-happy-path completion errors without surfacing runtime traces during TAB completion.
|
|
13
|
+
- [ ] Keep normal command execution errors unchanged; scope behavior change to completion-only flow.
|
|
14
|
+
|
|
15
|
+
## B48 - Support stage-only shader query after `goto`
|
|
16
|
+
|
|
17
|
+
- [ ] Update `shader` argument parsing in `src/rdc/commands/pipeline.py` to accept stage-only invocation (`rdc shader ps`).
|
|
18
|
+
- [ ] Resolve missing EID from session current event state before dispatching shader requests.
|
|
19
|
+
- [ ] Keep explicit form (`rdc shader <eid> <stage>`) behavior intact for all existing flags and outputs.
|
|
20
|
+
|
|
21
|
+
## B49 - Ensure `capture --list-apis` exits before capture flow
|
|
22
|
+
|
|
23
|
+
- [ ] Verify/adjust command flow in `src/rdc/commands/capture.py` so `--list-apis` short-circuits before executable validation.
|
|
24
|
+
- [ ] Ensure list mode does not enter split/local injection paths and does not require `-- EXECUTABLE` arguments.
|
|
25
|
+
- [ ] Keep output contract for API listing stable in text and JSON modes.
|
|
26
|
+
|
|
27
|
+
## B50 - Fix unreachable remote list error reporting
|
|
28
|
+
|
|
29
|
+
- [ ] Update `src/rdc/commands/remote.py` to surface connection failures as explicit errors for `remote list --url ...`.
|
|
30
|
+
- [ ] Restrict `no targets found` output to successful empty responses only.
|
|
31
|
+
- [ ] Align split-mode and local-mode failure handling so both return actionable connection errors.
|
|
32
|
+
|
|
33
|
+
## B51 - Clarify `pass` index base in help/docs
|
|
34
|
+
|
|
35
|
+
- [ ] Update `pass` command help/docstring in `src/rdc/commands/resources.py` to state that numeric index is 0-based.
|
|
36
|
+
- [ ] Update user-facing docs that reference pass lookup (for example `docs/usage.md` and `docs/index.md`) with 0-based wording.
|
|
37
|
+
- [ ] Keep naming lookup behavior unchanged while clarifying index semantics in CLI help text.
|
|
38
|
+
|
|
39
|
+
## Final validation
|
|
40
|
+
|
|
41
|
+
- [ ] Run `pixi run lint`.
|
|
42
|
+
- [ ] Run `pixi run test`.
|
|
43
|
+
- [ ] Execute manual verification steps from `test-plan.md` on a real capture/daemon session.
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Test Plan: Phase R3 Usability Fixes (B46-B51)
|
|
2
|
+
|
|
3
|
+
## Scope and Validation Strategy
|
|
4
|
+
|
|
5
|
+
This plan covers behavioral regressions and expected UX semantics for:
|
|
6
|
+
|
|
7
|
+
- B46: open path completion
|
|
8
|
+
- B47: completion silence on no-session for VFS
|
|
9
|
+
- B48: shader stage-only invocation after goto
|
|
10
|
+
- B49: `capture --list-apis` behavior
|
|
11
|
+
- B50: remote list unreachable error semantics
|
|
12
|
+
- B51: pass help/docs index clarity
|
|
13
|
+
|
|
14
|
+
Validation is split into:
|
|
15
|
+
|
|
16
|
+
- unit tests (command-level and helper-level behavior)
|
|
17
|
+
- CLI regression tests (stdout/stderr, exit code, and argument handling)
|
|
18
|
+
- shell completion checks (bash/zsh/fish)
|
|
19
|
+
- manual verification on a real capture workflow
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## B46: `open` Path Completion
|
|
24
|
+
|
|
25
|
+
### Unit tests to add/update
|
|
26
|
+
|
|
27
|
+
- Add completion tests for `open` that validate path suggestions are produced for valid local paths.
|
|
28
|
+
- Add tests that completion output is filtered by typed prefix and does not emit unrelated paths.
|
|
29
|
+
- Add tests that directory candidates include the shell-appropriate trailing separator when required by completion framework.
|
|
30
|
+
|
|
31
|
+
### CLI regression cases
|
|
32
|
+
|
|
33
|
+
- `rdc open <TAB>` at repo root returns path candidates, no stack traces.
|
|
34
|
+
- `rdc open tests/<TAB>` returns entries under `tests/` only.
|
|
35
|
+
- Completing a non-existent prefix returns no candidates and no error text.
|
|
36
|
+
|
|
37
|
+
### Shell completion matrix
|
|
38
|
+
|
|
39
|
+
- **bash**: verify candidate emission format used by bash completion script.
|
|
40
|
+
- **zsh**: verify candidate list is shown and remains prefix-filtered.
|
|
41
|
+
- **fish**: verify completion descriptions (if present) do not break candidate parsing.
|
|
42
|
+
|
|
43
|
+
### Acceptance criteria
|
|
44
|
+
|
|
45
|
+
- Completion for `open` returns deterministic, prefix-filtered path candidates across bash/zsh/fish.
|
|
46
|
+
- No stderr noise for normal completion flow.
|
|
47
|
+
- Exit code `0` for completion invocation paths.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## B47: Completion Silence on No Session for VFS
|
|
52
|
+
|
|
53
|
+
### Unit tests to add/update
|
|
54
|
+
|
|
55
|
+
- Add tests for VFS-backed completion when no active session exists: completion returns empty results.
|
|
56
|
+
- Add tests that no user-facing error message is emitted during completion when session is absent.
|
|
57
|
+
- Add tests that unexpected internal exceptions still map to controlled completion behavior (no traceback output).
|
|
58
|
+
|
|
59
|
+
### CLI regression cases
|
|
60
|
+
|
|
61
|
+
- Invoke VFS completion on a fresh environment (no prior `open`/session): no candidates, no error text.
|
|
62
|
+
- Re-run after opening a session: completion returns VFS candidates normally.
|
|
63
|
+
|
|
64
|
+
### Shell completion matrix
|
|
65
|
+
|
|
66
|
+
- **bash/zsh/fish**: same expected silent-empty behavior with no-session state.
|
|
67
|
+
|
|
68
|
+
### Acceptance criteria
|
|
69
|
+
|
|
70
|
+
- No-session completion path is silent (no stderr/stdout diagnostics) and returns zero candidates.
|
|
71
|
+
- Completion invocation exits with code `0`.
|
|
72
|
+
- Behavior is consistent across bash, zsh, and fish.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## B48: Shader Stage-Only Invocation After `goto`
|
|
77
|
+
|
|
78
|
+
### Unit tests to add/update
|
|
79
|
+
|
|
80
|
+
- Add tests for shader-related command invocation that provide only stage argument after `goto` selected event/context.
|
|
81
|
+
- Add tests that stage-only invocation resolves against current event/pipeline context.
|
|
82
|
+
- Add negative test: without required context (no event/session), command fails with clear usage/error semantics.
|
|
83
|
+
|
|
84
|
+
### CLI regression cases
|
|
85
|
+
|
|
86
|
+
- `rdc goto <event>` then shader command with stage only (e.g., `vs`/`ps`) succeeds and prints expected section header/output fragment.
|
|
87
|
+
- Same stage-only invocation before `goto` fails with expected error message and non-zero exit.
|
|
88
|
+
|
|
89
|
+
### Acceptance criteria
|
|
90
|
+
|
|
91
|
+
- After valid `goto`, stage-only shader invocation succeeds with exit code `0`.
|
|
92
|
+
- Without required context, command fails with stable, user-facing error and exit code `!= 0`.
|
|
93
|
+
- No ambiguous argument parsing regressions introduced for existing full-form shader invocation.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## B49: `capture --list-apis` Behavior
|
|
98
|
+
|
|
99
|
+
### Unit tests to add/update
|
|
100
|
+
|
|
101
|
+
- Add tests that `capture --list-apis` returns supported API list without requiring capture target arguments.
|
|
102
|
+
- Add tests that list output format is stable (one API per line or documented canonical format).
|
|
103
|
+
- Add tests that `capture --list-apis --json` returns valid JSON and still bypasses executable validation.
|
|
104
|
+
- Add tests that incompatible flag combinations produce deterministic error messaging.
|
|
105
|
+
|
|
106
|
+
### CLI regression cases
|
|
107
|
+
|
|
108
|
+
- `rdc capture --list-apis` prints API list and exits successfully.
|
|
109
|
+
- `rdc capture --list-apis --json` prints valid JSON and exits successfully.
|
|
110
|
+
- `rdc capture --list-apis` in environments with no active capture target still succeeds.
|
|
111
|
+
- Invalid combo case returns non-zero exit and concise usage/error output.
|
|
112
|
+
|
|
113
|
+
### Acceptance criteria
|
|
114
|
+
|
|
115
|
+
- `capture --list-apis` is self-contained and exits `0` on success.
|
|
116
|
+
- Output contains expected known API names (at least one canonical API token expected by docs).
|
|
117
|
+
- `capture --list-apis --json` returns parseable JSON and exits `0`.
|
|
118
|
+
- Invalid flag combinations exit `!= 0` with explicit error text.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## B50: `remote list` Unreachable Error Semantics
|
|
123
|
+
|
|
124
|
+
### Unit tests to add/update
|
|
125
|
+
|
|
126
|
+
- Add tests for network-unreachable daemon/host: command returns user-friendly connectivity error.
|
|
127
|
+
- Add tests that unreachable errors are classified distinctly from empty remote list success cases.
|
|
128
|
+
- Add tests that timeout/refused variants map to consistent exit code and message category.
|
|
129
|
+
|
|
130
|
+
### CLI regression cases
|
|
131
|
+
|
|
132
|
+
- `rdc remote list --url <unreachable-host:port>` returns non-zero exit and clear "unreachable/connection" wording.
|
|
133
|
+
- `rdc remote list --url <reachable-host:port>` with no remotes returns success with empty-state output.
|
|
134
|
+
|
|
135
|
+
### Acceptance criteria
|
|
136
|
+
|
|
137
|
+
- Unreachable endpoint: exit code `!= 0`, no misleading empty-list success message.
|
|
138
|
+
- Reachable but empty: exit code `0` with explicit empty-state output.
|
|
139
|
+
- Error wording is actionable (indicates connectivity problem rather than data absence).
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## B51: `pass` Help / Docs Index Clarity
|
|
144
|
+
|
|
145
|
+
### Unit tests to add/update
|
|
146
|
+
|
|
147
|
+
- Add tests for `rdc pass --help` content to ensure key usage lines and terminology are unambiguous.
|
|
148
|
+
- Add tests for docs/help text references to explicitly state numeric pass indices are 0-based.
|
|
149
|
+
- Add snapshot-style assertion for critical help fragment (`0-based`) to prevent wording regression.
|
|
150
|
+
|
|
151
|
+
### CLI regression cases
|
|
152
|
+
|
|
153
|
+
- `rdc pass --help` includes concise description and explicit `0-based` index wording.
|
|
154
|
+
- Docs pages that mention `pass <index|name>` include explicit 0-based wording.
|
|
155
|
+
|
|
156
|
+
### Acceptance criteria
|
|
157
|
+
|
|
158
|
+
- Help output for `pass` is discoverable and clear for first-time users.
|
|
159
|
+
- `pass` help/docs explicitly state index base (`0-based`).
|
|
160
|
+
- Help commands exit with code `0` and do not emit stderr noise in normal flow.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Cross-Cutting Manual Verification (Real Capture Workflow)
|
|
165
|
+
|
|
166
|
+
Run on a real capture file and live daemon/session setup.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
pixi run rdc open <real-capture.rdc>
|
|
170
|
+
pixi run rdc goto <valid-event-id>
|
|
171
|
+
pixi run rdc shader <stage-only>
|
|
172
|
+
pixi run rdc capture --list-apis
|
|
173
|
+
pixi run rdc capture --list-apis --json
|
|
174
|
+
pixi run rdc remote list --url <reachable-host:port>
|
|
175
|
+
pixi run rdc remote list --url <unreachable-host:port>
|
|
176
|
+
pixi run rdc pass --help
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Manual checks:
|
|
180
|
+
|
|
181
|
+
- completion behavior for `open` and VFS paths under bash/zsh/fish
|
|
182
|
+
- stage-only shader behavior before and after `goto`
|
|
183
|
+
- clear distinction between unreachable remote errors and empty successful lists
|
|
184
|
+
- help/docs wording clarity for `pass`
|
|
185
|
+
|
|
186
|
+
Expected outcomes:
|
|
187
|
+
|
|
188
|
+
- success paths return exit code `0`
|
|
189
|
+
- connectivity/invalid-context failures return exit code `!= 0`
|
|
190
|
+
- stderr is only used for true error conditions
|
|
@@ -46,3 +46,7 @@ gen-commands = "bash -c 'uv run python scripts/gen-commands.py > docs-astro/src/
|
|
|
46
46
|
check-commands = "bash -c 'diff <(uv run python scripts/gen-commands.py) docs-astro/src/data/commands.json'"
|
|
47
47
|
verify = "bash scripts/verify-package.sh"
|
|
48
48
|
e2e = "bash scripts/e2e-test.sh"
|
|
49
|
+
docs-install = "npm --prefix docs-astro ci"
|
|
50
|
+
docs-build = "npm --prefix docs-astro run build"
|
|
51
|
+
docs-test = "npm --prefix docs-astro test"
|
|
52
|
+
docs-dev = "npm --prefix docs-astro run dev"
|
|
@@ -15,6 +15,8 @@ FAIL=0
|
|
|
15
15
|
CAPTURE="tests/fixtures/hello_triangle.rdc"
|
|
16
16
|
TMP_CAPTURE_BASE=""
|
|
17
17
|
RDC="uv run rdc"
|
|
18
|
+
OS_NAME=$(uname -s)
|
|
19
|
+
REPLAY_READY=0
|
|
18
20
|
|
|
19
21
|
if [ ! -f "$CAPTURE" ]; then
|
|
20
22
|
echo -e "${RED}error: fixture not found: $CAPTURE${NC}"
|
|
@@ -22,7 +24,7 @@ if [ ! -f "$CAPTURE" ]; then
|
|
|
22
24
|
exit 1
|
|
23
25
|
fi
|
|
24
26
|
|
|
25
|
-
if [ ! -f ".local/renderdoc/renderdoc.so" ]; then
|
|
27
|
+
if [ ! -f ".local/renderdoc/renderdoc.so" ] && [ "$OS_NAME" != "Darwin" ]; then
|
|
26
28
|
echo -e "${RED}error: renderdoc.so not found${NC}"
|
|
27
29
|
echo "Run: pixi run setup-renderdoc"
|
|
28
30
|
exit 1
|
|
@@ -90,7 +92,17 @@ check "rdc --help" $RDC --help
|
|
|
90
92
|
# --- Doctor ---
|
|
91
93
|
echo ""
|
|
92
94
|
echo "=== Layer 1: Doctor ==="
|
|
93
|
-
|
|
95
|
+
DOCTOR_OUTPUT=$($RDC doctor 2>&1 || true)
|
|
96
|
+
if echo "$DOCTOR_OUTPUT" | grep -q "replay-support: renderdoc replay API surface found"; then
|
|
97
|
+
REPLAY_READY=1
|
|
98
|
+
fi
|
|
99
|
+
if echo "$DOCTOR_OUTPUT" | grep -q "replay-support:"; then
|
|
100
|
+
echo -e " ${GREEN}✓${NC} rdc doctor"
|
|
101
|
+
PASS=$((PASS + 1))
|
|
102
|
+
else
|
|
103
|
+
echo -e " ${RED}✗${NC} rdc doctor"
|
|
104
|
+
FAIL=$((FAIL + 1))
|
|
105
|
+
fi
|
|
94
106
|
|
|
95
107
|
# --- Session lifecycle ---
|
|
96
108
|
echo ""
|
|
@@ -102,13 +114,19 @@ check_output "rdc status" "capture:" $RDC status
|
|
|
102
114
|
# --- Read-only queries ---
|
|
103
115
|
echo ""
|
|
104
116
|
echo "=== Layer 3: Read-only queries ==="
|
|
105
|
-
|
|
106
|
-
check_nonzero "rdc
|
|
107
|
-
check_nonzero "rdc
|
|
108
|
-
check_nonzero "rdc
|
|
109
|
-
check_nonzero "rdc
|
|
110
|
-
check_nonzero "rdc
|
|
111
|
-
check_nonzero "rdc
|
|
117
|
+
if [ "$REPLAY_READY" -eq 1 ]; then
|
|
118
|
+
check_nonzero "rdc info" $RDC info
|
|
119
|
+
check_nonzero "rdc stats" $RDC stats
|
|
120
|
+
check_nonzero "rdc events" $RDC events
|
|
121
|
+
check_nonzero "rdc draws" $RDC draws
|
|
122
|
+
check_nonzero "rdc passes" $RDC passes
|
|
123
|
+
check_nonzero "rdc resources" $RDC resources
|
|
124
|
+
check_nonzero "rdc shaders" $RDC shaders
|
|
125
|
+
else
|
|
126
|
+
check_output "rdc info (no replay)" "no replay loaded" $RDC info
|
|
127
|
+
check_output "rdc stats (no replay)" "no replay loaded" $RDC stats
|
|
128
|
+
check_output "rdc draws (no replay)" "no replay loaded" $RDC draws
|
|
129
|
+
fi
|
|
112
130
|
|
|
113
131
|
# --- VFS ---
|
|
114
132
|
echo ""
|
|
@@ -116,19 +134,31 @@ echo "=== Layer 4: VFS ==="
|
|
|
116
134
|
check_nonzero "rdc ls /" $RDC ls /
|
|
117
135
|
check_nonzero "rdc ls /draws" $RDC ls /draws
|
|
118
136
|
check_nonzero "rdc tree / --depth 1" $RDC tree / --depth 1
|
|
119
|
-
|
|
120
|
-
check_nonzero "rdc cat /
|
|
137
|
+
if [ "$REPLAY_READY" -eq 1 ]; then
|
|
138
|
+
check_nonzero "rdc cat /info" $RDC cat /info
|
|
139
|
+
check_nonzero "rdc cat /stats" $RDC cat /stats
|
|
140
|
+
else
|
|
141
|
+
check_output "rdc cat /info (no replay)" "no replay loaded" $RDC cat /info
|
|
142
|
+
check_output "rdc cat /stats (no replay)" "no replay loaded" $RDC cat /stats
|
|
143
|
+
fi
|
|
121
144
|
|
|
122
145
|
# --- VFS completion ---
|
|
123
146
|
echo ""
|
|
124
147
|
echo "=== Layer 5: VFS completion ==="
|
|
125
148
|
check_nonzero "complete /" $RDC _complete /
|
|
126
149
|
check_nonzero "complete /d" $RDC _complete /d
|
|
127
|
-
|
|
150
|
+
if [ "$REPLAY_READY" -eq 1 ]; then
|
|
151
|
+
check_output "complete /d → /draws/" "/draws/" $RDC _complete /d
|
|
152
|
+
else
|
|
153
|
+
check_output "complete /d (no replay)" "no replay loaded" $RDC _complete /d
|
|
154
|
+
fi
|
|
128
155
|
COMP_OUTPUT=$(env _RDC_COMPLETE=bash_complete COMP_WORDS="rdc ls /d" COMP_CWORD=2 $RDC 2>&1 || true)
|
|
129
|
-
if echo "$COMP_OUTPUT" | grep -q "/draws/"; then
|
|
156
|
+
if [ "$REPLAY_READY" -eq 1 ] && echo "$COMP_OUTPUT" | grep -q "/draws/"; then
|
|
130
157
|
echo -e " ${GREEN}✓${NC} click shell_complete /d → /draws/"
|
|
131
158
|
PASS=$((PASS + 1))
|
|
159
|
+
elif [ "$REPLAY_READY" -eq 0 ] && echo "$COMP_OUTPUT" | grep -q "no replay loaded"; then
|
|
160
|
+
echo -e " ${GREEN}✓${NC} click shell_complete /d (no replay)"
|
|
161
|
+
PASS=$((PASS + 1))
|
|
132
162
|
else
|
|
133
163
|
echo -e " ${RED}✗${NC} click shell_complete /d (got '$COMP_OUTPUT')"
|
|
134
164
|
FAIL=$((FAIL + 1))
|
|
@@ -570,7 +570,7 @@ Create local default session and start daemon skeleton.
|
|
|
570
570
|
|
|
571
571
|
## `rdc pass`
|
|
572
572
|
|
|
573
|
-
Show detail for a single render pass by index or name.
|
|
573
|
+
Show detail for a single render pass by 0-based index or name.
|
|
574
574
|
|
|
575
575
|
**Arguments:**
|
|
576
576
|
|
|
@@ -849,8 +849,8 @@ Show shader metadata for a stage at EID.
|
|
|
849
849
|
|
|
850
850
|
| Name | Type | Required |
|
|
851
851
|
|------|------|----------|
|
|
852
|
-
| `
|
|
853
|
-
| `
|
|
852
|
+
| `first` | text | no |
|
|
853
|
+
| `second` | text | no |
|
|
854
854
|
|
|
855
855
|
**Options:**
|
|
856
856
|
|