rdc-cli 0.4.3__tar.gz → 0.5.0__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 (647) hide show
  1. rdc_cli-0.5.0/.github/ISSUE_TEMPLATE/bug_report.yml +65 -0
  2. rdc_cli-0.5.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
  3. rdc_cli-0.5.0/.github/ISSUE_TEMPLATE/feature_request.yml +37 -0
  4. rdc_cli-0.5.0/.github/PULL_REQUEST_TEMPLATE.md +17 -0
  5. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/aur.yml +1 -0
  6. rdc_cli-0.5.0/CONTRIBUTING.md +92 -0
  7. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/PKG-INFO +37 -8
  8. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/README.md +36 -7
  9. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/data/commands.json +27 -3
  10. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/examples.astro +37 -3
  11. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/remote.astro +54 -2
  12. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/usage.astro +27 -0
  13. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/pixi.toml +5 -0
  14. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/pyproject.toml +1 -1
  15. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/e2e_test.py +8 -13
  16. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-commands.py +3 -2
  17. rdc_cli-0.5.0/scripts/setup_android_tools.py +87 -0
  18. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_build_renderdoc.py +270 -0
  19. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_platform.py +14 -1
  20. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_skills/SKILL.md +44 -0
  21. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_skills/references/commands-quick-ref.md +62 -1
  22. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/capture_core.py +20 -0
  23. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/cli.py +20 -1
  24. rdc_cli-0.5.0/src/rdc/commands/android.py +506 -0
  25. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/doctor.py +38 -0
  26. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/info.py +12 -0
  27. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/remote.py +12 -7
  28. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/resources.py +106 -15
  29. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/session.py +106 -2
  30. rdc_cli-0.5.0/src/rdc/commands/setup_renderdoc.py +103 -0
  31. rdc_cli-0.5.0/src/rdc/commands/unused_targets.py +43 -0
  32. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/daemon_server.py +2 -0
  33. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/discover.py +39 -1
  34. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/capture.py +4 -3
  35. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/pixel.py +0 -2
  36. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/query.py +56 -3
  37. rdc_cli-0.5.0/src/rdc/handlers/unused.py +40 -0
  38. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/remote_core.py +5 -0
  39. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/remote_state.py +1 -1
  40. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/query_service.py +364 -8
  41. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/PKG-INFO +37 -8
  42. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/SOURCES.txt +16 -0
  43. rdc_cli-0.5.0/src/rdc_cli.egg-info/entry_points.txt +2 -0
  44. rdc_cli-0.5.0/tests/fixtures/gles-multipass-debug.apk +0 -0
  45. rdc_cli-0.5.0/tests/fixtures/gles-triangle-debug.apk +0 -0
  46. rdc_cli-0.5.0/tests/fixtures/gles_android_mali.rdc +0 -0
  47. rdc_cli-0.5.0/tests/fixtures/gles_multipass_mali.rdc +0 -0
  48. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/mocks/mock_renderdoc.py +6 -3
  49. rdc_cli-0.5.0/tests/unit/test_android_commands.py +669 -0
  50. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_build_renderdoc.py +269 -0
  51. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_discover.py +21 -0
  52. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_doctor.py +94 -4
  53. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_draws_events_daemon.py +170 -1
  54. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_info_commands.py +63 -0
  55. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pass_deps.py +209 -3
  56. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pick_pixel_daemon.py +0 -7
  57. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_shader.py +18 -4
  58. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_platform.py +48 -0
  59. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_query_service.py +490 -0
  60. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_commands.py +29 -0
  61. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_core.py +15 -0
  62. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_resources_commands.py +158 -5
  63. rdc_cli-0.5.0/tests/unit/test_rt_switches.py +243 -0
  64. rdc_cli-0.5.0/tests/unit/test_session_commands.py +383 -0
  65. rdc_cli-0.5.0/tests/unit/test_setup_renderdoc.py +158 -0
  66. rdc_cli-0.5.0/tests/unit/test_unused_targets.py +371 -0
  67. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_windows_compat.py +40 -0
  68. rdc_cli-0.4.3/src/rdc/commands/setup_renderdoc.py +0 -29
  69. rdc_cli-0.4.3/src/rdc_cli.egg-info/entry_points.txt +0 -2
  70. rdc_cli-0.4.3/tests/unit/test_session_commands.py +0 -188
  71. rdc_cli-0.4.3/tests/unit/test_setup_renderdoc.py +0 -32
  72. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.commitlintrc.yml +0 -0
  73. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.githooks/pre-commit +0 -0
  74. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.githooks/pre-push +0 -0
  75. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/CODEOWNERS +0 -0
  76. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/ci.yml +0 -0
  77. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/commitlint.yml +0 -0
  78. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.github/workflows/docs.yml +0 -0
  79. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.gitignore +0 -0
  80. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.python-version +0 -0
  81. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/.release-please-manifest.json +0 -0
  82. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/LICENSE +0 -0
  83. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/Makefile +0 -0
  84. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/SECURITY.md +0 -0
  85. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/aur/PKGBUILD +0 -0
  86. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/aur/stable/PKGBUILD +0 -0
  87. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docker/Dockerfile +0 -0
  88. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/astro.config.mjs +0 -0
  89. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/package-lock.json +0 -0
  90. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/package.json +0 -0
  91. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/public/.nojekyll +0 -0
  92. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/public/favicon.svg +0 -0
  93. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Commands.astro +0 -0
  94. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Demo.astro +0 -0
  95. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Features.astro +0 -0
  96. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Footer.astro +0 -0
  97. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Hero.astro +0 -0
  98. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Install.astro +0 -0
  99. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Navbar.astro +0 -0
  100. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Philosophy.astro +0 -0
  101. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/Terminal.astro +0 -0
  102. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
  103. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/data/replay.json +0 -0
  104. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/data/stats.json +0 -0
  105. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/layouts/Base.astro +0 -0
  106. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/layouts/Docs.astro +0 -0
  107. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
  108. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/commands.astro +0 -0
  109. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/design.astro +0 -0
  110. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/index.astro +0 -0
  111. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/install.astro +0 -0
  112. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/docs/vfs.astro +0 -0
  113. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/pages/index.astro +0 -0
  114. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/src/styles/global.css +0 -0
  115. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tailwind.config.mjs +0 -0
  116. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tapes/pipeline.tape +0 -0
  117. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tapes/quickstart.tape +0 -0
  118. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tests/validate.mjs +0 -0
  119. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/docs-astro/tsconfig.json +0 -0
  120. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/mypy.ini +0 -0
  121. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-03-bugfix-p2-batch/proposal.md +0 -0
  122. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-03-bugfix-p2-batch/tasks.md +0 -0
  123. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-03-bugfix-p2-batch/test-plan.md +0 -0
  124. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-04-w6-windows-bugfixes/proposal.md +0 -0
  125. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-04-w6-windows-bugfixes/tasks.md +0 -0
  126. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/2026-03-04-w6-windows-bugfixes/test-plan.md +0 -0
  127. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -0
  128. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -0
  129. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -0
  130. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -0
  131. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -0
  132. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -0
  133. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -0
  134. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -0
  135. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +0 -0
  136. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -0
  137. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -0
  138. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -0
  139. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +0 -0
  140. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -0
  141. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -0
  142. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -0
  143. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +0 -0
  144. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -0
  145. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -0
  146. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -0
  147. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +0 -0
  148. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -0
  149. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -0
  150. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -0
  151. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +0 -0
  152. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -0
  153. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -0
  154. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -0
  155. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +0 -0
  156. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -0
  157. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -0
  158. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -0
  159. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -0
  160. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +0 -0
  161. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -0
  162. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -0
  163. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -0
  164. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +0 -0
  165. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -0
  166. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -0
  167. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -0
  168. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +0 -0
  169. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +0 -0
  170. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -0
  171. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -0
  172. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -0
  173. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +0 -0
  174. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -0
  175. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -0
  176. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -0
  177. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -0
  178. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -0
  179. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -0
  180. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -0
  181. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -0
  182. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -0
  183. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +0 -0
  184. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -0
  185. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -0
  186. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -0
  187. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -0
  188. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -0
  189. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -0
  190. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -0
  191. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -0
  192. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -0
  193. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -0
  194. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -0
  195. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -0
  196. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -0
  197. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -0
  198. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -0
  199. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -0
  200. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -0
  201. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -0
  202. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -0
  203. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -0
  204. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -0
  205. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -0
  206. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -0
  207. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -0
  208. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -0
  209. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -0
  210. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -0
  211. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -0
  212. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -0
  213. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -0
  214. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -0
  215. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -0
  216. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -0
  217. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -0
  218. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +0 -0
  219. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -0
  220. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -0
  221. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +0 -0
  222. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +0 -0
  223. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +0 -0
  224. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +0 -0
  225. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -0
  226. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -0
  227. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +0 -0
  228. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -0
  229. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -0
  230. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +0 -0
  231. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -0
  232. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -0
  233. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +0 -0
  234. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -0
  235. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -0
  236. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +0 -0
  237. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -0
  238. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -0
  239. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +0 -0
  240. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -0
  241. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -0
  242. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -0
  243. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -0
  244. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -0
  245. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +0 -0
  246. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +0 -0
  247. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +0 -0
  248. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +0 -0
  249. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -0
  250. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -0
  251. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -0
  252. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -0
  253. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -0
  254. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +0 -0
  255. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -0
  256. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -0
  257. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +0 -0
  258. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -0
  259. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -0
  260. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +0 -0
  261. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +0 -0
  262. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +0 -0
  263. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +0 -0
  264. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -0
  265. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -0
  266. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -0
  267. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -0
  268. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -0
  269. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -0
  270. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -0
  271. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -0
  272. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -0
  273. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -0
  274. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -0
  275. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -0
  276. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -0
  277. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -0
  278. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -0
  279. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -0
  280. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -0
  281. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +0 -0
  282. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +0 -0
  283. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +0 -0
  284. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +0 -0
  285. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +0 -0
  286. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +0 -0
  287. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +0 -0
  288. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -0
  289. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -0
  290. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -0
  291. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -0
  292. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -0
  293. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -0
  294. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -0
  295. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -0
  296. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -0
  297. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -0
  298. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -0
  299. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -0
  300. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -0
  301. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -0
  302. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -0
  303. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -0
  304. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -0
  305. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -0
  306. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-docs-automation/proposal.md +0 -0
  307. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-docs-automation/tasks.md +0 -0
  308. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-docs-automation/test-plan.md +0 -0
  309. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/proposal.md +0 -0
  310. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/tasks.md +0 -0
  311. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/test-plan.md +0 -0
  312. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -0
  313. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -0
  314. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -0
  315. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -0
  316. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -0
  317. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -0
  318. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -0
  319. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -0
  320. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -0
  321. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -0
  322. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -0
  323. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -0
  324. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -0
  325. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -0
  326. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -0
  327. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -0
  328. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -0
  329. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +0 -0
  330. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -0
  331. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -0
  332. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -0
  333. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -0
  334. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -0
  335. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -0
  336. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -0
  337. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -0
  338. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -0
  339. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -0
  340. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -0
  341. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -0
  342. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -0
  343. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -0
  344. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -0
  345. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +0 -0
  346. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +0 -0
  347. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +0 -0
  348. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -0
  349. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -0
  350. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -0
  351. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -0
  352. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -0
  353. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -0
  354. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-skill-auto-install/proposal.md +0 -0
  355. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-skill-auto-install/tasks.md +0 -0
  356. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-skill-auto-install/test-plan.md +0 -0
  357. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -0
  358. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -0
  359. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -0
  360. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +0 -0
  361. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +0 -0
  362. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +0 -0
  363. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/proposal.md +0 -0
  364. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/tasks.md +0 -0
  365. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/test-plan.md +0 -0
  366. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/proposal.md +0 -0
  367. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/tasks.md +0 -0
  368. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/test-plan.md +0 -0
  369. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/proposal.md +0 -0
  370. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/tasks.md +0 -0
  371. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/test-plan.md +0 -0
  372. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +0 -0
  373. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +0 -0
  374. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +0 -0
  375. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +0 -0
  376. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +0 -0
  377. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +0 -0
  378. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/proposal.md +0 -0
  379. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/tasks.md +0 -0
  380. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/test-plan.md +0 -0
  381. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase-w2-build-script/proposal.md +0 -0
  382. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase-w2-build-script/tasks.md +0 -0
  383. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase-w2-build-script/test-plan.md +0 -0
  384. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +0 -0
  385. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +0 -0
  386. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +0 -0
  387. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -0
  388. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -0
  389. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -0
  390. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -0
  391. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -0
  392. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -0
  393. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/proposal.md +0 -0
  394. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/tasks.md +0 -0
  395. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/test-plan.md +0 -0
  396. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-m-macos-support/proposal.md +0 -0
  397. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-m-macos-support/tasks.md +0 -0
  398. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-m-macos-support/test-plan.md +0 -0
  399. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/proposal.md +0 -0
  400. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/tasks.md +0 -0
  401. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r1-quick-wins/test-plan.md +0 -0
  402. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/proposal.md +0 -0
  403. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/tasks.md +0 -0
  404. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-24-phase-r2-test-infrastructure/test-plan.md +0 -0
  405. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/proposal.md +0 -0
  406. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/tasks.md +0 -0
  407. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-26-phase-r3-usability-fixes/test-plan.md +0 -0
  408. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-design-deviation-fixes/proposal.md +0 -0
  409. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-design-deviation-fixes/tasks.md +0 -0
  410. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-design-deviation-fixes/test-plan.md +0 -0
  411. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-dev-install-enhancement/proposal.md +0 -0
  412. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-dev-install-enhancement/tasks.md +0 -0
  413. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/changes/archive/2026-02-28-dev-install-enhancement/test-plan.md +0 -0
  414. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/architecture/spec.md +0 -0
  415. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/ci/spec.md +0 -0
  416. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/daemon/spec.md +0 -0
  417. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/foundation/spec.md +0 -0
  418. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/packaging/spec.md +0 -0
  419. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/session/spec.md +0 -0
  420. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/openspec/specs/tooling/spec.md +0 -0
  421. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/pixi.lock +0 -0
  422. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/release-please-config.json +0 -0
  423. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/ruff.toml +0 -0
  424. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/build-renderdoc.sh +0 -0
  425. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/build_renderdoc.py +0 -0
  426. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/capture_fixture.sh +0 -0
  427. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/dev_install.py +0 -0
  428. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/ensure-renderdoc.py +0 -0
  429. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/ensure-renderdoc.sh +0 -0
  430. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/ensure-skill-link.py +0 -0
  431. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-replay.py +0 -0
  432. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-skill-ref.py +0 -0
  433. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen-stats.py +0 -0
  434. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/gen_and_check.py +0 -0
  435. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/setup-renderdoc.sh +0 -0
  436. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/setup-vulkan-samples.sh +0 -0
  437. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/setup_vulkan_samples.py +0 -0
  438. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/verify-package.sh +0 -0
  439. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/scripts/verify_package.py +0 -0
  440. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/setup.cfg +0 -0
  441. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/__init__.py +0 -0
  442. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_skills/__init__.py +0 -0
  443. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/_transport.py +0 -0
  444. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/adapter.py +0 -0
  445. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/_helpers.py +0 -0
  446. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/assert_ci.py +0 -0
  447. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/assert_image.py +0 -0
  448. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/capture.py +0 -0
  449. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/capture_control.py +0 -0
  450. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/capturefile.py +0 -0
  451. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/completion.py +0 -0
  452. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/counters.py +0 -0
  453. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/debug.py +0 -0
  454. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/diff.py +0 -0
  455. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/events.py +0 -0
  456. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/export.py +0 -0
  457. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/install_skill.py +0 -0
  458. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/mesh.py +0 -0
  459. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/pick_pixel.py +0 -0
  460. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/pipeline.py +0 -0
  461. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/pixel.py +0 -0
  462. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/script.py +0 -0
  463. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/search.py +0 -0
  464. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/serve.py +0 -0
  465. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/shader_edit.py +0 -0
  466. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/snapshot.py +0 -0
  467. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/tex_stats.py +0 -0
  468. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/unix_helpers.py +0 -0
  469. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/usage.py +0 -0
  470. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/commands/vfs.py +0 -0
  471. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/daemon_client.py +0 -0
  472. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/__init__.py +0 -0
  473. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/alignment.py +0 -0
  474. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/draws.py +0 -0
  475. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/framebuffer.py +0 -0
  476. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/pipeline.py +0 -0
  477. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/resources.py +0 -0
  478. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/stats.py +0 -0
  479. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/diff/summary.py +0 -0
  480. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/json_fmt.py +0 -0
  481. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/kv.py +0 -0
  482. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/options.py +0 -0
  483. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/formatters/tsv.py +0 -0
  484. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/__init__.py +0 -0
  485. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/_helpers.py +0 -0
  486. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/_types.py +0 -0
  487. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/buffer.py +0 -0
  488. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/capturefile.py +0 -0
  489. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/core.py +0 -0
  490. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/debug.py +0 -0
  491. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/descriptor.py +0 -0
  492. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/pipe_state.py +0 -0
  493. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/script.py +0 -0
  494. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/shader.py +0 -0
  495. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/shader_edit.py +0 -0
  496. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/texture.py +0 -0
  497. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/handlers/vfs.py +0 -0
  498. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/image_compare.py +0 -0
  499. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/protocol.py +0 -0
  500. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/__init__.py +0 -0
  501. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/diff_service.py +0 -0
  502. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/services/session_service.py +0 -0
  503. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/session_state.py +0 -0
  504. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/target_state.py +0 -0
  505. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/__init__.py +0 -0
  506. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/formatter.py +0 -0
  507. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/router.py +0 -0
  508. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc/vfs/tree_cache.py +0 -0
  509. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
  510. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/requires.txt +0 -0
  511. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/src/rdc_cli.egg-info/top_level.txt +0 -0
  512. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/conftest.py +0 -0
  513. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/__init__.py +0 -0
  514. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/blackbox_test_catalog.md +0 -0
  515. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/conftest.py +0 -0
  516. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/e2e_helpers.py +0 -0
  517. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_advanced.py +0 -0
  518. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_assert.py +0 -0
  519. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_capture.py +0 -0
  520. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_capturefile.py +0 -0
  521. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_debug.py +0 -0
  522. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_diff.py +0 -0
  523. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_export.py +0 -0
  524. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_formats.py +0 -0
  525. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_presession.py +0 -0
  526. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_query.py +0 -0
  527. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_session.py +0 -0
  528. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_shader_edit.py +0 -0
  529. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/e2e/test_vfs.py +0 -0
  530. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/fixtures/hello_triangle.rdc +0 -0
  531. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/fixtures/vkcube.rdc +0 -0
  532. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/fixtures/vkcube_validation.rdc +0 -0
  533. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_build_renderdoc_integration.py +0 -0
  534. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_daemon_handlers_real.py +0 -0
  535. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_mock_api_sync.py +0 -0
  536. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_real_replay.py +0 -0
  537. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/integration/test_vulkan_samples.py +0 -0
  538. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/conftest.py +0 -0
  539. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_adapter.py +0 -0
  540. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_assert_ci_commands.py +0 -0
  541. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_assert_image_command.py +0 -0
  542. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_binary_daemon.py +0 -0
  543. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_buffer_decode.py +0 -0
  544. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture.py +0 -0
  545. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture_control.py +0 -0
  546. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture_core.py +0 -0
  547. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capture_handlers.py +0 -0
  548. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capturefile_commands.py +0 -0
  549. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_capturefile_handlers.py +0 -0
  550. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_ci_files.py +0 -0
  551. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_cli.py +0 -0
  552. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_cli_session_flag.py +0 -0
  553. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_completion.py +0 -0
  554. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_count_shadermap.py +0 -0
  555. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_counters_commands.py +0 -0
  556. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_counters_daemon.py +0 -0
  557. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_crash_regression.py +0 -0
  558. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_output_quality.py +0 -0
  559. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_pipeline_extended.py +0 -0
  560. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_server_unit.py +0 -0
  561. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_shader_api_fix.py +0 -0
  562. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_shader_extended.py +0 -0
  563. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_daemon_transport.py +0 -0
  564. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_debug_commands.py +0 -0
  565. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_debug_handlers.py +0 -0
  566. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_descriptors_daemon.py +0 -0
  567. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_dev_install.py +0 -0
  568. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_alignment.py +0 -0
  569. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_command.py +0 -0
  570. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_draws.py +0 -0
  571. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_framebuffer.py +0 -0
  572. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_pipeline.py +0 -0
  573. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_resources.py +0 -0
  574. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_service.py +0 -0
  575. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_stats.py +0 -0
  576. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_diff_summary.py +0 -0
  577. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_draws_daemon.py +0 -0
  578. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_draws_events_cli.py +0 -0
  579. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_eid_completion.py +0 -0
  580. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_events_commands.py +0 -0
  581. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_export_commands.py +0 -0
  582. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_export_overlay.py +0 -0
  583. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_fix1_draws_pass_name.py +0 -0
  584. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_fix2_vfs_intermediate_dirs.py +0 -0
  585. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
  586. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_formatters.py +0 -0
  587. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_formatters_kv.py +0 -0
  588. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_gen_skill_ref.py +0 -0
  589. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_handlers_remote.py +0 -0
  590. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_image_compare.py +0 -0
  591. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_install_skill.py +0 -0
  592. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_json_errors.py +0 -0
  593. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_keep_remote.py +0 -0
  594. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mesh_commands.py +0 -0
  595. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mesh_handler.py +0 -0
  596. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mock_capture_types.py +0 -0
  597. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_mock_renderdoc.py +0 -0
  598. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_open_remote.py +0 -0
  599. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_output_options.py +0 -0
  600. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_overlay_handler.py +0 -0
  601. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pick_pixel_commands.py +0 -0
  602. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_cli_phase27.py +0 -0
  603. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_commands.py +0 -0
  604. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_daemon.py +0 -0
  605. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_section_routing.py +0 -0
  606. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pipeline_state.py +0 -0
  607. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pixel_history_commands.py +0 -0
  608. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pixel_history_daemon.py +0 -0
  609. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_pixi_files.py +0 -0
  610. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_protocol.py +0 -0
  611. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_quickfix_batch.py +0 -0
  612. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_replay.py +0 -0
  613. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_remote_state.py +0 -0
  614. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_require_pipe.py +0 -0
  615. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_resource_semantic_completion.py +0 -0
  616. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_resources_filter.py +0 -0
  617. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_script_command.py +0 -0
  618. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_script_handler.py +0 -0
  619. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_search.py +0 -0
  620. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_semantic_completion.py +0 -0
  621. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_serve.py +0 -0
  622. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_session_completion.py +0 -0
  623. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_session_service.py +0 -0
  624. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_session_state.py +0 -0
  625. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_setup_vulkan_samples.py +0 -0
  626. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_shader_edit_commands.py +0 -0
  627. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_shader_edit_handlers.py +0 -0
  628. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_shader_preload.py +0 -0
  629. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_skill_structure.py +0 -0
  630. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_snapshot_command.py +0 -0
  631. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_split_binary.py +0 -0
  632. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_split_core.py +0 -0
  633. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_target_state.py +0 -0
  634. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_tex_stats_commands.py +0 -0
  635. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_tex_stats_handler.py +0 -0
  636. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_tooling_files.py +0 -0
  637. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_unix_helpers_commands.py +0 -0
  638. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_usage_commands.py +0 -0
  639. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_usage_daemon.py +0 -0
  640. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_binary.py +0 -0
  641. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_commands.py +0 -0
  642. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_completion.py +0 -0
  643. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_daemon.py +0 -0
  644. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_formatter.py +0 -0
  645. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_router.py +0 -0
  646. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/tests/unit/test_vfs_tree_cache.py +0 -0
  647. {rdc_cli-0.4.3 → rdc_cli-0.5.0}/uv.lock +0 -0
@@ -0,0 +1,65 @@
1
+ name: Bug Report
2
+ description: Something isn't working as expected
3
+ labels: ["bug"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thanks for reporting! Please fill in as much detail as you can.
9
+
10
+ - type: textarea
11
+ id: what-happened
12
+ attributes:
13
+ label: What happened?
14
+ description: Describe the bug. What did you do, what did you expect, and what happened instead?
15
+ placeholder: |
16
+ Steps to reproduce:
17
+ 1. Run `rdc open capture.rdc`
18
+ 2. Run `rdc draws`
19
+ 3. ...
20
+
21
+ Expected: ...
22
+ Actual: ...
23
+ validations:
24
+ required: true
25
+
26
+ - type: textarea
27
+ id: doctor-output
28
+ attributes:
29
+ label: "`rdc doctor` output"
30
+ description: Paste the output of `rdc doctor` (helps us understand your environment).
31
+ render: text
32
+ validations:
33
+ required: false
34
+
35
+ - type: input
36
+ id: os
37
+ attributes:
38
+ label: OS / Platform
39
+ placeholder: "e.g. Ubuntu 24.04, Windows 11, macOS 15, Android 12 (EMUI)"
40
+ validations:
41
+ required: true
42
+
43
+ - type: input
44
+ id: python
45
+ attributes:
46
+ label: Python version
47
+ placeholder: "e.g. 3.12.3"
48
+ validations:
49
+ required: false
50
+
51
+ - type: input
52
+ id: rdc-version
53
+ attributes:
54
+ label: rdc-cli version
55
+ placeholder: "e.g. 0.4.4 (from `rdc --version`)"
56
+ validations:
57
+ required: true
58
+
59
+ - type: textarea
60
+ id: capture
61
+ attributes:
62
+ label: Capture file
63
+ description: If possible, attach a minimal `.rdc` file that reproduces the issue, or describe the GPU API / hardware involved.
64
+ validations:
65
+ required: false
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Documentation
4
+ url: https://bananasjim.github.io/rdc-cli/
5
+ about: Check the docs before opening an issue
@@ -0,0 +1,37 @@
1
+ name: Feature Request
2
+ description: Suggest a new feature or improvement
3
+ labels: ["enhancement"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Describe the use case first — what problem are you solving?
9
+
10
+ - type: textarea
11
+ id: problem
12
+ attributes:
13
+ label: Problem / Use case
14
+ description: What are you trying to do that isn't possible or is too difficult today?
15
+ placeholder: "I'm trying to ... but currently I have to ..."
16
+ validations:
17
+ required: true
18
+
19
+ - type: textarea
20
+ id: solution
21
+ attributes:
22
+ label: Proposed solution
23
+ description: If you have ideas on the CLI interface, include example invocations.
24
+ placeholder: |
25
+ ```bash
26
+ rdc frobnicate --flag value
27
+ ```
28
+ validations:
29
+ required: false
30
+
31
+ - type: textarea
32
+ id: alternatives
33
+ attributes:
34
+ label: Alternatives considered
35
+ description: Have you tried any workarounds? Other tools that solve this?
36
+ validations:
37
+ required: false
@@ -0,0 +1,17 @@
1
+ ## What
2
+
3
+ <!-- One-sentence summary of what this PR does. -->
4
+
5
+ ## Why
6
+
7
+ <!-- The problem or motivation. Link to the issue if there is one (Fixes #123). -->
8
+
9
+ ## How
10
+
11
+ <!-- Brief description of the approach. Call out any non-obvious decisions. -->
12
+
13
+ ## Test plan
14
+
15
+ - [ ] `pixi run check` passes (lint + typecheck + tests)
16
+ - [ ] Added/updated unit tests
17
+ - [ ] Manual testing with a real `.rdc` capture (if applicable)
@@ -76,4 +76,5 @@ jobs:
76
76
  commit_email: ${{ secrets.AUR_EMAIL }}
77
77
  ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
78
78
  commit_message: "Update rdc-cli to v${{ steps.ver.outputs.version }}"
79
+ force_push: true
79
80
  post_process: git checkout -B master
@@ -0,0 +1,92 @@
1
+ # Contributing to rdc-cli
2
+
3
+ Thanks for your interest in rdc-cli! Whether it's a bug report, feature idea, or code contribution — all are welcome.
4
+
5
+ ## Reporting issues
6
+
7
+ Found a bug or have a feature request? Please [open an issue](https://github.com/BANANASJIM/rdc-cli/issues).
8
+
9
+ A good issue includes:
10
+
11
+ - **Bug reports**: what you did, what you expected, what happened instead. Include `rdc doctor` output and your OS/Python version. A minimal `.rdc` capture to reproduce is ideal but not required.
12
+ - **Feature requests**: describe the use case (what problem are you solving?), not just the solution. If you have thoughts on the CLI interface, include an example invocation.
13
+ - **Questions**: if you're unsure whether something is a bug or a usage question, open an issue anyway — we'll sort it out.
14
+
15
+ ## Pull requests
16
+
17
+ ### Before you start
18
+
19
+ - For non-trivial changes, **open an issue first** to discuss the approach. This avoids wasted effort if the design needs adjustment.
20
+ - Small fixes (typos, one-liner bug fixes) can go straight to a PR.
21
+
22
+ ### PR description format
23
+
24
+ A good PR description helps reviewers understand your change quickly:
25
+
26
+ ```
27
+ ## What
28
+
29
+ One-sentence summary of what this PR does.
30
+
31
+ ## Why
32
+
33
+ The problem or motivation. Link to the issue if there is one (Fixes #123).
34
+
35
+ ## How
36
+
37
+ Brief description of the approach. Call out any non-obvious decisions
38
+ or trade-offs.
39
+
40
+ ## Test plan
41
+
42
+ How you verified the change works:
43
+ - [ ] Added/updated unit tests
44
+ - [ ] Ran `pixi run check` (lint + typecheck + tests)
45
+ - [ ] Manual testing with a real .rdc capture (if applicable)
46
+ ```
47
+
48
+ ### Commit messages
49
+
50
+ We use [Conventional Commits](https://www.conventionalcommits.org/), enforced by commitlint in CI:
51
+
52
+ ```
53
+ feat(cli): add frobnicate command
54
+ fix(daemon): handle missing texture gracefully
55
+ docs(readme): update install instructions
56
+ ```
57
+
58
+ Common scopes: `cli`, `daemon`, `vfs`, `ci`, `build`, `docs`.
59
+
60
+ ### Workflow
61
+
62
+ 1. Fork and clone the repo
63
+ 2. Set up the dev environment:
64
+ ```bash
65
+ pixi install && pixi run sync
66
+ ```
67
+ 3. Create a feature branch: `git switch -c feat/my-feature`
68
+ 4. Make your changes, ensure `pixi run check` passes
69
+ 5. Push and open a PR against `master`
70
+
71
+ PRs are squash-merged after review.
72
+
73
+ ### Code style
74
+
75
+ Enforced by CI — just follow the tooling:
76
+
77
+ - **Linter/formatter**: ruff (`ruff check --fix` / `ruff format` to auto-fix)
78
+ - **Type checker**: mypy strict mode
79
+ - **Line length**: 100 chars
80
+ - **Output**: `click.echo()` or `logging`, never `print()`
81
+ - **Paths**: `pathlib.Path`, not `os.path`
82
+
83
+ ### CI checks on PRs
84
+
85
+ - Lint (ruff) + type check (mypy)
86
+ - Unit tests — Python 3.10 / 3.12 / 3.14 on Linux + Windows
87
+ - Commitlint — conventional commit format
88
+ - Dependency audit (pip-audit)
89
+
90
+ ## License
91
+
92
+ By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdc-cli
3
- Version: 0.4.3
3
+ Version: 0.5.0
4
4
  Summary: CLI for RenderDoc .rdc captures
5
5
  Author: Jim
6
6
  License-Expression: MIT
@@ -40,6 +40,7 @@ Dynamic: license-file
40
40
  [![Commands](https://img.shields.io/endpoint?url=https://bananasjim.github.io/rdc-cli/badges/commands.json)](https://bananasjim.github.io/rdc-cli/)
41
41
  [![Tests](https://img.shields.io/endpoint?url=https://bananasjim.github.io/rdc-cli/badges/tests.json)](https://bananasjim.github.io/rdc-cli/)
42
42
  [![Coverage](https://img.shields.io/endpoint?url=https://bananasjim.github.io/rdc-cli/badges/coverage.json)](https://bananasjim.github.io/rdc-cli/)
43
+ [![Discord](https://img.shields.io/discord/1485003415687008296?logo=discord&label=Discord)](https://discord.gg/h3zwUadp4k)
43
44
 
44
45
  **Turn RenderDoc captures into Unix text streams.** rdc-cli does not replace RenderDoc — it makes `.rdc` file contents accessible to `grep`, `awk`, `sort`, `diff`, `jq`, and AI agents.
45
46
 
@@ -99,11 +100,12 @@ pixi run setup-renderdoc # build renderdoc (pixi installs toolchain
99
100
 
100
101
  ### Platform Support Matrix
101
102
 
102
- | Platform | Local capture/replay | Split client |
103
- |----------|----------------------|--------------|
104
- | Linux | ✅ | ✅ |
105
- | macOS | ❌ (not supported yet) | ✅ (recommended) |
106
- | Windows | ✅ | ✅ |
103
+ | Platform | Local capture/replay | Split client | Remote capture |
104
+ |----------|----------------------|--------------|----------------|
105
+ | Linux | ✅ | ✅ | ✅ |
106
+ | macOS | ❌ (not supported yet) | ✅ (recommended) | — |
107
+ | Windows | ✅ | ✅ | ✅ |
108
+ | Android | — | — | ✅ capture + remote replay |
107
109
 
108
110
  ### RenderDoc bootstrap
109
111
 
@@ -189,6 +191,28 @@ rdc close
189
191
 
190
192
  Split mode is recommended for cross-platform use. All commands work transparently regardless of mode.
191
193
 
194
+ **Android capture and remote replay**
195
+
196
+ ```bash
197
+ rdc setup-renderdoc --android # download RenderDoc APKs for Android
198
+ rdc android setup # start remote server on connected device
199
+ rdc android capture com.app/.MainActivity -o frame.rdc # capture via GPU debug layers
200
+
201
+ # Remote replay on the device GPU
202
+ rdc open frame.rdc --android # auto-resolves device from saved state
203
+ rdc draws # all commands work transparently
204
+ rdc pick-pixel 540 1170 --json # pixel queries work in remote mode
205
+ rdc close
206
+
207
+ rdc android stop # stop remote server
208
+ ```
209
+
210
+ Android capture uses GPU debug layers (Android 10+). Remote replay uploads the capture back to the device for replay on the original GPU. Tested on Adreno and Mali (EMUI) devices. For Mali GPUs, ARM Performance Studio is recommended:
211
+
212
+ ```bash
213
+ rdc setup-renderdoc --android --arm-studio /path/to/arm-performance-studio
214
+ ```
215
+
192
216
  ## Why rdc-cli?
193
217
 
194
218
  RenderDoc is excellent at capturing GPU frames and replaying them interactively. But its GUI doesn't compose — you can't pipe a draw call list into `sort`, diff two captures in CI, or let an AI agent inspect shader state.
@@ -213,16 +237,17 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
213
237
  | GPU state | `pipeline`, `bindings`, `shader`, `shaders`, `shader-map` |
214
238
  | Debug | `debug pixel`, `debug vertex`, `debug thread`, `pixel`, `pick-pixel`, `tex-stats` |
215
239
  | Shader edit | `shader-build`, `shader-replace`, `shader-restore`, `shader-restore-all`, `shader-encodings` |
216
- | Resources | `resources`, `resource`, `passes`, `pass`, `usage` |
240
+ | Resources | `resources`, `resource`, `passes`, `pass`, `usage`, `unused-targets` |
217
241
  | Export | `texture`, `rt`, `buffer`, `mesh`, `snapshot` |
218
242
  | Search | `search`, `counters` |
219
243
  | Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
220
244
  | Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
221
245
  | VFS | `ls`, `cat`, `tree` |
222
246
  | Remote | `remote connect`, `remote list`, `remote capture` |
247
+ | Android | `android setup`, `android stop`, `android capture` |
223
248
  | Target control | `attach`, `capture-trigger`, `capture-list`, `capture-copy` |
224
249
  | Capture file | `sections`, `section`, `callstacks`, `gpus`, `thumbnail` |
225
- | Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `install-skill` |
250
+ | Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `setup-renderdoc`, `install-skill` |
226
251
 
227
252
  All list commands output TSV. All commands support `--json`. Footer/summary goes to stderr — stdout is always clean data.
228
253
 
@@ -269,6 +294,10 @@ pixi run e2e # cross-platform smoke test (26 checks)
269
294
  pixi run test-e2e # full e2e suite (self-capture + dynamic discovery)
270
295
  ```
271
296
 
297
+ ## Contributing
298
+
299
+ Bug reports, feature requests, and pull requests are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
300
+
272
301
  ## License
273
302
 
274
303
  [MIT](LICENSE)
@@ -13,6 +13,7 @@
13
13
  [![Commands](https://img.shields.io/endpoint?url=https://bananasjim.github.io/rdc-cli/badges/commands.json)](https://bananasjim.github.io/rdc-cli/)
14
14
  [![Tests](https://img.shields.io/endpoint?url=https://bananasjim.github.io/rdc-cli/badges/tests.json)](https://bananasjim.github.io/rdc-cli/)
15
15
  [![Coverage](https://img.shields.io/endpoint?url=https://bananasjim.github.io/rdc-cli/badges/coverage.json)](https://bananasjim.github.io/rdc-cli/)
16
+ [![Discord](https://img.shields.io/discord/1485003415687008296?logo=discord&label=Discord)](https://discord.gg/h3zwUadp4k)
16
17
 
17
18
  **Turn RenderDoc captures into Unix text streams.** rdc-cli does not replace RenderDoc — it makes `.rdc` file contents accessible to `grep`, `awk`, `sort`, `diff`, `jq`, and AI agents.
18
19
 
@@ -72,11 +73,12 @@ pixi run setup-renderdoc # build renderdoc (pixi installs toolchain
72
73
 
73
74
  ### Platform Support Matrix
74
75
 
75
- | Platform | Local capture/replay | Split client |
76
- |----------|----------------------|--------------|
77
- | Linux | ✅ | ✅ |
78
- | macOS | ❌ (not supported yet) | ✅ (recommended) |
79
- | Windows | ✅ | ✅ |
76
+ | Platform | Local capture/replay | Split client | Remote capture |
77
+ |----------|----------------------|--------------|----------------|
78
+ | Linux | ✅ | ✅ | ✅ |
79
+ | macOS | ❌ (not supported yet) | ✅ (recommended) | — |
80
+ | Windows | ✅ | ✅ | ✅ |
81
+ | Android | — | — | ✅ capture + remote replay |
80
82
 
81
83
  ### RenderDoc bootstrap
82
84
 
@@ -162,6 +164,28 @@ rdc close
162
164
 
163
165
  Split mode is recommended for cross-platform use. All commands work transparently regardless of mode.
164
166
 
167
+ **Android capture and remote replay**
168
+
169
+ ```bash
170
+ rdc setup-renderdoc --android # download RenderDoc APKs for Android
171
+ rdc android setup # start remote server on connected device
172
+ rdc android capture com.app/.MainActivity -o frame.rdc # capture via GPU debug layers
173
+
174
+ # Remote replay on the device GPU
175
+ rdc open frame.rdc --android # auto-resolves device from saved state
176
+ rdc draws # all commands work transparently
177
+ rdc pick-pixel 540 1170 --json # pixel queries work in remote mode
178
+ rdc close
179
+
180
+ rdc android stop # stop remote server
181
+ ```
182
+
183
+ Android capture uses GPU debug layers (Android 10+). Remote replay uploads the capture back to the device for replay on the original GPU. Tested on Adreno and Mali (EMUI) devices. For Mali GPUs, ARM Performance Studio is recommended:
184
+
185
+ ```bash
186
+ rdc setup-renderdoc --android --arm-studio /path/to/arm-performance-studio
187
+ ```
188
+
165
189
  ## Why rdc-cli?
166
190
 
167
191
  RenderDoc is excellent at capturing GPU frames and replaying them interactively. But its GUI doesn't compose — you can't pipe a draw call list into `sort`, diff two captures in CI, or let an AI agent inspect shader state.
@@ -186,16 +210,17 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
186
210
  | GPU state | `pipeline`, `bindings`, `shader`, `shaders`, `shader-map` |
187
211
  | Debug | `debug pixel`, `debug vertex`, `debug thread`, `pixel`, `pick-pixel`, `tex-stats` |
188
212
  | Shader edit | `shader-build`, `shader-replace`, `shader-restore`, `shader-restore-all`, `shader-encodings` |
189
- | Resources | `resources`, `resource`, `passes`, `pass`, `usage` |
213
+ | Resources | `resources`, `resource`, `passes`, `pass`, `usage`, `unused-targets` |
190
214
  | Export | `texture`, `rt`, `buffer`, `mesh`, `snapshot` |
191
215
  | Search | `search`, `counters` |
192
216
  | Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
193
217
  | Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
194
218
  | VFS | `ls`, `cat`, `tree` |
195
219
  | Remote | `remote connect`, `remote list`, `remote capture` |
220
+ | Android | `android setup`, `android stop`, `android capture` |
196
221
  | Target control | `attach`, `capture-trigger`, `capture-list`, `capture-copy` |
197
222
  | Capture file | `sections`, `section`, `callstacks`, `gpus`, `thumbnail` |
198
- | Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `install-skill` |
223
+ | Utility | `doctor`, `completion`, `capture`, `count`, `script`, `serve`, `setup-renderdoc`, `install-skill` |
199
224
 
200
225
  All list commands output TSV. All commands support `--json`. Footer/summary goes to stderr — stdout is always clean data.
201
226
 
@@ -242,6 +267,10 @@ pixi run e2e # cross-platform smoke test (26 checks)
242
267
  pixi run test-e2e # full e2e suite (self-capture + dynamic discovery)
243
268
  ```
244
269
 
270
+ ## Contributing
271
+
272
+ Bug reports, feature requests, and pull requests are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
273
+
245
274
  ## License
246
275
 
247
276
  [MIT](LICENSE)
@@ -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]] [--remote HOST[:PORT]] [--listen [ADDR]:PORT] [--connect HOST:PORT] [--token TEXT]"
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]"
13
13
  },
14
14
  {
15
15
  "name": "close",
@@ -168,13 +168,19 @@
168
168
  "name": "passes",
169
169
  "id": "passes",
170
170
  "help": "List render passes.",
171
- "usage": "rdc passes [--json] [--deps] [--dot] [--graph] [--no-header] [--jsonl] [-q]"
171
+ "usage": "rdc passes [--json] [--deps] [--dot] [--graph] [--table] [--switches] [--no-header] [--jsonl] [-q]"
172
172
  },
173
173
  {
174
174
  "name": "pass",
175
175
  "id": "pass",
176
176
  "help": "Show detail for a single render pass by 0-based index or name.",
177
177
  "usage": "rdc pass <IDENTIFIER> [--json]"
178
+ },
179
+ {
180
+ "name": "unused-targets",
181
+ "id": "unused-targets",
182
+ "help": "Detect render targets produced but never consumed by visible output.",
183
+ "usage": "rdc unused-targets [--json] [-q] [--no-header]"
178
184
  }
179
185
  ]
180
186
  },
@@ -466,6 +472,24 @@
466
472
  "id": "remote-capture",
467
473
  "help": "Capture on a remote host and transfer to local.",
468
474
  "usage": "rdc remote capture <APP> -o <PATH> [--url TEXT] [--args TEXT] [--workdir TEXT] [--frame INTEGER] [--timeout FLOAT] [--api-validation] [--callstacks] [--hook-children] [--ref-all-resources] [--soft-memory-limit INTEGER] [--keep-remote] [--json]"
475
+ },
476
+ {
477
+ "name": "android setup",
478
+ "id": "android-setup",
479
+ "help": "Start RenderDoc remote server on an Android device.",
480
+ "usage": "rdc android setup [--serial TEXT] [--json]"
481
+ },
482
+ {
483
+ "name": "android stop",
484
+ "id": "android-stop",
485
+ "help": "Stop RenderDoc remote server on an Android device.",
486
+ "usage": "rdc android stop [--serial TEXT] [--json]"
487
+ },
488
+ {
489
+ "name": "android capture",
490
+ "id": "android-capture",
491
+ "help": "Capture a frame from an Android app using GPU debug layers.",
492
+ "usage": "rdc android capture <ACTIVITY> [--serial TEXT] [-o PATH] [--timeout FLOAT] [--port INTEGER] [--json]"
469
493
  }
470
494
  ]
471
495
  },
@@ -502,7 +526,7 @@
502
526
  "name": "setup-renderdoc",
503
527
  "id": "setup-renderdoc",
504
528
  "help": "Build and install the renderdoc Python module from source.",
505
- "usage": "rdc setup-renderdoc [INSTALL-DIR] [--build-dir TEXT] [--version TEXT] [--jobs INTEGER]"
529
+ "usage": "rdc setup-renderdoc [INSTALL-DIR] [--build-dir TEXT] [--version TEXT] [--jobs INTEGER] [--android] [--arm] [--arm-studio DIRECTORY]"
506
530
  }
507
531
  ]
508
532
  }
@@ -260,17 +260,51 @@ rdc --session after close</code></pre>
260
260
 
261
261
  <h2 id="render-pass">Render Pass Analysis</h2>
262
262
 
263
- <pre><code>{"# List all render passes"}
263
+ <pre><code>{"# List all render passes (NAME, DRAWS, DISPATCHES, TRIANGLES, BEGIN_EID, END_EID)"}
264
264
  rdc passes
265
265
 
266
- {"# Inspect a specific pass"}
266
+ {"# Inspect attachments, load/store ops, and dimensions for a pass"}
267
267
  rdc pass GBuffer
268
268
 
269
269
  {"# List draws in a pass"}
270
270
  rdc draws --pass GBuffer
271
271
 
272
272
  {"# Find passes with many draws"}
273
- rdc passes --json | jq '.[] | select(.draw_count > 50)'</code></pre>
273
+ rdc passes --json | jq '.[] | select(.draw_count > 50)'
274
+
275
+ {"# Largest triangle passes"}
276
+ rdc passes --json | jq 'sort_by(.triangles) | reverse | .[0:5] | .[] | {name, triangles}'
277
+
278
+ {"# Passes that clear then discard (load=Clear, store=Discard — wasted work)"}
279
+ rdc passes --json | jq '.[] | select(.load_ops[]? == "Clear" and .store_ops[]? == "Discard")'</code></pre>
280
+
281
+ <h2 id="pass-deps">Pass Dependency Analysis</h2>
282
+
283
+ <pre><code>{"# Per-pass reads/writes/load/store table"}
284
+ rdc passes --deps --table
285
+
286
+ {"# TBR/mobile: identify passes that switch render targets frequently"}
287
+ rdc passes --switches
288
+
289
+ {"# Passes with RT_SWITCHES > 2 (high bandwidth pressure on tile-based GPUs)"}
290
+ rdc passes --switches --json | jq '.[] | select(.rt_switches > 2) | {name, rt_switches}'
291
+
292
+ {"# Full dependency graph as DOT (render with Graphviz)"}
293
+ rdc passes --deps --dot | dot -Tsvg -o passes.svg</code></pre>
294
+
295
+ <h2 id="unused-targets">Dead Render Target Detection</h2>
296
+
297
+ <pre><code>{"# Find render targets that are written but never read"}
298
+ rdc unused-targets
299
+
300
+ {"# Names only — quick scan"}
301
+ rdc unused-targets -q
302
+
303
+ {"# JSON — get name + writer + wave for each dead target"}
304
+ rdc unused-targets --json | jq '.unused[] | {name, written_by, wave}'
305
+
306
+ {"# Count dead targets (useful as a CI assert)"}
307
+ rdc unused-targets -q | wc -l</code></pre>
274
308
 
275
309
  <h2 id="pixel-ladder">Pixel Investigation Ladder</h2>
276
310
 
@@ -258,6 +258,54 @@ rdc pipeline # pipeline state via remote controller</code></pre>
258
258
 
259
259
  <hr />
260
260
 
261
+ <h2>Android Remote Replay</h2>
262
+
263
+ <p>
264
+ Android captures can only be replayed on the original device GPU (desktop GPUs
265
+ are incompatible with mobile GLES/Vulkan captures). The <code>--android</code>
266
+ flag on <code>rdc open</code> automates this: it resolves the device's
267
+ adb-forwarded port from saved state and opens a proxy replay session.
268
+ </p>
269
+
270
+ <h3>Workflow</h3>
271
+ <pre><code># 1. Setup: start RenderDoc remote server on the device
272
+ rdc android setup
273
+
274
+ # 2. Capture a frame
275
+ rdc android capture com.example.app/.MainActivity -o frame.rdc
276
+
277
+ # 3. Remote replay on the device GPU
278
+ rdc open frame.rdc --android # auto-resolves device
279
+ rdc open frame.rdc --android --serial XYZ # explicit device selection
280
+
281
+ # 4. All commands work transparently
282
+ rdc info # shows "API: OpenGL, machine_ident: Android ARM 64-bit"
283
+ rdc draws # draw call list
284
+ rdc pick-pixel 540 1170 --json # pixel queries
285
+ rdc snapshot 11 -o ./snap/ # pipeline + shader export
286
+ rdc close
287
+
288
+ # 5. Cleanup
289
+ rdc android stop</code></pre>
290
+
291
+ <h3>How it works</h3>
292
+ <p>
293
+ <code>--android</code> reads the <code>RemoteServerState</code> saved by
294
+ <code>rdc android setup</code>, finds the adb-forwarded TCP port via
295
+ <code>adb forward --list</code>, and passes <code>localhost:PORT</code>
296
+ as the proxy URL. The daemon then uploads the capture to the device via
297
+ <code>CopyCaptureToRemote</code> and opens it for replay on the device GPU.
298
+ </p>
299
+
300
+ <h3>Prerequisites</h3>
301
+ <ul>
302
+ <li><code>rdc android setup</code> must be run first (starts the remote server)</li>
303
+ <li>Device must be connected via USB with <code>adb</code> access</li>
304
+ <li>Android 10+ for GPU debug layer capture</li>
305
+ </ul>
306
+
307
+ <hr />
308
+
261
309
  <h2>Remote Capture Commands</h2>
262
310
 
263
311
  <p>
@@ -404,7 +452,10 @@ rdc pipeline</code></pre>
404
452
  rdc open capture.rdc
405
453
 
406
454
  # Proxy mode
407
- rdc open capture.rdc --proxy HOST[:PORT]
455
+ rdc open capture.rdc --proxy HOST[:PORT]|adb://SERIAL
456
+
457
+ # Android remote replay
458
+ rdc open capture.rdc --android [--serial SERIAL]
408
459
 
409
460
  # Split server
410
461
  rdc open capture.rdc --listen [ADDR]:PORT # :0 for auto-port
@@ -420,7 +471,8 @@ rdc remote capture APP [-o OUTPUT]</code></pre>
420
471
 
421
472
  <h2>Notes</h2>
422
473
  <ul>
423
- <li><code>--connect</code> is mutually exclusive with <code>CAPTURE</code>, <code>--proxy</code>, and <code>--listen</code>.</li>
474
+ <li><code>--connect</code> is mutually exclusive with <code>CAPTURE</code>, <code>--proxy</code>, <code>--android</code>, and <code>--listen</code>.</li>
475
+ <li><code>--android</code> is mutually exclusive with <code>--proxy</code>, <code>--connect</code>, and <code>--listen</code>.</li>
424
476
  <li><code>--listen</code> can be combined with <code>--proxy</code> for Split+Proxy setups.</li>
425
477
  <li>For <code>rdc open</code>, <code>--remote</code> is a deprecated alias for <code>--proxy</code> (hidden, shows deprecation warning).</li>
426
478
  <li>The daemon has a 30-minute idle timeout by default. Any command resets the timer.</li>
@@ -95,4 +95,31 @@ rdc usage 5
95
95
 
96
96
  # Show all resource usage
97
97
  rdc usage --all</code></pre>
98
+
99
+ <h2>Pass Analysis</h2>
100
+ <p>
101
+ <code>rdc passes</code> shows 6 columns: NAME, DRAWS, DISPATCHES, TRIANGLES, BEGIN_EID, END_EID.
102
+ GL/GLES/D3D11 captures get synthetic pass inference automatically.
103
+ </p>
104
+ <pre><code># Tabular pass summary
105
+ rdc passes
106
+
107
+ # Per-pass dependency graph (reads/writes/load/store)
108
+ rdc passes --deps --table
109
+
110
+ # Add RT_SWITCHES column for TBR/mobile bandwidth analysis
111
+ rdc passes --switches
112
+
113
+ # Inspect attachments, load/store ops, and dimensions for a pass
114
+ rdc pass GBuffer
115
+
116
+ # JSON output — includes load_ops/store_ops per pass
117
+ rdc passes --json | jq '.[] | {name: .name, load: .load_ops, store: .store_ops}'</code></pre>
118
+
119
+ <h2>Dead Render Target Detection</h2>
120
+ <pre><code># List render targets written but never sampled/read
121
+ rdc unused-targets
122
+
123
+ # JSON output for scripted analysis
124
+ rdc unused-targets --json | jq '.[].name'</code></pre>
98
125
  </Docs>
@@ -48,8 +48,12 @@ libvulkan-loader = ">=1.3"
48
48
  libvulkan-headers = ">=1.3"
49
49
  libvulkan-loader = ">=1.3"
50
50
 
51
+ [feature.android.activation.env]
52
+ PATH = ".local/android-platform-tools/platform-tools:${PATH}"
53
+
51
54
  [environments]
52
55
  vulkan = { features = ["vulkan"], solve-group = "default" }
56
+ android = { features = ["android"], solve-group = "default" }
53
57
 
54
58
  [activation.env]
55
59
  RENDERDOC_PYTHON_PATH = ".local/renderdoc"
@@ -76,6 +80,7 @@ e2e = "python scripts/e2e_test.py"
76
80
  test-e2e = "uv run pytest tests/e2e -v -m gpu --no-header"
77
81
  test-e2e-full = "uv run pytest tests/e2e -v -m 'gpu or vulkan_samples' --no-header"
78
82
  setup-vulkan-samples = "python scripts/setup_vulkan_samples.py"
83
+ setup-android = "python scripts/setup_android_tools.py"
79
84
  docs-install = "npm --prefix docs-astro ci"
80
85
  docs-build = "npm --prefix docs-astro run build"
81
86
  docs-test = "npm --prefix docs-astro test"
@@ -35,7 +35,7 @@ dev = [
35
35
  ]
36
36
 
37
37
  [project.scripts]
38
- rdc = "rdc.cli:main"
38
+ rdc = "rdc.cli:entry"
39
39
 
40
40
  [tool.setuptools]
41
41
  package-dir = {"" = "src"}