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.
Files changed (592) hide show
  1. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/PKG-INFO +8 -11
  2. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/README.md +7 -10
  3. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/usage.md +8 -0
  4. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/layouts/Docs.astro +0 -1
  5. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/install.astro +20 -2
  6. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tests/validate.mjs +3 -2
  7. rdc_cli-0.3.6/openspec/changes/2026-02-26-phase-r3-usability-fixes/proposal.md +71 -0
  8. rdc_cli-0.3.6/openspec/changes/2026-02-26-phase-r3-usability-fixes/tasks.md +43 -0
  9. rdc_cli-0.3.6/openspec/changes/2026-02-26-phase-r3-usability-fixes/test-plan.md +190 -0
  10. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/pixi.toml +4 -0
  11. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/e2e-test.sh +43 -13
  12. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_skills/references/commands-quick-ref.md +3 -3
  13. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/_helpers.py +133 -0
  14. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/assert_ci.py +10 -4
  15. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/capture.py +42 -4
  16. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/counters.py +8 -2
  17. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/debug.py +4 -4
  18. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/diff.py +8 -1
  19. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/doctor.py +8 -1
  20. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/events.py +10 -4
  21. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/export.py +94 -5
  22. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/info.py +8 -2
  23. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/mesh.py +2 -2
  24. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/pick_pixel.py +2 -2
  25. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/pipeline.py +102 -12
  26. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/pixel.py +2 -2
  27. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/remote.py +25 -0
  28. rdc_cli-0.3.6/src/rdc/commands/resources.py +242 -0
  29. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/session.py +51 -2
  30. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/shader_edit.py +3 -3
  31. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/snapshot.py +2 -2
  32. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/tex_stats.py +2 -2
  33. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/unix_helpers.py +8 -2
  34. rdc_cli-0.3.6/src/rdc/commands/usage.py +155 -0
  35. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/vfs.py +14 -6
  36. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/discover.py +96 -7
  37. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/PKG-INFO +8 -11
  38. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/SOURCES.txt +7 -1
  39. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture.py +158 -3
  40. rdc_cli-0.3.6/tests/unit/test_discover.py +234 -0
  41. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_doctor.py +61 -0
  42. rdc_cli-0.3.6/tests/unit/test_eid_completion.py +108 -0
  43. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_commands.py +80 -0
  44. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_commands.py +49 -5
  45. rdc_cli-0.3.6/tests/unit/test_resource_semantic_completion.py +206 -0
  46. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_resources_commands.py +6 -0
  47. rdc_cli-0.3.6/tests/unit/test_semantic_completion.py +138 -0
  48. rdc_cli-0.3.6/tests/unit/test_session_completion.py +72 -0
  49. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_commands.py +4 -0
  50. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_completion.py +12 -0
  51. rdc_cli-0.3.5/docs-astro/src/pages/docs/install/windows.astro +0 -105
  52. rdc_cli-0.3.5/src/rdc/commands/resources.py +0 -132
  53. rdc_cli-0.3.5/src/rdc/commands/usage.py +0 -75
  54. rdc_cli-0.3.5/tests/unit/test_discover.py +0 -50
  55. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.commitlintrc.yml +0 -0
  56. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.githooks/pre-commit +0 -0
  57. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.githooks/pre-push +0 -0
  58. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/CODEOWNERS +0 -0
  59. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/aur.yml +0 -0
  60. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/ci.yml +0 -0
  61. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/commitlint.yml +0 -0
  62. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.github/workflows/docs.yml +0 -0
  63. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.gitignore +0 -0
  64. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.python-version +0 -0
  65. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/.release-please-manifest.json +0 -0
  66. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/LICENSE +0 -0
  67. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/Makefile +0 -0
  68. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/SECURITY.md +0 -0
  69. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/aur/PKGBUILD +0 -0
  70. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/aur/stable/PKGBUILD +0 -0
  71. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docker/Dockerfile +0 -0
  72. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/cli-reference.md +0 -0
  73. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/index.md +0 -0
  74. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/install.md +0 -0
  75. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs/vfs.md +0 -0
  76. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/astro.config.mjs +0 -0
  77. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/package-lock.json +0 -0
  78. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/package.json +0 -0
  79. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/public/.nojekyll +0 -0
  80. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/public/favicon.svg +0 -0
  81. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Commands.astro +0 -0
  82. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Demo.astro +0 -0
  83. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Features.astro +0 -0
  84. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Footer.astro +0 -0
  85. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Hero.astro +0 -0
  86. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Install.astro +0 -0
  87. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Navbar.astro +0 -0
  88. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Philosophy.astro +0 -0
  89. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/Terminal.astro +0 -0
  90. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
  91. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/data/commands.json +0 -0
  92. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/data/replay.json +0 -0
  93. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/data/stats.json +0 -0
  94. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/layouts/Base.astro +0 -0
  95. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
  96. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/commands.astro +0 -0
  97. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/design.astro +0 -0
  98. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/examples.astro +0 -0
  99. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/index.astro +0 -0
  100. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/remote.astro +0 -0
  101. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/usage.astro +0 -0
  102. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/docs/vfs.astro +0 -0
  103. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/pages/index.astro +0 -0
  104. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/src/styles/global.css +0 -0
  105. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tailwind.config.mjs +0 -0
  106. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tapes/pipeline.tape +0 -0
  107. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tapes/quickstart.tape +0 -0
  108. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/docs-astro/tsconfig.json +0 -0
  109. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/mkdocs.yml +0 -0
  110. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/mypy.ini +0 -0
  111. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-23-phase-w2-build-script/proposal.md +0 -0
  112. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-23-phase-w2-build-script/tasks.md +0 -0
  113. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-23-phase-w2-build-script/test-plan.md +0 -0
  114. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-m-macos-support/proposal.md +0 -0
  115. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-m-macos-support/tasks.md +0 -0
  116. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-m-macos-support/test-plan.md +0 -0
  117. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r1-quick-wins/proposal.md +0 -0
  118. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r1-quick-wins/tasks.md +0 -0
  119. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r1-quick-wins/test-plan.md +0 -0
  120. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r2-test-infrastructure/proposal.md +0 -0
  121. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r2-test-infrastructure/tasks.md +0 -0
  122. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/2026-02-24-phase-r2-test-infrastructure/test-plan.md +0 -0
  123. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -0
  124. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -0
  125. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -0
  126. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -0
  127. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -0
  128. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -0
  129. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -0
  130. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -0
  131. {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
  132. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -0
  133. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -0
  134. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -0
  135. {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
  136. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -0
  137. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -0
  138. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -0
  139. {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
  140. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -0
  141. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -0
  142. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -0
  143. {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
  144. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -0
  145. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -0
  146. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -0
  147. {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
  148. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -0
  149. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -0
  150. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -0
  151. {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
  152. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -0
  153. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -0
  154. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -0
  155. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -0
  156. {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
  157. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -0
  158. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -0
  159. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -0
  160. {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
  161. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -0
  162. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -0
  163. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -0
  164. {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
  165. {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
  166. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -0
  167. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -0
  168. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -0
  169. {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
  170. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -0
  171. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -0
  172. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -0
  173. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -0
  174. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -0
  175. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -0
  176. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -0
  177. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -0
  178. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -0
  179. {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
  180. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -0
  181. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -0
  182. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -0
  183. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -0
  184. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -0
  185. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -0
  186. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -0
  187. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -0
  188. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -0
  189. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -0
  190. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -0
  191. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -0
  192. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -0
  193. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -0
  194. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -0
  195. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -0
  196. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -0
  197. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -0
  198. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -0
  199. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -0
  200. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -0
  201. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -0
  202. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -0
  203. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -0
  204. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -0
  205. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -0
  206. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -0
  207. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -0
  208. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -0
  209. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -0
  210. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -0
  211. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -0
  212. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -0
  213. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -0
  214. {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
  215. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -0
  216. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -0
  217. {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
  218. {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
  219. {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
  220. {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
  221. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -0
  222. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -0
  223. {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
  224. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -0
  225. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -0
  226. {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
  227. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -0
  228. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -0
  229. {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
  230. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -0
  231. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -0
  232. {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
  233. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -0
  234. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -0
  235. {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
  236. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -0
  237. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -0
  238. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -0
  239. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -0
  240. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -0
  241. {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
  242. {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
  243. {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
  244. {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
  245. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -0
  246. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -0
  247. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -0
  248. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -0
  249. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -0
  250. {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
  251. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -0
  252. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -0
  253. {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
  254. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -0
  255. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -0
  256. {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
  257. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +0 -0
  258. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +0 -0
  259. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +0 -0
  260. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -0
  261. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -0
  262. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -0
  263. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -0
  264. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -0
  265. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -0
  266. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -0
  267. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -0
  268. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -0
  269. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -0
  270. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -0
  271. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -0
  272. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -0
  273. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -0
  274. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -0
  275. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -0
  276. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -0
  277. {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
  278. {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
  279. {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
  280. {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
  281. {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
  282. {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
  283. {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
  284. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -0
  285. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -0
  286. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -0
  287. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -0
  288. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -0
  289. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -0
  290. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -0
  291. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -0
  292. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -0
  293. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -0
  294. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -0
  295. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -0
  296. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -0
  297. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -0
  298. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -0
  299. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -0
  300. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -0
  301. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -0
  302. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-docs-automation/proposal.md +0 -0
  303. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-docs-automation/tasks.md +0 -0
  304. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-docs-automation/test-plan.md +0 -0
  305. {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
  306. {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
  307. {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
  308. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -0
  309. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -0
  310. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -0
  311. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -0
  312. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -0
  313. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -0
  314. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -0
  315. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -0
  316. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -0
  317. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -0
  318. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -0
  319. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -0
  320. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -0
  321. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -0
  322. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -0
  323. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -0
  324. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -0
  325. {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
  326. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -0
  327. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -0
  328. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -0
  329. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -0
  330. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -0
  331. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -0
  332. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -0
  333. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -0
  334. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -0
  335. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -0
  336. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -0
  337. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -0
  338. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -0
  339. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -0
  340. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -0
  341. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +0 -0
  342. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +0 -0
  343. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +0 -0
  344. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -0
  345. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -0
  346. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -0
  347. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -0
  348. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -0
  349. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -0
  350. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-skill-auto-install/proposal.md +0 -0
  351. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-skill-auto-install/tasks.md +0 -0
  352. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-skill-auto-install/test-plan.md +0 -0
  353. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -0
  354. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -0
  355. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -0
  356. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +0 -0
  357. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +0 -0
  358. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +0 -0
  359. {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
  360. {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
  361. {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
  362. {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
  363. {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
  364. {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
  365. {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
  366. {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
  367. {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
  368. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +0 -0
  369. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +0 -0
  370. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +0 -0
  371. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +0 -0
  372. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +0 -0
  373. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +0 -0
  374. {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
  375. {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
  376. {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
  377. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +0 -0
  378. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +0 -0
  379. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +0 -0
  380. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -0
  381. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -0
  382. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -0
  383. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -0
  384. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -0
  385. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -0
  386. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/proposal.md +0 -0
  387. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/tasks.md +0 -0
  388. {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
  389. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/architecture/spec.md +0 -0
  390. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/ci/spec.md +0 -0
  391. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/daemon/spec.md +0 -0
  392. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/foundation/spec.md +0 -0
  393. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/packaging/spec.md +0 -0
  394. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/session/spec.md +0 -0
  395. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/openspec/specs/tooling/spec.md +0 -0
  396. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/pixi.lock +0 -0
  397. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/pyproject.toml +0 -0
  398. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/release-please-config.json +0 -0
  399. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/ruff.toml +0 -0
  400. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/build-renderdoc.sh +0 -0
  401. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/build_renderdoc.py +0 -0
  402. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/capture_fixture.sh +0 -0
  403. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/ensure-renderdoc.sh +0 -0
  404. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-commands.py +0 -0
  405. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-replay.py +0 -0
  406. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-skill-ref.py +0 -0
  407. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/gen-stats.py +0 -0
  408. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/setup-renderdoc.sh +0 -0
  409. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/scripts/verify-package.sh +0 -0
  410. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/setup.cfg +0 -0
  411. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/__init__.py +0 -0
  412. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_platform.py +0 -0
  413. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_skills/SKILL.md +0 -0
  414. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_skills/__init__.py +0 -0
  415. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/_transport.py +0 -0
  416. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/adapter.py +0 -0
  417. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/capture_core.py +0 -0
  418. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/cli.py +0 -0
  419. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/assert_image.py +0 -0
  420. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/capture_control.py +0 -0
  421. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/capturefile.py +0 -0
  422. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/completion.py +0 -0
  423. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/install_skill.py +0 -0
  424. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/script.py +0 -0
  425. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/search.py +0 -0
  426. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/commands/serve.py +0 -0
  427. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/daemon_client.py +0 -0
  428. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/daemon_server.py +0 -0
  429. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/__init__.py +0 -0
  430. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/alignment.py +0 -0
  431. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/draws.py +0 -0
  432. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/framebuffer.py +0 -0
  433. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/pipeline.py +0 -0
  434. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/resources.py +0 -0
  435. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/stats.py +0 -0
  436. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/diff/summary.py +0 -0
  437. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/json_fmt.py +0 -0
  438. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/kv.py +0 -0
  439. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/options.py +0 -0
  440. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/formatters/tsv.py +0 -0
  441. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/__init__.py +0 -0
  442. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/_helpers.py +0 -0
  443. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/_types.py +0 -0
  444. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/buffer.py +0 -0
  445. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/capture.py +0 -0
  446. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/capturefile.py +0 -0
  447. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/core.py +0 -0
  448. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/debug.py +0 -0
  449. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/descriptor.py +0 -0
  450. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/pipe_state.py +0 -0
  451. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/pixel.py +0 -0
  452. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/query.py +0 -0
  453. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/script.py +0 -0
  454. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/shader.py +0 -0
  455. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/shader_edit.py +0 -0
  456. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/texture.py +0 -0
  457. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/handlers/vfs.py +0 -0
  458. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/image_compare.py +0 -0
  459. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/protocol.py +0 -0
  460. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/remote_core.py +0 -0
  461. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/remote_state.py +0 -0
  462. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/__init__.py +0 -0
  463. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/diff_service.py +0 -0
  464. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/query_service.py +0 -0
  465. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/services/session_service.py +0 -0
  466. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/session_state.py +0 -0
  467. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/target_state.py +0 -0
  468. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/__init__.py +0 -0
  469. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/formatter.py +0 -0
  470. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/router.py +0 -0
  471. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc/vfs/tree_cache.py +0 -0
  472. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
  473. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/entry_points.txt +0 -0
  474. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/requires.txt +0 -0
  475. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/src/rdc_cli.egg-info/top_level.txt +0 -0
  476. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/conftest.py +0 -0
  477. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/fixtures/hello_triangle.rdc +0 -0
  478. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/fixtures/vkcube.rdc +0 -0
  479. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/fixtures/vkcube_validation.rdc +0 -0
  480. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_build_renderdoc_integration.py +0 -0
  481. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_daemon_handlers_real.py +0 -0
  482. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_mock_api_sync.py +0 -0
  483. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_real_replay.py +0 -0
  484. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/integration/test_vulkan_samples.py +0 -0
  485. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/mocks/mock_renderdoc.py +0 -0
  486. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/conftest.py +0 -0
  487. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_adapter.py +0 -0
  488. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_assert_ci_commands.py +0 -0
  489. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_assert_image_command.py +0 -0
  490. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_binary_daemon.py +0 -0
  491. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_buffer_decode.py +0 -0
  492. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_build_renderdoc.py +0 -0
  493. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture_control.py +0 -0
  494. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture_core.py +0 -0
  495. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capture_handlers.py +0 -0
  496. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capturefile_commands.py +0 -0
  497. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_capturefile_handlers.py +0 -0
  498. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_ci_files.py +0 -0
  499. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_cli.py +0 -0
  500. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_cli_session_flag.py +0 -0
  501. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_completion.py +0 -0
  502. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_count_shadermap.py +0 -0
  503. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_counters_commands.py +0 -0
  504. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_counters_daemon.py +0 -0
  505. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_crash_regression.py +0 -0
  506. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_output_quality.py +0 -0
  507. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_pipeline_extended.py +0 -0
  508. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_server_unit.py +0 -0
  509. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_shader_api_fix.py +0 -0
  510. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_shader_extended.py +0 -0
  511. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_daemon_transport.py +0 -0
  512. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_debug_commands.py +0 -0
  513. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_debug_handlers.py +0 -0
  514. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_descriptors_daemon.py +0 -0
  515. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_alignment.py +0 -0
  516. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_command.py +0 -0
  517. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_draws.py +0 -0
  518. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_framebuffer.py +0 -0
  519. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_pipeline.py +0 -0
  520. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_resources.py +0 -0
  521. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_service.py +0 -0
  522. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_stats.py +0 -0
  523. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_diff_summary.py +0 -0
  524. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_draws_daemon.py +0 -0
  525. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_draws_events_cli.py +0 -0
  526. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_draws_events_daemon.py +0 -0
  527. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_events_commands.py +0 -0
  528. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_export_commands.py +0 -0
  529. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_export_overlay.py +0 -0
  530. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_fix1_draws_pass_name.py +0 -0
  531. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_fix2_vfs_intermediate_dirs.py +0 -0
  532. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
  533. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_formatters.py +0 -0
  534. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_formatters_kv.py +0 -0
  535. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_gen_skill_ref.py +0 -0
  536. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_handlers_remote.py +0 -0
  537. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_image_compare.py +0 -0
  538. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_info_commands.py +0 -0
  539. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_install_skill.py +0 -0
  540. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_json_errors.py +0 -0
  541. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_keep_remote.py +0 -0
  542. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mesh_commands.py +0 -0
  543. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mesh_handler.py +0 -0
  544. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mock_capture_types.py +0 -0
  545. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_mock_renderdoc.py +0 -0
  546. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_open_remote.py +0 -0
  547. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_output_options.py +0 -0
  548. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_overlay_handler.py +0 -0
  549. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pick_pixel_commands.py +0 -0
  550. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pick_pixel_daemon.py +0 -0
  551. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_cli_phase27.py +0 -0
  552. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_daemon.py +0 -0
  553. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_section_routing.py +0 -0
  554. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_shader.py +0 -0
  555. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pipeline_state.py +0 -0
  556. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pixel_history_commands.py +0 -0
  557. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pixel_history_daemon.py +0 -0
  558. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_pixi_files.py +0 -0
  559. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_platform.py +0 -0
  560. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_protocol.py +0 -0
  561. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_query_service.py +0 -0
  562. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_core.py +0 -0
  563. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_replay.py +0 -0
  564. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_remote_state.py +0 -0
  565. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_resources_filter.py +0 -0
  566. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_script_command.py +0 -0
  567. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_script_handler.py +0 -0
  568. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_search.py +0 -0
  569. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_serve.py +0 -0
  570. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_session_commands.py +0 -0
  571. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_session_service.py +0 -0
  572. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_session_state.py +0 -0
  573. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_shader_edit_commands.py +0 -0
  574. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_shader_edit_handlers.py +0 -0
  575. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_shader_preload.py +0 -0
  576. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_skill_structure.py +0 -0
  577. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_snapshot_command.py +0 -0
  578. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_split_binary.py +0 -0
  579. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_split_core.py +0 -0
  580. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_target_state.py +0 -0
  581. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_tex_stats_commands.py +0 -0
  582. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_tex_stats_handler.py +0 -0
  583. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_tooling_files.py +0 -0
  584. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_unix_helpers_commands.py +0 -0
  585. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_usage_commands.py +0 -0
  586. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_usage_daemon.py +0 -0
  587. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_binary.py +0 -0
  588. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_daemon.py +0 -0
  589. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_formatter.py +0 -0
  590. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_router.py +0 -0
  591. {rdc_cli-0.3.5 → rdc_cli-0.3.6}/tests/unit/test_vfs_tree_cache.py +0 -0
  592. {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.5
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** (remote replay recommended)
77
+ **PyPI — macOS** (Split client only)
78
78
 
79
79
  ```bash
80
80
  pipx install rdc-cli
81
- # Remote replay (no local renderdoc needed):
82
- rdc remote connect linux-host:39920 # connect to a Linux/Windows target
83
- rdc remote list # list capturable apps
84
- rdc remote capture /path/to/app # capture + pull .rdc file
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 | (`pixi run setup-renderdoc`) | ✅ (no local RenderDoc needed) |
115
- | Windows *(experimental, not tested in this PR)* | ⚠️ expected | ⚠️ expected |
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** (remote replay recommended)
48
+ **PyPI — macOS** (Split client only)
49
49
 
50
50
  ```bash
51
51
  pipx install rdc-cli
52
- # Remote replay (no local renderdoc needed):
53
- rdc remote connect linux-host:39920 # connect to a Linux/Windows target
54
- rdc remote list # list capturable apps
55
- rdc remote capture /path/to/app # capture + pull .rdc file
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 | (`pixi run setup-renderdoc`) | ✅ (no local RenderDoc needed) |
86
- | Windows *(experimental, not tested in this PR)* | ⚠️ expected | ⚠️ expected |
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>Supported (<code>pixi run setup-renderdoc</code>)</td>
48
- <td>Supported (no local RenderDoc needed)</td>
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 typed.js script', () => {
138
- assert(indexHtml.includes('typed-output'), 'Missing typed.js #typed-output element');
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
- check "rdc doctor" $RDC doctor
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
- check_nonzero "rdc info" $RDC info
106
- check_nonzero "rdc stats" $RDC stats
107
- check_nonzero "rdc events" $RDC events
108
- check_nonzero "rdc draws" $RDC draws
109
- check_nonzero "rdc passes" $RDC passes
110
- check_nonzero "rdc resources" $RDC resources
111
- check_nonzero "rdc shaders" $RDC shaders
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
- check_nonzero "rdc cat /info" $RDC cat /info
120
- check_nonzero "rdc cat /stats" $RDC cat /stats
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
- check_output "complete /d → /draws/" "/draws/" $RDC _complete /d
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
- | `eid` | integer | no |
853
- | `stage` | choice | no |
852
+ | `first` | text | no |
853
+ | `second` | text | no |
854
854
 
855
855
  **Options:**
856
856