rdc-cli 0.5.5__tar.gz → 0.5.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 (669) hide show
  1. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/workflows/aur.yml +2 -2
  2. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/PKG-INFO +1 -1
  3. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/data/commands.json +1 -1
  4. rdc_cli-0.5.6/openspec/changes/2026-06-04-open-gpu-override/proposal.md +83 -0
  5. rdc_cli-0.5.6/openspec/changes/2026-06-04-open-gpu-override/tasks.md +14 -0
  6. rdc_cli-0.5.6/openspec/changes/2026-06-04-open-gpu-override/test-plan.md +36 -0
  7. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/proposal.md +101 -0
  8. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/tasks.md +12 -0
  9. rdc_cli-0.5.6/openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/test-plan.md +34 -0
  10. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/specs/daemon/spec.md +6 -1
  11. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/_skills/references/commands-quick-ref.md +1 -0
  12. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/doctor.py +8 -0
  13. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/session.py +18 -2
  14. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/daemon_server.py +55 -8
  15. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/discover.py +14 -0
  16. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/services/session_service.py +7 -1
  17. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc_cli.egg-info/PKG-INFO +1 -1
  18. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc_cli.egg-info/SOURCES.txt +6 -0
  19. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_daemon_server_unit.py +50 -1
  20. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_discover.py +58 -0
  21. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_doctor.py +26 -0
  22. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_session_commands.py +26 -0
  23. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_session_service.py +27 -0
  24. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.commitlintrc.yml +0 -0
  25. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.githooks/pre-commit +0 -0
  26. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.githooks/pre-push +0 -0
  27. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/CODEOWNERS +0 -0
  28. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  29. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  30. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  31. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  32. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/workflows/ci.yml +0 -0
  33. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/workflows/commitlint.yml +0 -0
  34. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.github/workflows/docs.yml +0 -0
  35. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.gitignore +0 -0
  36. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.python-version +0 -0
  37. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/.release-please-manifest.json +0 -0
  38. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/CONTRIBUTING.md +0 -0
  39. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/LICENSE +0 -0
  40. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/Makefile +0 -0
  41. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/README.md +0 -0
  42. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/SECURITY.md +0 -0
  43. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/aur/PKGBUILD +0 -0
  44. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/aur/stable/PKGBUILD +0 -0
  45. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docker/Dockerfile +0 -0
  46. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/astro.config.mjs +0 -0
  47. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/package-lock.json +0 -0
  48. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/package.json +0 -0
  49. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/public/.nojekyll +0 -0
  50. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/public/favicon.svg +0 -0
  51. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Commands.astro +0 -0
  52. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Demo.astro +0 -0
  53. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Features.astro +0 -0
  54. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Footer.astro +0 -0
  55. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Hero.astro +0 -0
  56. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Install.astro +0 -0
  57. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Navbar.astro +0 -0
  58. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Philosophy.astro +0 -0
  59. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/Terminal.astro +0 -0
  60. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
  61. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/data/replay.json +0 -0
  62. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/data/stats.json +0 -0
  63. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/layouts/Base.astro +0 -0
  64. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/layouts/Docs.astro +0 -0
  65. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
  66. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/commands.astro +0 -0
  67. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/design.astro +0 -0
  68. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/examples.astro +0 -0
  69. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/index.astro +0 -0
  70. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/install.astro +0 -0
  71. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/remote.astro +0 -0
  72. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/usage.astro +0 -0
  73. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/docs/vfs.astro +0 -0
  74. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/pages/index.astro +0 -0
  75. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/src/styles/global.css +0 -0
  76. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/tailwind.config.mjs +0 -0
  77. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/tapes/pipeline.tape +0 -0
  78. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/tapes/quickstart.tape +0 -0
  79. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/tests/validate.mjs +0 -0
  80. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/docs-astro/tsconfig.json +0 -0
  81. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/mypy.ini +0 -0
  82. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/2026-03-03-bugfix-p2-batch/proposal.md +0 -0
  83. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/2026-03-03-bugfix-p2-batch/tasks.md +0 -0
  84. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/2026-03-03-bugfix-p2-batch/test-plan.md +0 -0
  85. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/2026-03-04-w6-windows-bugfixes/proposal.md +0 -0
  86. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/2026-03-04-w6-windows-bugfixes/tasks.md +0 -0
  87. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/2026-03-04-w6-windows-bugfixes/test-plan.md +0 -0
  88. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -0
  89. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -0
  90. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -0
  91. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -0
  92. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -0
  93. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -0
  94. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -0
  95. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -0
  96. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +0 -0
  97. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -0
  98. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -0
  99. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -0
  100. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +0 -0
  101. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -0
  102. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -0
  103. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -0
  104. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +0 -0
  105. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -0
  106. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -0
  107. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -0
  108. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +0 -0
  109. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -0
  110. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -0
  111. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -0
  112. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +0 -0
  113. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -0
  114. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -0
  115. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -0
  116. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +0 -0
  117. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -0
  118. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -0
  119. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -0
  120. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -0
  121. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +0 -0
  122. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -0
  123. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -0
  124. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -0
  125. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +0 -0
  126. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -0
  127. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -0
  128. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -0
  129. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +0 -0
  130. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +0 -0
  131. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -0
  132. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -0
  133. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -0
  134. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +0 -0
  135. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -0
  136. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -0
  137. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -0
  138. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -0
  139. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -0
  140. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -0
  141. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -0
  142. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -0
  143. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -0
  144. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +0 -0
  145. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -0
  146. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -0
  147. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -0
  148. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -0
  149. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -0
  150. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -0
  151. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -0
  152. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -0
  153. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -0
  154. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -0
  155. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -0
  156. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -0
  157. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -0
  158. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -0
  159. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -0
  160. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -0
  161. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -0
  162. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -0
  163. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -0
  164. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -0
  165. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -0
  166. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -0
  167. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -0
  168. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -0
  169. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -0
  170. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -0
  171. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -0
  172. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -0
  173. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -0
  174. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -0
  175. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -0
  176. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -0
  177. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -0
  178. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -0
  179. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +0 -0
  180. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -0
  181. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -0
  182. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +0 -0
  183. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +0 -0
  184. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +0 -0
  185. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +0 -0
  186. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -0
  187. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -0
  188. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +0 -0
  189. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -0
  190. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -0
  191. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +0 -0
  192. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -0
  193. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -0
  194. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +0 -0
  195. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -0
  196. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -0
  197. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +0 -0
  198. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -0
  199. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -0
  200. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +0 -0
  201. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -0
  202. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -0
  203. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -0
  204. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -0
  205. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -0
  206. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +0 -0
  207. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +0 -0
  208. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +0 -0
  209. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +0 -0
  210. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -0
  211. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -0
  212. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -0
  213. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -0
  214. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -0
  215. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +0 -0
  216. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -0
  217. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -0
  218. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +0 -0
  219. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -0
  220. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -0
  221. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +0 -0
  222. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +0 -0
  223. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +0 -0
  224. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +0 -0
  225. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -0
  226. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -0
  227. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -0
  228. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -0
  229. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -0
  230. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -0
  231. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -0
  232. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -0
  233. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -0
  234. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -0
  235. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -0
  236. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -0
  237. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -0
  238. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -0
  239. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -0
  240. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -0
  241. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -0
  242. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +0 -0
  243. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +0 -0
  244. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +0 -0
  245. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +0 -0
  246. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +0 -0
  247. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +0 -0
  248. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +0 -0
  249. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -0
  250. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -0
  251. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -0
  252. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -0
  253. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -0
  254. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -0
  255. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -0
  256. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -0
  257. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -0
  258. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -0
  259. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -0
  260. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -0
  261. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -0
  262. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -0
  263. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -0
  264. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -0
  265. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -0
  266. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -0
  267. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-docs-automation/proposal.md +0 -0
  268. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-docs-automation/tasks.md +0 -0
  269. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-docs-automation/test-plan.md +0 -0
  270. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/proposal.md +0 -0
  271. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/tasks.md +0 -0
  272. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/test-plan.md +0 -0
  273. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -0
  274. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -0
  275. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -0
  276. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -0
  277. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -0
  278. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -0
  279. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -0
  280. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -0
  281. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -0
  282. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -0
  283. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -0
  284. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -0
  285. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -0
  286. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -0
  287. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -0
  288. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -0
  289. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -0
  290. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +0 -0
  291. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -0
  292. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -0
  293. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -0
  294. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -0
  295. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -0
  296. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -0
  297. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -0
  298. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -0
  299. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -0
  300. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -0
  301. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -0
  302. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -0
  303. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -0
  304. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -0
  305. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -0
  306. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +0 -0
  307. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +0 -0
  308. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +0 -0
  309. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -0
  310. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -0
  311. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -0
  312. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -0
  313. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -0
  314. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -0
  315. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-skill-auto-install/proposal.md +0 -0
  316. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-skill-auto-install/tasks.md +0 -0
  317. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-skill-auto-install/test-plan.md +0 -0
  318. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -0
  319. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -0
  320. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -0
  321. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +0 -0
  322. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +0 -0
  323. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +0 -0
  324. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/proposal.md +0 -0
  325. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/tasks.md +0 -0
  326. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/test-plan.md +0 -0
  327. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/proposal.md +0 -0
  328. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/tasks.md +0 -0
  329. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/test-plan.md +0 -0
  330. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/proposal.md +0 -0
  331. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/tasks.md +0 -0
  332. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/test-plan.md +0 -0
  333. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +0 -0
  334. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +0 -0
  335. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +0 -0
  336. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +0 -0
  337. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +0 -0
  338. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +0 -0
  339. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/proposal.md +0 -0
  340. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/tasks.md +0 -0
  341. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/test-plan.md +0 -0
  342. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-phase-w2-build-script/proposal.md +0 -0
  343. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-phase-w2-build-script/tasks.md +0 -0
  344. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-phase-w2-build-script/test-plan.md +0 -0
  345. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +0 -0
  346. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +0 -0
  347. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +0 -0
  348. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -0
  349. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -0
  350. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -0
  351. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -0
  352. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -0
  353. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -0
  354. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/proposal.md +0 -0
  355. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/tasks.md +0 -0
  356. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/test-plan.md +0 -0
  357. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-m-macos-support/proposal.md +0 -0
  358. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-m-macos-support/tasks.md +0 -0
  359. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-m-macos-support/test-plan.md +0 -0
  360. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/proposal.md +0 -0
  361. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/tasks.md +0 -0
  362. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/test-plan.md +0 -0
  363. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/proposal.md +0 -0
  364. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/tasks.md +0 -0
  365. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/test-plan.md +0 -0
  366. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/proposal.md +0 -0
  367. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/tasks.md +0 -0
  368. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/test-plan.md +0 -0
  369. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-28-design-deviation-fixes/proposal.md +0 -0
  370. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-28-design-deviation-fixes/tasks.md +0 -0
  371. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-28-design-deviation-fixes/test-plan.md +0 -0
  372. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-28-dev-install-enhancement/proposal.md +0 -0
  373. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-28-dev-install-enhancement/tasks.md +0 -0
  374. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-02-28-dev-install-enhancement/test-plan.md +0 -0
  375. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-fix-225-d3d12-multi-gpu/proposal.md +0 -0
  376. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-fix-225-d3d12-multi-gpu/tasks.md +0 -0
  377. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-fix-225-d3d12-multi-gpu/test-plan.md +0 -0
  378. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/proposal.md +0 -0
  379. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/specs/daemon/spec.md +0 -0
  380. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/tasks.md +0 -0
  381. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-cbuffer-export/test-plan.md +0 -0
  382. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/proposal.md +0 -0
  383. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/specs/daemon/spec.md +0 -0
  384. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/tasks.md +0 -0
  385. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/test-plan.md +0 -0
  386. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/proposal.md +0 -0
  387. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/tasks.md +0 -0
  388. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/test-plan.md +0 -0
  389. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/specs/architecture/spec.md +0 -0
  390. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/specs/ci/spec.md +0 -0
  391. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/specs/foundation/spec.md +0 -0
  392. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/specs/packaging/spec.md +0 -0
  393. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/specs/session/spec.md +0 -0
  394. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/openspec/specs/tooling/spec.md +0 -0
  395. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/pixi.lock +0 -0
  396. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/pixi.toml +0 -0
  397. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/pyproject.toml +0 -0
  398. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/release-please-config.json +0 -0
  399. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/ruff.toml +0 -0
  400. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/build-renderdoc.sh +0 -0
  401. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/build_renderdoc.py +0 -0
  402. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/capture_fixture.sh +0 -0
  403. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/dev_install.py +0 -0
  404. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/e2e_test.py +0 -0
  405. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/ensure-renderdoc.py +0 -0
  406. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/ensure-renderdoc.sh +0 -0
  407. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/ensure-skill-link.py +0 -0
  408. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/gen-commands.py +0 -0
  409. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/gen-replay.py +0 -0
  410. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/gen-skill-ref.py +0 -0
  411. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/gen-stats.py +0 -0
  412. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/gen_and_check.py +0 -0
  413. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/setup-renderdoc.sh +0 -0
  414. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/setup-vulkan-samples.sh +0 -0
  415. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/setup_android_tools.py +0 -0
  416. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/setup_vulkan_samples.py +0 -0
  417. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/verify-package.sh +0 -0
  418. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/scripts/verify_package.py +0 -0
  419. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/setup.cfg +0 -0
  420. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/__init__.py +0 -0
  421. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/_build_renderdoc.py +0 -0
  422. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/_platform.py +0 -0
  423. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/_progress.py +0 -0
  424. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/_skills/SKILL.md +0 -0
  425. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/_skills/__init__.py +0 -0
  426. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/_transport.py +0 -0
  427. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/adapter.py +0 -0
  428. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/capture_core.py +0 -0
  429. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/cli.py +0 -0
  430. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/_helpers.py +0 -0
  431. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/android.py +0 -0
  432. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/assert_ci.py +0 -0
  433. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/assert_image.py +0 -0
  434. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/capture.py +0 -0
  435. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/capture_control.py +0 -0
  436. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/capturefile.py +0 -0
  437. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/cbuffer.py +0 -0
  438. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/completion.py +0 -0
  439. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/counters.py +0 -0
  440. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/debug.py +0 -0
  441. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/diff.py +0 -0
  442. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/events.py +0 -0
  443. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/export.py +0 -0
  444. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/info.py +0 -0
  445. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/install_skill.py +0 -0
  446. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/mesh.py +0 -0
  447. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/pick_pixel.py +0 -0
  448. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/pipeline.py +0 -0
  449. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/pixel.py +0 -0
  450. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/remote.py +0 -0
  451. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/resources.py +0 -0
  452. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/script.py +0 -0
  453. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/search.py +0 -0
  454. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/serve.py +0 -0
  455. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/setup_renderdoc.py +0 -0
  456. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/shader_edit.py +0 -0
  457. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/snapshot.py +0 -0
  458. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/tex_stats.py +0 -0
  459. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/unix_helpers.py +0 -0
  460. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/unused_targets.py +0 -0
  461. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/usage.py +0 -0
  462. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/commands/vfs.py +0 -0
  463. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/daemon_client.py +0 -0
  464. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/__init__.py +0 -0
  465. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/alignment.py +0 -0
  466. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/draws.py +0 -0
  467. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/framebuffer.py +0 -0
  468. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/pipeline.py +0 -0
  469. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/resources.py +0 -0
  470. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/stats.py +0 -0
  471. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/diff/summary.py +0 -0
  472. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/formatters/json_fmt.py +0 -0
  473. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/formatters/kv.py +0 -0
  474. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/formatters/options.py +0 -0
  475. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/formatters/tsv.py +0 -0
  476. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/__init__.py +0 -0
  477. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/_helpers.py +0 -0
  478. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/_types.py +0 -0
  479. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/buffer.py +0 -0
  480. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/capture.py +0 -0
  481. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/capturefile.py +0 -0
  482. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/core.py +0 -0
  483. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/debug.py +0 -0
  484. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/descriptor.py +0 -0
  485. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/pipe_state.py +0 -0
  486. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/pixel.py +0 -0
  487. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/query.py +0 -0
  488. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/script.py +0 -0
  489. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/shader.py +0 -0
  490. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/shader_edit.py +0 -0
  491. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/texture.py +0 -0
  492. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/unused.py +0 -0
  493. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/handlers/vfs.py +0 -0
  494. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/image_compare.py +0 -0
  495. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/protocol.py +0 -0
  496. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/remote_core.py +0 -0
  497. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/remote_state.py +0 -0
  498. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/services/__init__.py +0 -0
  499. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/services/diff_service.py +0 -0
  500. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/services/query_service.py +0 -0
  501. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/session_state.py +0 -0
  502. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/target_state.py +0 -0
  503. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/vfs/__init__.py +0 -0
  504. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/vfs/formatter.py +0 -0
  505. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/vfs/router.py +0 -0
  506. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc/vfs/tree_cache.py +0 -0
  507. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
  508. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc_cli.egg-info/entry_points.txt +0 -0
  509. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc_cli.egg-info/requires.txt +0 -0
  510. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/src/rdc_cli.egg-info/top_level.txt +0 -0
  511. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/conftest.py +0 -0
  512. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/__init__.py +0 -0
  513. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/blackbox_test_catalog.md +0 -0
  514. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/conftest.py +0 -0
  515. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/e2e_helpers.py +0 -0
  516. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_advanced.py +0 -0
  517. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_assert.py +0 -0
  518. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_capture.py +0 -0
  519. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_capturefile.py +0 -0
  520. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_debug.py +0 -0
  521. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_diff.py +0 -0
  522. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_export.py +0 -0
  523. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_formats.py +0 -0
  524. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_presession.py +0 -0
  525. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_query.py +0 -0
  526. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_session.py +0 -0
  527. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_shader_edit.py +0 -0
  528. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/e2e/test_vfs.py +0 -0
  529. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/fixtures/gles-multipass-debug.apk +0 -0
  530. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/fixtures/gles-triangle-debug.apk +0 -0
  531. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/fixtures/gles_android_mali.rdc +0 -0
  532. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/fixtures/gles_multipass_mali.rdc +0 -0
  533. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/fixtures/hello_triangle.rdc +0 -0
  534. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/fixtures/vkcube.rdc +0 -0
  535. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/fixtures/vkcube_validation.rdc +0 -0
  536. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/integration/test_build_renderdoc_integration.py +0 -0
  537. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/integration/test_daemon_handlers_real.py +0 -0
  538. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/integration/test_mock_api_sync.py +0 -0
  539. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/integration/test_real_replay.py +0 -0
  540. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/integration/test_vulkan_samples.py +0 -0
  541. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/mocks/mock_renderdoc.py +0 -0
  542. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/conftest.py +0 -0
  543. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_adapter.py +0 -0
  544. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_android_commands.py +0 -0
  545. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_assert_ci_commands.py +0 -0
  546. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_assert_image_command.py +0 -0
  547. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_binary_daemon.py +0 -0
  548. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_buffer_decode.py +0 -0
  549. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_build_renderdoc.py +0 -0
  550. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_capture.py +0 -0
  551. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_capture_control.py +0 -0
  552. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_capture_core.py +0 -0
  553. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_capture_handlers.py +0 -0
  554. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_capturefile_commands.py +0 -0
  555. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_capturefile_handlers.py +0 -0
  556. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_cbuffer_commands.py +0 -0
  557. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_ci_files.py +0 -0
  558. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_cli.py +0 -0
  559. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_cli_session_flag.py +0 -0
  560. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_completion.py +0 -0
  561. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_count_shadermap.py +0 -0
  562. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_counters_commands.py +0 -0
  563. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_counters_daemon.py +0 -0
  564. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_daemon_crash_regression.py +0 -0
  565. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_daemon_output_quality.py +0 -0
  566. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_daemon_pipeline_extended.py +0 -0
  567. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_daemon_shader_api_fix.py +0 -0
  568. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_daemon_shader_extended.py +0 -0
  569. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_daemon_transport.py +0 -0
  570. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_debug_commands.py +0 -0
  571. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_debug_handlers.py +0 -0
  572. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_descriptors_daemon.py +0 -0
  573. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_dev_install.py +0 -0
  574. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_alignment.py +0 -0
  575. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_command.py +0 -0
  576. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_draws.py +0 -0
  577. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_framebuffer.py +0 -0
  578. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_pipeline.py +0 -0
  579. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_resources.py +0 -0
  580. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_service.py +0 -0
  581. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_stats.py +0 -0
  582. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_diff_summary.py +0 -0
  583. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_doctor_hints.py +0 -0
  584. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_draws_daemon.py +0 -0
  585. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_draws_events_cli.py +0 -0
  586. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_draws_events_daemon.py +0 -0
  587. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_eid_completion.py +0 -0
  588. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_events_commands.py +0 -0
  589. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_export_commands.py +0 -0
  590. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_export_overlay.py +0 -0
  591. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_fix1_draws_pass_name.py +0 -0
  592. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_fix2_vfs_intermediate_dirs.py +0 -0
  593. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
  594. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_formatters.py +0 -0
  595. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_formatters_kv.py +0 -0
  596. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_gen_skill_ref.py +0 -0
  597. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_handlers_remote.py +0 -0
  598. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_image_compare.py +0 -0
  599. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_info_commands.py +0 -0
  600. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_install_skill.py +0 -0
  601. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_json_errors.py +0 -0
  602. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_keep_remote.py +0 -0
  603. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_mesh_commands.py +0 -0
  604. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_mesh_handler.py +0 -0
  605. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_mock_capture_types.py +0 -0
  606. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_mock_renderdoc.py +0 -0
  607. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_open_remote.py +0 -0
  608. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_output_options.py +0 -0
  609. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_overlay_handler.py +0 -0
  610. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pass_deps.py +0 -0
  611. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pick_pixel_commands.py +0 -0
  612. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pick_pixel_daemon.py +0 -0
  613. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pipeline_cli_phase27.py +0 -0
  614. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pipeline_commands.py +0 -0
  615. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pipeline_daemon.py +0 -0
  616. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pipeline_section_routing.py +0 -0
  617. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pipeline_shader.py +0 -0
  618. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pipeline_state.py +0 -0
  619. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pixel_history_commands.py +0 -0
  620. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pixel_history_daemon.py +0 -0
  621. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_pixi_files.py +0 -0
  622. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_platform.py +0 -0
  623. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_progress.py +0 -0
  624. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_protocol.py +0 -0
  625. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_query_service.py +0 -0
  626. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_quickfix_batch.py +0 -0
  627. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_remote_commands.py +0 -0
  628. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_remote_core.py +0 -0
  629. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_remote_replay.py +0 -0
  630. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_remote_setup.py +0 -0
  631. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_remote_state.py +0 -0
  632. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_remote_status_disconnect.py +0 -0
  633. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_require_pipe.py +0 -0
  634. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_resource_semantic_completion.py +0 -0
  635. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_resources_commands.py +0 -0
  636. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_resources_filter.py +0 -0
  637. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_script_command.py +0 -0
  638. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_script_handler.py +0 -0
  639. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_search.py +0 -0
  640. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_semantic_completion.py +0 -0
  641. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_serve.py +0 -0
  642. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_session_completion.py +0 -0
  643. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_session_state.py +0 -0
  644. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_setup_renderdoc.py +0 -0
  645. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_setup_vulkan_samples.py +0 -0
  646. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_shader_edit_commands.py +0 -0
  647. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_shader_edit_handlers.py +0 -0
  648. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_shader_preload.py +0 -0
  649. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_skill_structure.py +0 -0
  650. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_snapshot_command.py +0 -0
  651. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_split_binary.py +0 -0
  652. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_split_core.py +0 -0
  653. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_target_state.py +0 -0
  654. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_tex_stats_commands.py +0 -0
  655. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_tex_stats_handler.py +0 -0
  656. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_tooling_files.py +0 -0
  657. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_unix_helpers_commands.py +0 -0
  658. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_unused_targets.py +0 -0
  659. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_usage_commands.py +0 -0
  660. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_usage_daemon.py +0 -0
  661. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_vfs_binary.py +0 -0
  662. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_vfs_commands.py +0 -0
  663. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_vfs_completion.py +0 -0
  664. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_vfs_daemon.py +0 -0
  665. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_vfs_formatter.py +0 -0
  666. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_vfs_router.py +0 -0
  667. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_vfs_tree_cache.py +0 -0
  668. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/tests/unit/test_windows_compat.py +0 -0
  669. {rdc_cli-0.5.5 → rdc_cli-0.5.6}/uv.lock +0 -0
@@ -22,7 +22,7 @@ jobs:
22
22
  steps:
23
23
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
24
24
 
25
- - uses: KSXGitHub/github-actions-deploy-aur@2ac5a4c1d7035885d46b10e3193393be8460b6f1 # v4.1.1
25
+ - uses: KSXGitHub/github-actions-deploy-aur@da03e160361ce01bf087e790b6ffd196d7dccff7 # v4.1.3
26
26
  with:
27
27
  pkgname: rdc-cli-git
28
28
  pkgbuild: aur/PKGBUILD
@@ -69,7 +69,7 @@ jobs:
69
69
  sed -i "s/^pkgver=.*/pkgver=${VERSION}/" aur/stable/PKGBUILD
70
70
  sed -i "s/'PLACEHOLDER'/'${SHA256}'/" aur/stable/PKGBUILD
71
71
 
72
- - uses: KSXGitHub/github-actions-deploy-aur@2ac5a4c1d7035885d46b10e3193393be8460b6f1 # v4.1.1
72
+ - uses: KSXGitHub/github-actions-deploy-aur@da03e160361ce01bf087e790b6ffd196d7dccff7 # v4.1.3
73
73
  with:
74
74
  pkgname: rdc-cli
75
75
  pkgbuild: aur/stable/PKGBUILD
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdc-cli
3
- Version: 0.5.5
3
+ Version: 0.5.6
4
4
  Summary: CLI for RenderDoc .rdc captures
5
5
  Author: Jim
6
6
  License-Expression: MIT
@@ -9,7 +9,7 @@
9
9
  "name": "open",
10
10
  "id": "open",
11
11
  "help": "Create local default session and start daemon skeleton.",
12
- "usage": "rdc open [CAPTURE] [--preload] [--proxy HOST[:PORT]|adb://SERIAL] [--android] [--serial TEXT] [--remote HOST[:PORT]] [--listen [ADDR]:PORT] [--connect HOST:PORT] [--token TEXT] [--timeout FLOAT]"
12
+ "usage": "rdc open [CAPTURE] [--preload] [--proxy HOST[:PORT]|adb://SERIAL] [--android] [--serial TEXT] [--remote HOST[:PORT]] [--listen [ADDR]:PORT] [--connect HOST:PORT] [--token TEXT] [--timeout FLOAT] [--gpu INDEX|NAME|DEVICEID]"
13
13
  },
14
14
  {
15
15
  "name": "close",
@@ -0,0 +1,83 @@
1
+ # Add `--gpu` override to `rdc open`
2
+
3
+ ## Problem
4
+
5
+ When a capture is replayed, the daemon picks the replay GPU automatically via
6
+ `_match_capture_gpu()`: it matches the capture's recorded device name (Vulkan)
7
+ or adapter description / DeviceId (D3D12), and **falls back to vendor priority
8
+ (nVidia > AMD > Intel)** when nothing matches.
9
+
10
+ On a multi-GPU host that fallback is `filtered[0]` after a stable sort, i.e. the
11
+ first-enumerated device of the highest-priority vendor — frequently the
12
+ integrated GPU. There is no way for the user to override it:
13
+
14
+ - `rdc open` exposes no GPU selection flag.
15
+ - The fallback cannot be steered toward a discrete GPU, a specific device, or a
16
+ GPU whose name does not match the capture's recorded name (common when
17
+ replaying a capture taken on different hardware).
18
+
19
+ This complements the recent multi-GPU auto-matching work (#225) by giving the
20
+ analyst an explicit escape hatch when auto-selection picks the wrong device.
21
+
22
+ Note: an explicit GPU choice does not make a capture portable across
23
+ incompatible hardware (RADV descriptor layouts differ per GPU generation); it
24
+ only controls *which* available GPU replay is attempted on.
25
+
26
+ ## Solution
27
+
28
+ Add an optional `--gpu INDEX|NAME|DEVICEID` flag to `rdc open` that forces the
29
+ replay GPU, overriding auto-selection.
30
+
31
+ Resolution order against `cap.GetAvailableGPUs()`:
32
+
33
+ 1. **0-based index** — `--gpu 1` selects the second enumerated GPU.
34
+ 2. **device ID** — decimal or `0x` hex (`--gpu 0x747e`), matched against
35
+ `GPUDevice.deviceID`.
36
+ 3. **name substring** — case-insensitive (`--gpu "7800 XT"`).
37
+
38
+ If the preference matches no available GPU, a warning is logged listing the
39
+ available GPUs and replay falls back to the existing auto-selection (non-fatal).
40
+
41
+ ### Plumbing
42
+
43
+ The flag threads CLI → daemon, reusing the existing daemon-arg channel:
44
+
45
+ - `commands/session.py`: `--gpu` option on `open_cmd`; ignored (with a warning)
46
+ for `--connect` (an external daemon is already running). Passed to
47
+ `open_session` / `listen_open_session`.
48
+ - `services/session_service.py`: `start_daemon(..., gpu=...)` appends
49
+ `--gpu <value>` to the daemon argv; `open_session` / `listen_open_session`
50
+ forward it.
51
+ - `daemon_server.py`: `--gpu` arg → `DaemonState.gpu_pref`; `_match_capture_gpu`
52
+ gains a `pref` parameter that short-circuits to the resolved GPU before
53
+ auto-matching. Applied at both the local and remote replay call sites.
54
+
55
+ Out of scope: changing the default auto-selection (vendor priority is unchanged).
56
+
57
+ ## Spec Delta
58
+
59
+ The existing scenario "Multi-GPU capture replay" under **Requirement: Replay
60
+ lifecycle** in `openspec/specs/daemon/spec.md` (added by #226, amended by #230)
61
+ is amended so the user `--gpu` preference takes precedence over auto-selection:
62
+
63
+ ```diff
64
+ #### Scenario: Multi-GPU capture replay
65
+ - **WHEN** the capture was taken on a multi-GPU system
66
+ - **AND** multiple GPUs are available for replay
67
+ -- **THEN** the daemon walks structured-data chunks whose name contains any of
68
+ +- **THEN** if the user passed `--gpu` (a 0-based index, a PCI device ID in
69
+ + decimal or `0x` hex, or a case-insensitive name substring) that resolves to an
70
+ + available GPU, that GPU is selected and structured-data inspection is skipped
71
+ +- **AND** otherwise the daemon walks structured-data chunks whose name contains any of
72
+ "Driver Initialisation Parameters", "DriverInit", "EnumAdapters", or
73
+ "CreateDXGIFactory"
74
+ ...
75
+ - **AND** if no structured-data match exists, Software/WARP adapters are excluded
76
+ and the highest-ranked discrete GPU is preferred (nVidia > AMD > Intel)
77
+ +- **AND** an unresolved `--gpu` preference logs a warning and falls back to the
78
+ + auto-selection above
79
+ - **AND** a single available GPU is always returned directly without inspection
80
+ ```
81
+
82
+ This delta has been applied to `openspec/specs/daemon/spec.md` as part of this
83
+ change.
@@ -0,0 +1,14 @@
1
+ # Tasks: Add `--gpu` override to `rdc open`
2
+
3
+ - [x] `daemon_server.py`: add `_resolve_gpu_pref()` (index / deviceID / name substring)
4
+ - [x] `daemon_server.py`: add `pref` param to `_match_capture_gpu()`; short-circuit before auto-match, warn + fall back when no match
5
+ - [x] `daemon_server.py`: `--gpu` arg, `DaemonState.gpu_pref`, pass `state.gpu_pref` at local + remote call sites
6
+ - [x] `services/session_service.py`: `start_daemon(gpu=...)` appends `--gpu`; forward through `open_session` / `listen_open_session`
7
+ - [x] `commands/session.py`: `--gpu` option on `open_cmd`; warn-and-ignore with `--connect`; pass to open paths
8
+ - [x] `openspec/specs/daemon/spec.md`: apply Spec Delta to the "Multi-GPU capture replay" scenario (user `--gpu` precedence + unresolved fallback)
9
+ - [x] Unit tests: `_resolve_gpu_pref` forms; `_match_capture_gpu` pref precedence + no-match fallback warning; `start_daemon` argv; CLI passthrough + `--connect` warning
10
+ - [x] Update existing fakes broken by new signature/attr (`test_remote_replay_passes_sd` spy, sigterm-handler `mock_args`)
11
+ - [x] `pixi run check` green (lint + typecheck + tests)
12
+ - [ ] Fresh review of the diff
13
+ - [ ] Open PR targeting `master`
14
+ - [ ] Archive this OpenSpec folder after merge
@@ -0,0 +1,36 @@
1
+ # Test Plan: `--gpu` override for `rdc open`
2
+
3
+ ## Unit (mocked — no GPU required)
4
+
5
+ `tests/unit/test_daemon_server_unit.py` (`TestMatchCaptureGpu`):
6
+
7
+ 1. **Index** — `pref="1"` returns the second GPU.
8
+ 2. **Name substring** — `pref="7800 xt"` matches case-insensitively.
9
+ 3. **Device ID** — `pref="29822"` (decimal) and `pref="0x747e"` (hex) both match
10
+ `deviceID==29822`.
11
+ 4. **Precedence** — with a Vulkan `deviceName` chunk that would auto-match GPU B,
12
+ `pref="AMD"` still selects GPU A.
13
+ 5. **No match** — `pref="Matrox"` logs a `--gpu` warning and falls back to the
14
+ vendor-priority auto-selection.
15
+ 6. **`_resolve_gpu_pref`** — index / name / hex resolve; unknown and empty → None.
16
+
17
+ `tests/unit/test_session_service.py`:
18
+
19
+ 7. `start_daemon(gpu="1")` puts `--gpu 1` in the daemon argv; default omits `--gpu`.
20
+
21
+ `tests/unit/test_session_commands.py`:
22
+
23
+ 8. `rdc open CAP --gpu 1` forwards `gpu="1"` to `start_daemon`.
24
+ 9. `rdc open --connect host:port --token T --gpu 1` prints
25
+ `warning: --gpu is ignored with --connect`.
26
+
27
+ Run: `pixi run test` (unit only; no GPU/e2e). Full gate: `pixi run check`.
28
+
29
+ ## Manual (requires a multi-GPU host + renderdoc)
30
+
31
+ - `rdc open frame.rdc --gpu <discrete-name>` then `rdc status` / a replay query;
32
+ daemon log shows `replay GPU (user --gpu=...)`.
33
+ - `rdc open frame.rdc --gpu nonsense` logs the no-match warning and still opens
34
+ via auto-selection.
35
+
36
+ (Not run in CI: needs real hardware; out of scope for the unit suite.)
@@ -0,0 +1,101 @@
1
+ # Fix AUR Deploy Action Pin: v4.1.1 → v4.1.3
2
+
3
+ ## Problem
4
+
5
+ ### Symptom
6
+
7
+ `AUR Publish` workflow run 26001352704, job `Publish rdc-cli (stable)`, failed on
8
+ the v0.5.5 tag with:
9
+
10
+ ```
11
+ bash: --command: invalid option
12
+ ```
13
+
14
+ The job exited before `/build.sh` ran. The `aur-git` job was not triggered (it
15
+ fires on branch push only). The v0.5.5 PyPI release and GitHub Release were
16
+ already shipped; the AUR `rdc-cli` package was not updated.
17
+
18
+ ### Root cause
19
+
20
+ Both jobs pin
21
+ `KSXGitHub/github-actions-deploy-aur@2ac5a4c1d7035885d46b10e3193393be8460b6f1`
22
+ (v4.1.1). That action's `entrypoint.sh` ends with:
23
+
24
+ ```sh
25
+ exec runuser builder --command 'bash -l -c /build.sh'
26
+ ```
27
+
28
+ With the `util-linux` `runuser` binary now present in the current `archlinux:base`
29
+ Docker image, the `--command` flag is parsed as an option to `bash` (su(1)-compat
30
+ syntax passes the argument onward), and bash has no `--command` option. The process
31
+ crashes before `/build.sh` ever runs.
32
+
33
+ This latent bug existed in v3.0.1 through v4.1.1 of the action. Earlier workflow
34
+ runs on v0.5.2/v0.5.3 were green because the then-current `archlinux:base` image
35
+ did not expose the issue. A recent Arch base image update surfaced it.
36
+
37
+ ### Why `post_process: git checkout -B master` is innocent
38
+
39
+ `build.sh` (which clones the AUR repo, evaluates `$post_process`, commits, and
40
+ force-pushes to AUR master) is byte-identical across v4.1.1, v4.1.2, and v4.1.3.
41
+ The crash happens in `entrypoint.sh` before `build.sh` is ever invoked, so
42
+ `post_process` was never reached and plays no role in the failure.
43
+
44
+ ### Fix-forward context
45
+
46
+ The v0.5.5 PyPI package and GitHub Release are already published and cannot be
47
+ retracted. The only outstanding item is the AUR `rdc-cli` package backfill, which
48
+ requires a successful workflow run for version 0.5.5.
49
+
50
+ ## Solution
51
+
52
+ Bump the action pin on **both** jobs in `.github/workflows/aur.yml`:
53
+
54
+ | Location | Current | After |
55
+ |---|---|---|
56
+ | Line 25, job `aur-git` | `2ac5a4c1d7035885d46b10e3193393be8460b6f1 # v4.1.1` | `da03e160361ce01bf087e790b6ffd196d7dccff7 # v4.1.3` |
57
+ | Line 72, job `aur-stable` | `2ac5a4c1d7035885d46b10e3193393be8460b6f1 # v4.1.1` | `da03e160361ce01bf087e790b6ffd196d7dccff7 # v4.1.3` |
58
+
59
+ All other inputs on both jobs (`force_push: true`, `post_process: git checkout -B
60
+ master`, `pkgname`, `pkgbuild`, credential secrets) remain unchanged.
61
+
62
+ v4.1.3 fixes `entrypoint.sh` to:
63
+
64
+ ```sh
65
+ exec runuser -u builder -- bash -l /build.sh
66
+ ```
67
+
68
+ This is the POSIX-correct `runuser` invocation that does not pass arguments to
69
+ bash. v4.1.2 used `runuser -u builder -- bash -l -c /build.sh` (also correct);
70
+ v4.1.3 drops the redundant `-c`.
71
+
72
+ ## Why the bump is safe with respect to #183 and #184
73
+
74
+ The `post_process: git checkout -B master` input (PR #183, detached-HEAD fix) and
75
+ `force_push: true` input (PR #184) are passed to `build.sh` as environment
76
+ variables, not to `entrypoint.sh`. Because `build.sh` is byte-identical across
77
+ v4.1.1, v4.1.2, and v4.1.3, both fixes are fully preserved by this pin bump.
78
+
79
+ ## Residual risk
80
+
81
+ The action uses `FROM archlinux:base` with no image digest pin. A future update to
82
+ the Arch base image could introduce a different incompatibility regardless of the
83
+ action tag. This is inherent to the action's design; no mitigation is proposed
84
+ here beyond monitoring workflow runs after future Arch base image refreshes.
85
+
86
+ ## Spec delta
87
+
88
+ There is no existing spec in `openspec/specs/` covering AUR publishing or CI
89
+ release workflows. No spec delta applies.
90
+
91
+ ## Post-merge backfill (operational, not a code change)
92
+
93
+ After this PR merges, manually trigger `AUR Publish` via `workflow_dispatch` with
94
+ input `version=0.5.5`. The `aur-stable` job will:
95
+ 1. Normalize version → `0.5.5`
96
+ 2. Checkout `refs/tags/v0.5.5` (already exists)
97
+ 3. `curl` the tarball and compute sha256
98
+ 4. Patch `aur/stable/PKGBUILD`
99
+ 5. Deploy to AUR via the fixed action
100
+
101
+ This is the acceptance gate for this change.
@@ -0,0 +1,12 @@
1
+ # Tasks: AUR Deploy Action Pin v4.1.1 → v4.1.3
2
+
3
+ - [ ] Opus review of `proposal.md` and `test-plan.md`; revise as needed
4
+ - [ ] `.github/workflows/aur.yml` line 25: bump action pin from `2ac5a4c1d7035885d46b10e3193393be8460b6f1 # v4.1.1` to `da03e160361ce01bf087e790b6ffd196d7dccff7 # v4.1.3`
5
+ - [ ] `.github/workflows/aur.yml` line 72: same pin bump (job `aur-stable`)
6
+ - [ ] Static checks: grep confirms new SHA appears exactly twice, old SHA absent, both jobs retain `force_push: true` and `post_process: git checkout -B master`, YAML parses cleanly
7
+ - [ ] Fresh review of the two-line diff
8
+ - [ ] Open PR targeting `master`
9
+ - [ ] After merge: trigger `AUR Publish` via `workflow_dispatch` with `version=0.5.5`
10
+ - [ ] Verify job `Publish rdc-cli (stable)` succeeds (no `bash: --command` crash)
11
+ - [ ] Verify AUR `rdc-cli` package shows `pkgver=0.5.5`
12
+ - [ ] Archive this OpenSpec folder
@@ -0,0 +1,34 @@
1
+ # Test Plan: AUR Deploy Action Pin v4.1.1 → v4.1.3
2
+
3
+ There are no unit tests for a workflow YAML change. Verification is static
4
+ inspection followed by a live workflow run.
5
+
6
+ ## Static verification (pre-merge)
7
+
8
+ 1. **Pin appears exactly twice.** `grep` for
9
+ `da03e160361ce01bf087e790b6ffd196d7dccff7` in
10
+ `.github/workflows/aur.yml` returns exactly 2 lines, one per job.
11
+
12
+ 2. **Old pin is absent.** `grep` for `2ac5a4c1d7035885d46b10e3193393be8460b6f1`
13
+ or `v4.1.1` returns no matches.
14
+
15
+ 3. **Version comment is present on both lines.** Both occurrences of the new SHA
16
+ are followed by the comment `# v4.1.3`.
17
+
18
+ 4. **Preserved inputs — both jobs.** `grep` confirms both jobs retain:
19
+ - `force_push: true`
20
+ - `post_process: git checkout -B master`
21
+
22
+ 5. **YAML parses cleanly.** `python3 -c "import yaml, sys; yaml.safe_load(sys.stdin)"
23
+ < .github/workflows/aur.yml` exits 0. (The repo does not include actionlint or
24
+ yamllint; Python's yaml module is the available static check.)
25
+
26
+ ## Live verification (post-merge)
27
+
28
+ 6. **workflow_dispatch v0.5.5 succeeds.** Trigger `AUR Publish` via
29
+ `workflow_dispatch` with input `version=0.5.5`. Job `Publish rdc-cli (stable)`
30
+ must complete with a green check — specifically, the `entrypoint.sh` crash
31
+ (`bash: --command: invalid option`) must not appear.
32
+
33
+ 7. **AUR package updated.** After the dispatch run, the AUR `rdc-cli` package page
34
+ shows `pkgver=0.5.5`. This is the acceptance gate.
@@ -38,7 +38,10 @@ ReplayController for the duration of the session.
38
38
  #### Scenario: Multi-GPU capture replay
39
39
  - **WHEN** the capture was taken on a multi-GPU system
40
40
  - **AND** multiple GPUs are available for replay
41
- - **THEN** the daemon walks structured-data chunks whose name contains any of
41
+ - **THEN** if the user passed `--gpu` (a 0-based index, a PCI device ID in
42
+ decimal or `0x` hex, or a case-insensitive name substring) that resolves to an
43
+ available GPU, that GPU is selected and structured-data inspection is skipped
44
+ - **AND** otherwise the daemon walks structured-data chunks whose name contains any of
42
45
  "Driver Initialisation Parameters", "DriverInit", "EnumAdapters", or
43
46
  "CreateDXGIFactory"
44
47
  - **AND** within each such chunk descends recursively (depth ≤ 5) to locate an
@@ -49,6 +52,8 @@ ReplayController for the duration of the session.
49
52
  DeviceId match is found
50
53
  - **AND** if no structured-data match exists, Software/WARP adapters are excluded
51
54
  and the highest-ranked discrete GPU is preferred (nVidia > AMD > Intel)
55
+ - **AND** an unresolved `--gpu` preference logs a warning and falls back to the
56
+ auto-selection above
52
57
  - **AND** a single available GPU is always returned directly without inspection
53
58
 
54
59
  ### Requirement: Navigation methods
@@ -644,6 +644,7 @@ Create local default session and start daemon skeleton.
644
644
  | `--connect` | Connect to an already-running external daemon. | text | |
645
645
  | `--token` | Authentication token (required with --connect). | text | |
646
646
  | `--timeout` | Daemon startup timeout in seconds. | float | |
647
+ | `--gpu` | Force the replay GPU by 0-based index, name substring, or device ID (overrides auto-selection). | text | |
647
648
 
648
649
  ## `rdc pass`
649
650
 
@@ -61,6 +61,14 @@ def _import_renderdoc() -> tuple[Any | None, CheckResult]:
61
61
  False,
62
62
  f"incompatible at {diag.candidate_path} -- rebuild renderdoc for current Python",
63
63
  )
64
+ if diag is not None and diag.result == ProbeResult.IMPORT_FAILED:
65
+ return None, CheckResult(
66
+ "renderdoc-module",
67
+ False,
68
+ f"found at {diag.candidate_path} but failed to import"
69
+ " -- likely built for a different Python (ABI mismatch);"
70
+ " rebuild for current Python",
71
+ )
64
72
  return None, CheckResult("renderdoc-module", False, "not found in search paths")
65
73
 
66
74
  version = getattr(module, "GetVersionString", lambda: "unknown")()
@@ -186,6 +186,14 @@ def _complete_capture_path(
186
186
  default=None,
187
187
  help="Daemon startup timeout in seconds.",
188
188
  )
189
+ @click.option(
190
+ "--gpu",
191
+ "gpu",
192
+ default=None,
193
+ metavar="INDEX|NAME|DEVICEID",
194
+ help="Force the replay GPU by 0-based index, name substring, or device ID "
195
+ "(overrides auto-selection).",
196
+ )
189
197
  def open_cmd(
190
198
  capture: str | None,
191
199
  preload: bool,
@@ -197,6 +205,7 @@ def open_cmd(
197
205
  connect: str | None,
198
206
  connect_token: str | None,
199
207
  timeout: float | None,
208
+ gpu: str | None,
200
209
  ) -> None:
201
210
  """Create local default session and start daemon skeleton."""
202
211
  # Handle --remote deprecation
@@ -242,6 +251,11 @@ def open_cmd(
242
251
  if connect is None and connect_token is not None:
243
252
  click.echo("warning: --token is ignored without --connect", err=True)
244
253
 
254
+ # --gpu configures the daemon's replay; an external daemon (--connect) is
255
+ # already running, so it cannot apply here.
256
+ if gpu is not None and connect is not None:
257
+ click.echo("warning: --gpu is ignored with --connect", err=True)
258
+
245
259
  # Dispatch: --connect
246
260
  if connect is not None:
247
261
  assert connect_token is not None
@@ -276,7 +290,9 @@ def open_cmd(
276
290
  click.echo(f"error: file not found: {capture}", err=True)
277
291
  raise SystemExit(1)
278
292
  try:
279
- ok, result = listen_open_session(capture, listen, remote_url=proxy_url, timeout=timeout)
293
+ ok, result = listen_open_session(
294
+ capture, listen, remote_url=proxy_url, timeout=timeout, gpu=gpu
295
+ )
280
296
  except ValueError as exc:
281
297
  click.echo(f"error: {exc}", err=True)
282
298
  raise SystemExit(1) from None
@@ -300,7 +316,7 @@ def open_cmd(
300
316
  if proxy_url is None and not Path(capture).exists():
301
317
  click.echo(f"error: file not found: {capture}", err=True)
302
318
  raise SystemExit(1)
303
- ok, message = open_session(capture, remote_url=proxy_url, timeout=timeout)
319
+ ok, message = open_session(capture, remote_url=proxy_url, timeout=timeout, gpu=gpu)
304
320
  if not ok:
305
321
  click.echo(message, err=True)
306
322
  raise SystemExit(1)
@@ -141,6 +141,7 @@ class DaemonState:
141
141
  _debug_messages_cache: list[Any] | None = None
142
142
  remote: Any = None
143
143
  remote_url: str = ""
144
+ gpu_pref: str = ""
144
145
  is_remote: bool = False
145
146
  local_capture_path: str = ""
146
147
  local_capture_is_temp: bool = False
@@ -226,18 +227,49 @@ def _find_adapter_description(chunk: Any) -> AdapterMatch | None:
226
227
  return None
227
228
 
228
229
 
229
- def _match_capture_gpu(cap: Any, sd: Any = None, rd: Any = None) -> Any | None:
230
+ def _resolve_gpu_pref(gpus: list[Any], pref: str) -> Any | None:
231
+ """Resolve a user ``--gpu`` preference against the available GPUs.
232
+
233
+ Accepts, in order: a 0-based index, a device ID (decimal or ``0x`` hex),
234
+ or a case-insensitive substring of the GPU name. Returns the matching
235
+ ``GPUDevice``, or ``None`` if nothing matches.
236
+ """
237
+ pref = pref.strip()
238
+ if not pref:
239
+ return None
240
+ if pref.isdigit() and int(pref) < len(gpus):
241
+ return gpus[int(pref)]
242
+ try:
243
+ want_id = int(pref, 0)
244
+ except ValueError:
245
+ want_id = None
246
+ if want_id is not None:
247
+ for g in gpus:
248
+ if g.deviceID == want_id:
249
+ return g
250
+ needle = pref.lower()
251
+ for g in gpus:
252
+ if needle in g.name.lower():
253
+ return g
254
+ return None
255
+
256
+
257
+ def _match_capture_gpu(
258
+ cap: Any, sd: Any = None, rd: Any = None, pref: str | None = None
259
+ ) -> Any | None:
230
260
  """Pick the replay GPU that produced ``cap``.
231
261
 
232
- Walks structured-data chunks to match the capture's Vulkan
233
- ``vkEnumeratePhysicalDevices`` device name or the D3D12 adapter
234
- description. Falls back to vendor priority (nVidia > AMD > Intel,
235
- Software/WARP excluded) when no chunk-based match succeeds.
262
+ When *pref* is given (the user's ``--gpu``), it takes precedence over
263
+ auto-selection. Otherwise walks structured-data chunks to match the
264
+ capture's Vulkan ``vkEnumeratePhysicalDevices`` device name or the D3D12
265
+ adapter description, falling back to vendor priority (nVidia > AMD >
266
+ Intel, Software/WARP excluded) when no chunk-based match succeeds.
236
267
 
237
268
  Args:
238
269
  cap: An open renderdoc capture file.
239
270
  sd: Optional structured data from ``cap.GetStructuredData()``.
240
271
  rd: Optional renderdoc module, used for ``GPUVendor`` enum lookup.
272
+ pref: Optional user GPU preference (index, device ID, or name substring).
241
273
 
242
274
  Returns:
243
275
  The selected ``GPUDevice`` or ``None`` when no GPUs are available.
@@ -246,6 +278,16 @@ def _match_capture_gpu(cap: Any, sd: Any = None, rd: Any = None) -> Any | None:
246
278
  gpus = cap.GetAvailableGPUs()
247
279
  if not gpus:
248
280
  return None
281
+ if pref:
282
+ chosen = _resolve_gpu_pref(gpus, pref)
283
+ if chosen is not None:
284
+ _log.info("replay GPU (user --gpu=%r): %s", pref, chosen.name)
285
+ return chosen
286
+ _log.warning(
287
+ "--gpu=%r matched no available GPU; available=%r -- using auto-selection",
288
+ pref,
289
+ [(g.name, g.deviceID) for g in gpus],
290
+ )
249
291
  if len(gpus) == 1:
250
292
  return gpus[0]
251
293
 
@@ -363,7 +405,7 @@ def _load_replay(state: DaemonState) -> str | None:
363
405
  return "local replay not supported on this platform"
364
406
 
365
407
  opts = rd.ReplayOptions()
366
- gpu = _match_capture_gpu(cap, cap.GetStructuredData(), rd)
408
+ gpu = _match_capture_gpu(cap, cap.GetStructuredData(), rd, state.gpu_pref or None)
367
409
  if gpu is not None:
368
410
  opts.forceGPUVendor = gpu.vendor
369
411
  opts.forceGPUDeviceID = gpu.deviceID
@@ -520,7 +562,9 @@ def _load_remote_replay(state: DaemonState, remote_url: str) -> str | None:
520
562
  try:
521
563
  open_result = tmp_cap.OpenFile(state.local_capture_path, "", None)
522
564
  if open_result == rd.ResultCode.Succeeded:
523
- gpu = _match_capture_gpu(tmp_cap, tmp_cap.GetStructuredData(), rd)
565
+ gpu = _match_capture_gpu(
566
+ tmp_cap, tmp_cap.GetStructuredData(), rd, state.gpu_pref or None
567
+ )
524
568
  if gpu is not None:
525
569
  remote_opts.forceGPUVendor = gpu.vendor
526
570
  remote_opts.forceGPUDeviceID = gpu.deviceID
@@ -703,9 +747,12 @@ def main() -> None: # pragma: no cover
703
747
  parser.add_argument("--idle-timeout", type=int, default=1800)
704
748
  parser.add_argument("--no-replay", action="store_true", help=argparse.SUPPRESS)
705
749
  parser.add_argument("--remote-url", default=None)
750
+ parser.add_argument("--gpu", default=None)
706
751
  args = parser.parse_args()
707
752
 
708
- state = DaemonState(capture=args.capture, current_eid=0, token=args.token)
753
+ state = DaemonState(
754
+ capture=args.capture, current_eid=0, token=args.token, gpu_pref=args.gpu or ""
755
+ )
709
756
 
710
757
  if not args.no_replay:
711
758
  if args.remote_url:
@@ -56,6 +56,16 @@ def _is_arm_studio_dir(directory: str) -> bool:
56
56
  return any("arm-performance-studio" in p.lower() for p in parts)
57
57
 
58
58
 
59
+ def _has_renderdoc_module(directory: str) -> bool:
60
+ """Return True if *directory* holds an importable renderdoc module artifact."""
61
+ d = Path(directory)
62
+ return (
63
+ (d / "renderdoc.py").is_file()
64
+ or bool(list(d.glob("renderdoc*.so")))
65
+ or bool(list(d.glob("renderdoc*.pyd")))
66
+ )
67
+
68
+
59
69
  def _preload_librenderdoc(directory: str) -> None:
60
70
  """Preload librenderdoc.so with RTLD_GLOBAL for ARM PS patched module.
61
71
 
@@ -174,6 +184,10 @@ def find_renderdoc() -> ModuleType | None:
174
184
  _diagnostic = outcome
175
185
  elif outcome.result == ProbeResult.TIMEOUT:
176
186
  _diagnostic = outcome
187
+ elif outcome.result == ProbeResult.IMPORT_FAILED and _has_renderdoc_module(path):
188
+ # A module file is present but won't load (e.g. built for another
189
+ # Python); keep it so the caller can tell this from "not found".
190
+ _diagnostic = outcome
177
191
 
178
192
  if crash_prone_candidates:
179
193
  _diagnostic = ProbeOutcome(
@@ -46,6 +46,7 @@ def start_daemon(
46
46
  host: str = "127.0.0.1",
47
47
  idle_timeout: int = 1800,
48
48
  remote_url: str | None = None,
49
+ gpu: str | None = None,
49
50
  ) -> subprocess.Popen[str]:
50
51
  cmd = [
51
52
  sys.executable,
@@ -62,6 +63,8 @@ def start_daemon(
62
63
  "--idle-timeout",
63
64
  str(idle_timeout),
64
65
  ]
66
+ if gpu:
67
+ cmd += ["--gpu", gpu]
65
68
  if remote_url:
66
69
  cmd += ["--remote-url", remote_url]
67
70
  elif not _renderdoc_available():
@@ -136,6 +139,7 @@ def open_session(
136
139
  *,
137
140
  remote_url: str | None = None,
138
141
  timeout: float | None = None,
142
+ gpu: str | None = None,
139
143
  ) -> tuple[bool, str]:
140
144
  exists, err = _check_existing_session()
141
145
  if exists:
@@ -148,7 +152,7 @@ def open_session(
148
152
  for _attempt in range(max_attempts):
149
153
  port = pick_port()
150
154
  token = secrets.token_hex(16)
151
- proc = start_daemon(str(capture), port, token, remote_url=remote_url)
155
+ proc = start_daemon(str(capture), port, token, remote_url=remote_url, gpu=gpu)
152
156
 
153
157
  ok, detail = wait_for_ping(host, port, token, timeout_s=resolved_timeout, proc=proc)
154
158
  if ok:
@@ -382,6 +386,7 @@ def listen_open_session(
382
386
  *,
383
387
  remote_url: str | None = None,
384
388
  timeout: float | None = None,
389
+ gpu: str | None = None,
385
390
  ) -> tuple[bool, dict[str, Any] | str]:
386
391
  """Open a session with the daemon listening on a specified address.
387
392
 
@@ -408,6 +413,7 @@ def listen_open_session(
408
413
  token,
409
414
  host=bind_host,
410
415
  remote_url=remote_url,
416
+ gpu=gpu,
411
417
  )
412
418
 
413
419
  ok, detail = wait_for_ping(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdc-cli
3
- Version: 0.5.5
3
+ Version: 0.5.6
4
4
  Summary: CLI for RenderDoc .rdc captures
5
5
  Author: Jim
6
6
  License-Expression: MIT
@@ -71,6 +71,9 @@ openspec/changes/2026-03-03-bugfix-p2-batch/test-plan.md
71
71
  openspec/changes/2026-03-04-w6-windows-bugfixes/proposal.md
72
72
  openspec/changes/2026-03-04-w6-windows-bugfixes/tasks.md
73
73
  openspec/changes/2026-03-04-w6-windows-bugfixes/test-plan.md
74
+ openspec/changes/2026-06-04-open-gpu-override/proposal.md
75
+ openspec/changes/2026-06-04-open-gpu-override/tasks.md
76
+ openspec/changes/2026-06-04-open-gpu-override/test-plan.md
74
77
  openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md
75
78
  openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md
76
79
  openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md
@@ -372,6 +375,9 @@ openspec/changes/archive/2026-05-15-issue-224-vsin-mesh/specs/daemon/spec.md
372
375
  openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/proposal.md
373
376
  openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/tasks.md
374
377
  openspec/changes/archive/2026-05-17-fix-225-d3d12-chunk-name/test-plan.md
378
+ openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/proposal.md
379
+ openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/tasks.md
380
+ openspec/changes/archive/2026-05-17-fix-aur-deploy-action-v413/test-plan.md
375
381
  openspec/specs/architecture/spec.md
376
382
  openspec/specs/ci/spec.md
377
383
  openspec/specs/daemon/spec.md