rdc-cli 0.3.2__tar.gz → 0.3.4__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 (565) hide show
  1. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.github/workflows/ci.yml +21 -2
  2. {rdc_cli-0.3.2/src/rdc_cli.egg-info → rdc_cli-0.3.4}/PKG-INFO +43 -33
  3. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/README.md +41 -31
  4. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/aur/PKGBUILD +1 -0
  5. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/aur/stable/PKGBUILD +1 -0
  6. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/package-lock.json +1 -8
  7. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/package.json +1 -2
  8. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Hero.astro +117 -29
  9. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Install.astro +10 -7
  10. rdc_cli-0.3.4/docs-astro/src/data/commands.json +492 -0
  11. rdc_cli-0.3.4/docs-astro/src/data/replay.json +116 -0
  12. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/data/stats.json +1 -1
  13. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/layouts/Docs.astro +1 -0
  14. rdc_cli-0.3.4/docs-astro/src/pages/docs/commands.astro +26 -0
  15. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/docs/examples.astro +79 -0
  16. rdc_cli-0.3.4/docs-astro/src/pages/docs/install/windows.astro +105 -0
  17. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/docs/install.astro +16 -4
  18. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/docs/usage.astro +7 -4
  19. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/styles/global.css +8 -0
  20. rdc_cli-0.3.4/openspec/changes/2026-02-23-phase-w2-build-script/proposal.md +173 -0
  21. rdc_cli-0.3.4/openspec/changes/2026-02-23-phase-w2-build-script/tasks.md +90 -0
  22. rdc_cli-0.3.4/openspec/changes/2026-02-23-phase-w2-build-script/test-plan.md +116 -0
  23. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +114 -0
  24. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +168 -0
  25. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +219 -0
  26. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/proposal.md +281 -0
  27. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/tasks.md +349 -0
  28. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/test-plan.md +361 -0
  29. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +97 -0
  30. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +135 -0
  31. rdc_cli-0.3.4/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +95 -0
  32. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +214 -0
  33. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +186 -0
  34. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +104 -0
  35. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/proposal.md +202 -0
  36. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/tasks.md +130 -0
  37. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/test-plan.md +139 -0
  38. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/proposal.md +161 -0
  39. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/tasks.md +157 -0
  40. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/test-plan.md +122 -0
  41. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/proposal.md +155 -0
  42. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/tasks.md +71 -0
  43. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/test-plan.md +303 -0
  44. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +79 -0
  45. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +46 -0
  46. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +57 -0
  47. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +21 -0
  48. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +6 -0
  49. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +11 -0
  50. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/proposal.md +239 -0
  51. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/tasks.md +131 -0
  52. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/test-plan.md +327 -0
  53. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +208 -0
  54. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +405 -0
  55. rdc_cli-0.3.4/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +288 -0
  56. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/pixi.toml +5 -1
  57. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/pyproject.toml +1 -1
  58. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/build-renderdoc.sh +2 -0
  59. rdc_cli-0.3.4/scripts/build_renderdoc.py +295 -0
  60. rdc_cli-0.3.4/scripts/gen-commands.py +210 -0
  61. rdc_cli-0.3.4/scripts/gen-replay.py +159 -0
  62. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/setup-renderdoc.sh +2 -0
  63. rdc_cli-0.3.4/src/rdc/_platform.py +152 -0
  64. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/_skills/references/commands-quick-ref.md +55 -1
  65. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/_transport.py +1 -1
  66. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/capture_core.py +19 -12
  67. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/cli.py +2 -0
  68. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/_helpers.py +12 -1
  69. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/capture.py +9 -7
  70. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/capture_control.py +5 -1
  71. rdc_cli-0.3.4/src/rdc/commands/doctor.py +240 -0
  72. rdc_cli-0.3.4/src/rdc/commands/remote.py +218 -0
  73. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/search.py +2 -2
  74. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/session.py +2 -0
  75. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/daemon_server.py +7 -4
  76. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/discover.py +6 -6
  77. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/_helpers.py +65 -6
  78. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/buffer.py +2 -1
  79. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/pipe_state.py +37 -7
  80. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/query.py +9 -4
  81. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/shader.py +5 -41
  82. rdc_cli-0.3.4/src/rdc/remote_core.py +188 -0
  83. rdc_cli-0.3.4/src/rdc/remote_state.py +79 -0
  84. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/services/diff_service.py +2 -6
  85. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/services/query_service.py +24 -16
  86. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/services/session_service.py +17 -8
  87. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/session_state.py +6 -24
  88. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/target_state.py +6 -9
  89. {rdc_cli-0.3.2 → rdc_cli-0.3.4/src/rdc_cli.egg-info}/PKG-INFO +43 -33
  90. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc_cli.egg-info/SOURCES.txt +61 -15
  91. rdc_cli-0.3.4/tests/integration/test_build_renderdoc_integration.py +14 -0
  92. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/mocks/mock_renderdoc.py +7 -3
  93. rdc_cli-0.3.4/tests/unit/test_build_renderdoc.py +505 -0
  94. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_capture.py +87 -3
  95. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_capture_control.py +43 -1
  96. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_capture_core.py +34 -6
  97. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_cli_session_flag.py +1 -0
  98. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_count_shadermap.py +112 -4
  99. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_daemon_pipeline_extended.py +83 -29
  100. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_daemon_server_unit.py +39 -1
  101. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_daemon_transport.py +51 -0
  102. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_debug_commands.py +40 -0
  103. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_framebuffer.py +1 -1
  104. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_service.py +15 -12
  105. rdc_cli-0.3.4/tests/unit/test_doctor.py +325 -0
  106. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_draws_events_daemon.py +76 -0
  107. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_json_errors.py +24 -0
  108. rdc_cli-0.3.4/tests/unit/test_platform.py +290 -0
  109. rdc_cli-0.3.4/tests/unit/test_remote_commands.py +427 -0
  110. rdc_cli-0.3.4/tests/unit/test_remote_core.py +416 -0
  111. rdc_cli-0.3.4/tests/unit/test_remote_state.py +89 -0
  112. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_search.py +7 -1
  113. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_session_commands.py +43 -6
  114. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_session_service.py +91 -4
  115. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_session_state.py +15 -7
  116. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_shader_preload.py +39 -2
  117. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_target_state.py +1 -1
  118. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_tooling_files.py +4 -0
  119. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/uv.lock +0 -1
  120. rdc_cli-0.3.2/docs-astro/src/pages/docs/commands.astro +0 -313
  121. rdc_cli-0.3.2/openspec/changes/2026-02-23-docs-polish/proposal.md +0 -66
  122. rdc_cli-0.3.2/openspec/changes/2026-02-23-docs-polish/tasks.md +0 -32
  123. rdc_cli-0.3.2/openspec/changes/2026-02-23-docs-polish/test-plan.md +0 -48
  124. rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -36
  125. rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -55
  126. rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -42
  127. rdc_cli-0.3.2/src/rdc/commands/doctor.py +0 -97
  128. rdc_cli-0.3.2/tests/unit/test_doctor.py +0 -58
  129. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.commitlintrc.yml +0 -0
  130. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.githooks/pre-commit +0 -0
  131. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.githooks/pre-push +0 -0
  132. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.github/CODEOWNERS +0 -0
  133. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.github/workflows/aur.yml +0 -0
  134. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.github/workflows/commitlint.yml +0 -0
  135. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.github/workflows/docs.yml +0 -0
  136. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.gitignore +0 -0
  137. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.python-version +0 -0
  138. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/.release-please-manifest.json +0 -0
  139. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/LICENSE +0 -0
  140. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/Makefile +0 -0
  141. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/SECURITY.md +0 -0
  142. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docker/Dockerfile +0 -0
  143. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs/cli-reference.md +0 -0
  144. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs/index.md +0 -0
  145. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs/install.md +0 -0
  146. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs/usage.md +0 -0
  147. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs/vfs.md +0 -0
  148. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/astro.config.mjs +0 -0
  149. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/public/.nojekyll +0 -0
  150. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/public/favicon.svg +0 -0
  151. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Commands.astro +0 -0
  152. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Demo.astro +0 -0
  153. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Features.astro +0 -0
  154. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Footer.astro +0 -0
  155. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Navbar.astro +0 -0
  156. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Philosophy.astro +0 -0
  157. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/Terminal.astro +0 -0
  158. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
  159. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/layouts/Base.astro +0 -0
  160. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
  161. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/docs/design.astro +0 -0
  162. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/docs/index.astro +0 -0
  163. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/docs/vfs.astro +0 -0
  164. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/src/pages/index.astro +0 -0
  165. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/tailwind.config.mjs +0 -0
  166. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/tapes/pipeline.tape +0 -0
  167. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/tapes/quickstart.tape +0 -0
  168. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/tests/validate.mjs +0 -0
  169. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/docs-astro/tsconfig.json +0 -0
  170. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/mkdocs.yml +0 -0
  171. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/mypy.ini +0 -0
  172. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -0
  173. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -0
  174. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -0
  175. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -0
  176. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -0
  177. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -0
  178. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -0
  179. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -0
  180. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +0 -0
  181. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -0
  182. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -0
  183. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -0
  184. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +0 -0
  185. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -0
  186. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -0
  187. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -0
  188. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +0 -0
  189. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -0
  190. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -0
  191. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -0
  192. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +0 -0
  193. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -0
  194. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -0
  195. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -0
  196. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +0 -0
  197. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -0
  198. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -0
  199. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -0
  200. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +0 -0
  201. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -0
  202. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -0
  203. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -0
  204. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -0
  205. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +0 -0
  206. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -0
  207. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -0
  208. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -0
  209. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +0 -0
  210. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -0
  211. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -0
  212. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -0
  213. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +0 -0
  214. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +0 -0
  215. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -0
  216. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -0
  217. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -0
  218. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +0 -0
  219. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -0
  220. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -0
  221. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -0
  222. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -0
  223. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -0
  224. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -0
  225. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -0
  226. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -0
  227. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -0
  228. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +0 -0
  229. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -0
  230. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -0
  231. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -0
  232. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -0
  233. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -0
  234. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -0
  235. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -0
  236. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -0
  237. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -0
  238. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -0
  239. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -0
  240. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -0
  241. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -0
  242. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -0
  243. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -0
  244. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -0
  245. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -0
  246. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -0
  247. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -0
  248. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -0
  249. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -0
  250. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -0
  251. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -0
  252. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -0
  253. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -0
  254. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -0
  255. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -0
  256. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -0
  257. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -0
  258. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -0
  259. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -0
  260. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -0
  261. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -0
  262. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -0
  263. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +0 -0
  264. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -0
  265. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -0
  266. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +0 -0
  267. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +0 -0
  268. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +0 -0
  269. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +0 -0
  270. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -0
  271. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -0
  272. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +0 -0
  273. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -0
  274. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -0
  275. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +0 -0
  276. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -0
  277. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -0
  278. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +0 -0
  279. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -0
  280. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -0
  281. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +0 -0
  282. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -0
  283. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -0
  284. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +0 -0
  285. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -0
  286. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -0
  287. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -0
  288. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -0
  289. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -0
  290. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +0 -0
  291. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +0 -0
  292. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +0 -0
  293. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +0 -0
  294. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -0
  295. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -0
  296. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -0
  297. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -0
  298. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -0
  299. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +0 -0
  300. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -0
  301. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -0
  302. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +0 -0
  303. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -0
  304. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -0
  305. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +0 -0
  306. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -0
  307. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -0
  308. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -0
  309. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -0
  310. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -0
  311. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -0
  312. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -0
  313. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -0
  314. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -0
  315. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-code-maintainability/proposal.md +0 -0
  316. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-code-maintainability/tasks.md +0 -0
  317. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-code-maintainability/test-plan.md +0 -0
  318. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -0
  319. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -0
  320. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -0
  321. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -0
  322. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -0
  323. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +0 -0
  324. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +0 -0
  325. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +0 -0
  326. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +0 -0
  327. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +0 -0
  328. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +0 -0
  329. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +0 -0
  330. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -0
  331. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -0
  332. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -0
  333. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -0
  334. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -0
  335. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -0
  336. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -0
  337. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -0
  338. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -0
  339. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -0
  340. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -0
  341. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -0
  342. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -0
  343. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -0
  344. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -0
  345. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -0
  346. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -0
  347. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -0
  348. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-docs-automation/proposal.md +0 -0
  349. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-docs-automation/tasks.md +0 -0
  350. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-docs-automation/test-plan.md +0 -0
  351. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -0
  352. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -0
  353. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -0
  354. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -0
  355. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -0
  356. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -0
  357. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -0
  358. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -0
  359. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -0
  360. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -0
  361. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -0
  362. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -0
  363. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -0
  364. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -0
  365. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -0
  366. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -0
  367. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -0
  368. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +0 -0
  369. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -0
  370. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -0
  371. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -0
  372. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -0
  373. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -0
  374. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -0
  375. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -0
  376. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -0
  377. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -0
  378. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -0
  379. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -0
  380. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -0
  381. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -0
  382. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -0
  383. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -0
  384. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -0
  385. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -0
  386. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -0
  387. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -0
  388. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -0
  389. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -0
  390. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-skill-auto-install/proposal.md +0 -0
  391. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-skill-auto-install/tasks.md +0 -0
  392. {rdc_cli-0.3.2/openspec/changes → rdc_cli-0.3.4/openspec/changes/archive}/2026-02-22-skill-auto-install/test-plan.md +0 -0
  393. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -0
  394. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -0
  395. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -0
  396. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -0
  397. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -0
  398. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -0
  399. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -0
  400. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -0
  401. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -0
  402. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/specs/architecture/spec.md +0 -0
  403. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/specs/ci/spec.md +0 -0
  404. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/specs/daemon/spec.md +0 -0
  405. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/specs/foundation/spec.md +0 -0
  406. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/specs/packaging/spec.md +0 -0
  407. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/specs/session/spec.md +0 -0
  408. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/openspec/specs/tooling/spec.md +0 -0
  409. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/pixi.lock +0 -0
  410. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/release-please-config.json +0 -0
  411. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/ruff.toml +0 -0
  412. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/capture_fixture.sh +0 -0
  413. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/e2e-test.sh +0 -0
  414. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/ensure-renderdoc.sh +0 -0
  415. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/gen-skill-ref.py +0 -0
  416. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/gen-stats.py +0 -0
  417. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/scripts/verify-package.sh +0 -0
  418. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/setup.cfg +0 -0
  419. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/__init__.py +0 -0
  420. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/_skills/SKILL.md +0 -0
  421. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/_skills/__init__.py +0 -0
  422. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/adapter.py +0 -0
  423. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/assert_ci.py +0 -0
  424. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/assert_image.py +0 -0
  425. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/capturefile.py +0 -0
  426. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/completion.py +0 -0
  427. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/counters.py +0 -0
  428. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/debug.py +0 -0
  429. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/diff.py +0 -0
  430. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/events.py +0 -0
  431. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/export.py +0 -0
  432. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/info.py +0 -0
  433. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/install_skill.py +0 -0
  434. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/mesh.py +0 -0
  435. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/pick_pixel.py +0 -0
  436. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/pipeline.py +0 -0
  437. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/pixel.py +0 -0
  438. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/resources.py +0 -0
  439. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/script.py +0 -0
  440. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/shader_edit.py +0 -0
  441. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/snapshot.py +0 -0
  442. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/tex_stats.py +0 -0
  443. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/unix_helpers.py +0 -0
  444. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/usage.py +0 -0
  445. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/commands/vfs.py +0 -0
  446. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/daemon_client.py +0 -0
  447. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/__init__.py +0 -0
  448. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/alignment.py +0 -0
  449. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/draws.py +0 -0
  450. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/framebuffer.py +0 -0
  451. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/pipeline.py +0 -0
  452. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/resources.py +0 -0
  453. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/stats.py +0 -0
  454. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/diff/summary.py +0 -0
  455. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/formatters/json_fmt.py +0 -0
  456. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/formatters/options.py +0 -0
  457. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/formatters/tsv.py +0 -0
  458. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/__init__.py +0 -0
  459. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/_types.py +0 -0
  460. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/capturefile.py +0 -0
  461. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/core.py +0 -0
  462. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/debug.py +0 -0
  463. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/descriptor.py +0 -0
  464. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/pixel.py +0 -0
  465. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/script.py +0 -0
  466. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/shader_edit.py +0 -0
  467. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/texture.py +0 -0
  468. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/handlers/vfs.py +0 -0
  469. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/image_compare.py +0 -0
  470. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/protocol.py +0 -0
  471. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/services/__init__.py +0 -0
  472. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/vfs/__init__.py +0 -0
  473. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/vfs/formatter.py +0 -0
  474. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/vfs/router.py +0 -0
  475. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc/vfs/tree_cache.py +0 -0
  476. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
  477. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc_cli.egg-info/entry_points.txt +0 -0
  478. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc_cli.egg-info/requires.txt +0 -0
  479. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/src/rdc_cli.egg-info/top_level.txt +0 -0
  480. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/conftest.py +0 -0
  481. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/fixtures/hello_triangle.rdc +0 -0
  482. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/fixtures/vkcube.rdc +0 -0
  483. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/fixtures/vkcube_validation.rdc +0 -0
  484. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/integration/test_daemon_handlers_real.py +0 -0
  485. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/integration/test_mock_api_sync.py +0 -0
  486. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/integration/test_real_replay.py +0 -0
  487. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/integration/test_vulkan_samples.py +0 -0
  488. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_adapter.py +0 -0
  489. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_assert_ci_commands.py +0 -0
  490. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_assert_image_command.py +0 -0
  491. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_binary_daemon.py +0 -0
  492. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_buffer_decode.py +0 -0
  493. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_capturefile_commands.py +0 -0
  494. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_capturefile_handlers.py +0 -0
  495. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_ci_files.py +0 -0
  496. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_cli.py +0 -0
  497. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_completion.py +0 -0
  498. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_counters_commands.py +0 -0
  499. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_counters_daemon.py +0 -0
  500. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_daemon_crash_regression.py +0 -0
  501. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_daemon_output_quality.py +0 -0
  502. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_daemon_shader_api_fix.py +0 -0
  503. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_daemon_shader_extended.py +0 -0
  504. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_debug_handlers.py +0 -0
  505. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_descriptors_daemon.py +0 -0
  506. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_alignment.py +0 -0
  507. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_command.py +0 -0
  508. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_draws.py +0 -0
  509. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_pipeline.py +0 -0
  510. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_resources.py +0 -0
  511. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_stats.py +0 -0
  512. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_diff_summary.py +0 -0
  513. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_discover.py +0 -0
  514. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_draws_daemon.py +0 -0
  515. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_draws_events_cli.py +0 -0
  516. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_events_commands.py +0 -0
  517. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_export_commands.py +0 -0
  518. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_export_overlay.py +0 -0
  519. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_fix1_draws_pass_name.py +0 -0
  520. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_fix2_vfs_intermediate_dirs.py +0 -0
  521. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
  522. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_formatters.py +0 -0
  523. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_gen_skill_ref.py +0 -0
  524. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_image_compare.py +0 -0
  525. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_info_commands.py +0 -0
  526. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_install_skill.py +0 -0
  527. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_mesh_commands.py +0 -0
  528. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_mesh_handler.py +0 -0
  529. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_mock_capture_types.py +0 -0
  530. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_mock_renderdoc.py +0 -0
  531. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_output_options.py +0 -0
  532. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_overlay_handler.py +0 -0
  533. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pick_pixel_commands.py +0 -0
  534. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pick_pixel_daemon.py +0 -0
  535. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pipeline_cli_phase27.py +0 -0
  536. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pipeline_commands.py +0 -0
  537. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pipeline_daemon.py +0 -0
  538. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pipeline_section_routing.py +0 -0
  539. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pipeline_shader.py +0 -0
  540. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pipeline_state.py +0 -0
  541. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pixel_history_commands.py +0 -0
  542. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pixel_history_daemon.py +0 -0
  543. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_pixi_files.py +0 -0
  544. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_protocol.py +0 -0
  545. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_query_service.py +0 -0
  546. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_resources_commands.py +0 -0
  547. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_resources_filter.py +0 -0
  548. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_script_command.py +0 -0
  549. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_script_handler.py +0 -0
  550. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_shader_edit_commands.py +0 -0
  551. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_shader_edit_handlers.py +0 -0
  552. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_skill_structure.py +0 -0
  553. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_snapshot_command.py +0 -0
  554. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_tex_stats_commands.py +0 -0
  555. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_tex_stats_handler.py +0 -0
  556. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_unix_helpers_commands.py +0 -0
  557. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_usage_commands.py +0 -0
  558. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_usage_daemon.py +0 -0
  559. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_vfs_binary.py +0 -0
  560. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_vfs_commands.py +0 -0
  561. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_vfs_completion.py +0 -0
  562. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_vfs_daemon.py +0 -0
  563. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_vfs_formatter.py +0 -0
  564. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_vfs_router.py +0 -0
  565. {rdc_cli-0.3.2 → rdc_cli-0.3.4}/tests/unit/test_vfs_tree_cache.py +0 -0
@@ -55,6 +55,24 @@ jobs:
55
55
  - run: uv sync --extra dev
56
56
  - run: uv run --with pip-audit pip-audit
57
57
 
58
+ validate-aur:
59
+ name: Validate AUR PKGBUILD
60
+ runs-on: ubuntu-latest
61
+ container: archlinux:latest
62
+ steps:
63
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
64
+
65
+ - name: Install makedepends from PKGBUILD
66
+ run: |
67
+ deps=$(sed -n '/^makedepends=(/,/)/p' aur/PKGBUILD \
68
+ | grep -oP "'[^']+'" | tr -d "'" | tr '\n' ' ')
69
+ pacman -Syu --noconfirm base-devel $deps
70
+
71
+ - name: Build wheel (no-isolation, same as PKGBUILD)
72
+ run: python -m build --wheel --no-isolation
73
+ env:
74
+ SETUPTOOLS_SCM_PRETEND_VERSION: "0.0.0"
75
+
58
76
  typecheck:
59
77
  name: Type check (mypy)
60
78
  runs-on: ubuntu-latest
@@ -77,12 +95,13 @@ jobs:
77
95
  run: uv run mypy src
78
96
 
79
97
  test:
80
- name: Test (py${{ matrix.python-version }})
81
- runs-on: ubuntu-latest
98
+ name: Test (py${{ matrix.python-version }}, ${{ matrix.os }})
99
+ runs-on: ${{ matrix.os }}
82
100
  strategy:
83
101
  fail-fast: false
84
102
  matrix:
85
103
  python-version: ["3.10", "3.12", "3.14"]
104
+ os: [ubuntu-latest, windows-latest]
86
105
  steps:
87
106
  - name: Checkout
88
107
  uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdc-cli
3
- Version: 0.3.2
4
- Summary: Unix-friendly CLI for RenderDoc .rdc captures
3
+ Version: 0.3.4
4
+ Summary: CLI for RenderDoc .rdc captures
5
5
  Author: Jim
6
6
  License-Expression: MIT
7
7
  Classifier: Programming Language :: Python :: 3
@@ -56,20 +56,41 @@ rdc diff before.rdc after.rdc --draws | grep '~' # what changed betw
56
56
  rdc close
57
57
  ```
58
58
 
59
- ## Why rdc-cli?
59
+ ## Install
60
60
 
61
- 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.
61
+ **PyPILinux** (recommended)
62
62
 
63
- rdc-cli bridges that gap:
63
+ ```bash
64
+ pipx install rdc-cli # install the CLI
65
+ # Build the renderdoc Python module (one-time, ~3 min, needs cmake + ninja)
66
+ curl -fsSL https://raw.githubusercontent.com/BANANASJIM/rdc-cli/master/scripts/build-renderdoc.sh | bash
67
+ rdc doctor # verify everything works
68
+ ```
64
69
 
65
- - **TSV by default** — every command outputs tab-separated text that pipes directly into Unix tools. Raw numbers, not human-friendly formatting (use `--table` for that).
66
- - **VFS path namespace** — GPU state is navigable like a filesystem: `/draws/142/shader/ps`, `/passes/GBuffer/draws`, `/resources/88`. Explore with `ls`, read with `cat`.
67
- - **Daemon architecture** — load the capture once, then query as many times as you want. No per-command startup cost.
68
- - **Built for CI** — `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` with `diff(1)`-compatible exit codes (0=pass, 1=fail, 2=error).
69
- - **AI-agent friendly** structured output (`--json`, `--jsonl`), deterministic VFS paths, and a [Claude Code skill](https://bananasjim.github.io/rdc-cli/) for automated GPU frame analysis.
70
- - **Escape hatch** — `rdc script` runs arbitrary Python inside the daemon with full access to the renderdoc module, for anything the CLI doesn't cover yet.
70
+ **PyPI Windows** (experimental)
71
+
72
+ ```bash
73
+ pipx install rdc-cli
74
+ python scripts/build_renderdoc.py # needs cmake + Visual Studio Build Tools
75
+ rdc doctor
76
+ ```
77
+
78
+ **AUR** (Arch Linux — builds renderdoc automatically, no extra setup)
79
+
80
+ ```bash
81
+ yay -S rdc-cli # stable: tracks tagged releases
82
+ yay -S rdc-cli-git # git: tracks latest master
83
+ ```
84
+
85
+ **From source**
86
+
87
+ ```bash
88
+ git clone https://github.com/BANANASJIM/rdc-cli.git
89
+ cd rdc-cli
90
+ pixi install && pixi run sync
91
+ ```
71
92
 
72
- ## Quick examples
93
+ ## Quickstart
73
94
 
74
95
  **Explore a capture like a filesystem:**
75
96
 
@@ -118,30 +139,18 @@ rdc diff before.rdc after.rdc --draws # per-draw changes
118
139
  rdc diff before.rdc after.rdc --framebuffer # pixel-level image diff
119
140
  ```
120
141
 
121
- ## Install
122
-
123
- **PyPI** (recommended)
124
-
125
- ```bash
126
- pipx install rdc-cli
127
- # build renderdoc Python module (one-time, ~3 min, needs cmake/ninja/python3)
128
- curl -fsSL https://raw.githubusercontent.com/BANANASJIM/rdc-cli/master/scripts/build-renderdoc.sh | bash
129
- rdc doctor # verify installation
130
- ```
131
-
132
- **AUR** (Arch Linux — builds renderdoc Python module automatically)
142
+ ## Why rdc-cli?
133
143
 
134
- ```bash
135
- yay -S rdc-cli-git
136
- ```
144
+ 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.
137
145
 
138
- **From source**
146
+ rdc-cli bridges that gap:
139
147
 
140
- ```bash
141
- git clone https://github.com/BANANASJIM/rdc-cli.git
142
- cd rdc-cli
143
- pixi install && pixi run sync
144
- ```
148
+ - **TSV by default** — every command outputs tab-separated text that pipes directly into Unix tools. Raw numbers, not human-friendly formatting (use `--table` for that).
149
+ - **VFS path namespace** — GPU state is navigable like a filesystem: `/draws/142/shader/ps`, `/passes/GBuffer/draws`, `/resources/88`. Explore with `ls`, read with `cat`.
150
+ - **Daemon architecture** — load the capture once, then query as many times as you want. No per-command startup cost.
151
+ - **Built for CI** `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` with `diff(1)`-compatible exit codes (0=pass, 1=fail, 2=error).
152
+ - **AI-agent friendly** — structured output (`--json`, `--jsonl`), deterministic VFS paths, and a [Claude Code skill](https://bananasjim.github.io/rdc-cli/) for automated GPU frame analysis.
153
+ - **Escape hatch** — `rdc script` runs arbitrary Python inside the daemon with full access to the renderdoc module, for anything the CLI doesn't cover yet.
145
154
 
146
155
  ## Commands
147
156
 
@@ -160,6 +169,7 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
160
169
  | Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
161
170
  | Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
162
171
  | VFS | `ls`, `cat`, `tree` |
172
+ | Remote | `remote connect`, `remote list`, `remote capture` |
163
173
  | Utility | `doctor`, `completion`, `capture`, `count`, `script`, `install-skill` |
164
174
 
165
175
  All list commands output TSV. All commands support `--json`. Footer/summary goes to stderr — stdout is always clean data.
@@ -27,20 +27,41 @@ rdc diff before.rdc after.rdc --draws | grep '~' # what changed betw
27
27
  rdc close
28
28
  ```
29
29
 
30
- ## Why rdc-cli?
30
+ ## Install
31
31
 
32
- 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.
32
+ **PyPILinux** (recommended)
33
33
 
34
- rdc-cli bridges that gap:
34
+ ```bash
35
+ pipx install rdc-cli # install the CLI
36
+ # Build the renderdoc Python module (one-time, ~3 min, needs cmake + ninja)
37
+ curl -fsSL https://raw.githubusercontent.com/BANANASJIM/rdc-cli/master/scripts/build-renderdoc.sh | bash
38
+ rdc doctor # verify everything works
39
+ ```
35
40
 
36
- - **TSV by default** — every command outputs tab-separated text that pipes directly into Unix tools. Raw numbers, not human-friendly formatting (use `--table` for that).
37
- - **VFS path namespace** — GPU state is navigable like a filesystem: `/draws/142/shader/ps`, `/passes/GBuffer/draws`, `/resources/88`. Explore with `ls`, read with `cat`.
38
- - **Daemon architecture** — load the capture once, then query as many times as you want. No per-command startup cost.
39
- - **Built for CI** — `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` with `diff(1)`-compatible exit codes (0=pass, 1=fail, 2=error).
40
- - **AI-agent friendly** structured output (`--json`, `--jsonl`), deterministic VFS paths, and a [Claude Code skill](https://bananasjim.github.io/rdc-cli/) for automated GPU frame analysis.
41
- - **Escape hatch** — `rdc script` runs arbitrary Python inside the daemon with full access to the renderdoc module, for anything the CLI doesn't cover yet.
41
+ **PyPI Windows** (experimental)
42
+
43
+ ```bash
44
+ pipx install rdc-cli
45
+ python scripts/build_renderdoc.py # needs cmake + Visual Studio Build Tools
46
+ rdc doctor
47
+ ```
48
+
49
+ **AUR** (Arch Linux — builds renderdoc automatically, no extra setup)
50
+
51
+ ```bash
52
+ yay -S rdc-cli # stable: tracks tagged releases
53
+ yay -S rdc-cli-git # git: tracks latest master
54
+ ```
55
+
56
+ **From source**
57
+
58
+ ```bash
59
+ git clone https://github.com/BANANASJIM/rdc-cli.git
60
+ cd rdc-cli
61
+ pixi install && pixi run sync
62
+ ```
42
63
 
43
- ## Quick examples
64
+ ## Quickstart
44
65
 
45
66
  **Explore a capture like a filesystem:**
46
67
 
@@ -89,30 +110,18 @@ rdc diff before.rdc after.rdc --draws # per-draw changes
89
110
  rdc diff before.rdc after.rdc --framebuffer # pixel-level image diff
90
111
  ```
91
112
 
92
- ## Install
93
-
94
- **PyPI** (recommended)
95
-
96
- ```bash
97
- pipx install rdc-cli
98
- # build renderdoc Python module (one-time, ~3 min, needs cmake/ninja/python3)
99
- curl -fsSL https://raw.githubusercontent.com/BANANASJIM/rdc-cli/master/scripts/build-renderdoc.sh | bash
100
- rdc doctor # verify installation
101
- ```
102
-
103
- **AUR** (Arch Linux — builds renderdoc Python module automatically)
113
+ ## Why rdc-cli?
104
114
 
105
- ```bash
106
- yay -S rdc-cli-git
107
- ```
115
+ 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.
108
116
 
109
- **From source**
117
+ rdc-cli bridges that gap:
110
118
 
111
- ```bash
112
- git clone https://github.com/BANANASJIM/rdc-cli.git
113
- cd rdc-cli
114
- pixi install && pixi run sync
115
- ```
119
+ - **TSV by default** — every command outputs tab-separated text that pipes directly into Unix tools. Raw numbers, not human-friendly formatting (use `--table` for that).
120
+ - **VFS path namespace** — GPU state is navigable like a filesystem: `/draws/142/shader/ps`, `/passes/GBuffer/draws`, `/resources/88`. Explore with `ls`, read with `cat`.
121
+ - **Daemon architecture** — load the capture once, then query as many times as you want. No per-command startup cost.
122
+ - **Built for CI** `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` with `diff(1)`-compatible exit codes (0=pass, 1=fail, 2=error).
123
+ - **AI-agent friendly** — structured output (`--json`, `--jsonl`), deterministic VFS paths, and a [Claude Code skill](https://bananasjim.github.io/rdc-cli/) for automated GPU frame analysis.
124
+ - **Escape hatch** — `rdc script` runs arbitrary Python inside the daemon with full access to the renderdoc module, for anything the CLI doesn't cover yet.
116
125
 
117
126
  ## Commands
118
127
 
@@ -131,6 +140,7 @@ Run `rdc --help` for the full list, or `rdc <command> --help` for details. See
131
140
  | Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
132
141
  | Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
133
142
  | VFS | `ls`, `cat`, `tree` |
143
+ | Remote | `remote connect`, `remote list`, `remote capture` |
134
144
  | Utility | `doctor`, `completion`, `capture`, `count`, `script`, `install-skill` |
135
145
 
136
146
  All list commands output TSV. All commands support `--json`. Footer/summary goes to stderr — stdout is always clean data.
@@ -20,6 +20,7 @@ makedepends=(
20
20
  'python-build'
21
21
  'python-installer'
22
22
  'python-setuptools'
23
+ 'python-setuptools-scm'
23
24
  'python-wheel'
24
25
  'cmake'
25
26
  'ninja'
@@ -20,6 +20,7 @@ makedepends=(
20
20
  'python-build'
21
21
  'python-installer'
22
22
  'python-setuptools'
23
+ 'python-setuptools-scm'
23
24
  'python-wheel'
24
25
  'cmake'
25
26
  'ninja'
@@ -11,8 +11,7 @@
11
11
  "@astrojs/tailwind": "^6.0.2",
12
12
  "astro": "^5.7.10",
13
13
  "gsap": "^3.12.7",
14
- "tailwindcss": "^3.4.17",
15
- "typed.js": "^2.1.0"
14
+ "tailwindcss": "^3.4.17"
16
15
  },
17
16
  "devDependencies": {
18
17
  "@tailwindcss/typography": "^0.5.19",
@@ -5371,12 +5370,6 @@
5371
5370
  "url": "https://github.com/sponsors/sindresorhus"
5372
5371
  }
5373
5372
  },
5374
- "node_modules/typed.js": {
5375
- "version": "2.1.0",
5376
- "resolved": "https://registry.npmjs.org/typed.js/-/typed.js-2.1.0.tgz",
5377
- "integrity": "sha512-bDuXEf7YcaKN4g08NMTUM6G90XU25CK3bh6U0THC/Mod/QPKlEt9g/EjvbYB8x2Qwr2p6J6I3NrsoYaVnY6wsQ==",
5378
- "license": "MIT"
5379
- },
5380
5373
  "node_modules/typescript": {
5381
5374
  "version": "5.9.3",
5382
5375
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
@@ -14,8 +14,7 @@
14
14
  "@astrojs/tailwind": "^6.0.2",
15
15
  "astro": "^5.7.10",
16
16
  "gsap": "^3.12.7",
17
- "tailwindcss": "^3.4.17",
18
- "typed.js": "^2.1.0"
17
+ "tailwindcss": "^3.4.17"
19
18
  },
20
19
  "devDependencies": {
21
20
  "@tailwindcss/typography": "^0.5.19",
@@ -35,7 +35,7 @@ const base = import.meta.env.BASE_URL;
35
35
  Designed for <span class="text-gpu-accent font-medium">CI pipelines</span> and <span class="text-gpu-purple font-medium">AI agents</span>.
36
36
  </p>
37
37
 
38
- <!-- Typed.js terminal -->
38
+ <!-- Terminal session replay -->
39
39
  <div class="max-w-2xl mx-auto mb-14">
40
40
  <div class="terminal-window glow-accent">
41
41
  <div class="terminal-header">
@@ -44,11 +44,8 @@ const base = import.meta.env.BASE_URL;
44
44
  <span class="terminal-dot bg-[#28c840]"></span>
45
45
  <span class="ml-auto text-[10px] text-gray-500 font-mono tracking-wider uppercase">rdc-cli</span>
46
46
  </div>
47
- <div class="terminal-body text-left min-h-[3rem]">
48
- <div class="flex items-start">
49
- <span class="text-gpu-green mr-2 select-none font-bold">$</span>
50
- <span id="typed-output" class="text-gray-200"></span>
51
- </div>
47
+ <div id="replay-terminal" class="terminal-body text-left overflow-y-auto text-xs md:text-sm transition-[height] duration-300 ease-out" style="min-height: 2.5rem; max-height: 24rem;">
48
+ <div id="replay-lines"></div>
52
49
  </div>
53
50
  </div>
54
51
  </div>
@@ -83,27 +80,118 @@ const base = import.meta.env.BASE_URL;
83
80
  </section>
84
81
 
85
82
  <script>
86
- import Typed from 'typed.js';
87
-
88
- new Typed('#typed-output', {
89
- strings: [
90
- 'rdc open capture.rdc',
91
- 'rdc draws --json | jq \'.[] | select(.flags == "Drawcall")\'',
92
- 'rdc pipeline 142 --section shader',
93
- 'rdc shader 142 ps --target "SPIR-V (RenderDoc)"',
94
- 'rdc resources --type texture --sort size',
95
- 'rdc texture 5 -o albedo.png',
96
- 'rdc search "main" --scope shaders',
97
- 'rdc ls /draws/142/pipeline/',
98
- 'rdc counters --list | head',
99
- 'rdc close',
100
- ],
101
- typeSpeed: 35,
102
- backSpeed: 15,
103
- backDelay: 2500,
104
- startDelay: 500,
105
- loop: true,
106
- showCursor: true,
107
- cursorChar: '\u2588',
108
- });
83
+ import playlists from '../data/replay.json';
84
+
85
+ const container = document.getElementById('replay-lines')!;
86
+ const terminal = document.getElementById('replay-terminal')!;
87
+
88
+ const TYPE_SPEED = 20;
89
+ const OUTPUT_LINE_DELAY = 30;
90
+ const SCENE_PAUSE = 1400;
91
+ const RESTART_PAUSE = 2000;
92
+
93
+ let playlistIndex = 0;
94
+
95
+ function sleep(ms: number) { return new Promise(r => setTimeout(r, ms)); }
96
+
97
+ function scrollToBottom() {
98
+ terminal.scrollTop = terminal.scrollHeight;
99
+ }
100
+
101
+ function createPromptLine(): { el: HTMLDivElement; span: HTMLSpanElement } {
102
+ const el = document.createElement('div');
103
+ el.className = 'flex items-start';
104
+ el.innerHTML = '<span class="text-gpu-green mr-2 select-none font-bold shrink-0">$</span>';
105
+ const span = document.createElement('span');
106
+ span.className = 'text-gray-200';
107
+ el.appendChild(span);
108
+ const cursor = document.createElement('span');
109
+ cursor.className = 'replay-cursor';
110
+ cursor.textContent = '\u2588';
111
+ el.appendChild(cursor);
112
+ container.appendChild(el);
113
+ return { el, span };
114
+ }
115
+
116
+ async function typeCommand(text: string) {
117
+ const { el, span } = createPromptLine();
118
+ scrollToBottom();
119
+ for (const ch of text) {
120
+ span.textContent += ch;
121
+ scrollToBottom();
122
+ await sleep(TYPE_SPEED);
123
+ }
124
+ el.querySelector('.replay-cursor')?.remove();
125
+ }
126
+
127
+ function renderOutputLine(line: string): HTMLDivElement {
128
+ const div = document.createElement('div');
129
+ div.className = 'text-gray-400 pl-0 whitespace-pre';
130
+
131
+ // TSV header (all-caps tab-separated)
132
+ if (/^\t*[A-Z_]+(\t[A-Z_]+)+$/.test(line)) {
133
+ div.className = 'text-gray-500 pl-0 whitespace-pre';
134
+ div.textContent = line.replace(/\t/g, ' ');
135
+ return div;
136
+ }
137
+
138
+ // Key-value lines (like rdc info)
139
+ const kvMatch = line.match(/^(\w[\w\s]*?)\s{2,}(.+)$/);
140
+ if (kvMatch) {
141
+ const k = document.createElement('span');
142
+ k.className = 'text-gray-500';
143
+ k.textContent = kvMatch[1];
144
+ div.appendChild(k);
145
+ div.appendChild(document.createTextNode(' '));
146
+ const v = document.createElement('span');
147
+ v.className = 'text-gray-300';
148
+ v.textContent = kvMatch[2];
149
+ div.appendChild(v);
150
+ return div;
151
+ }
152
+
153
+ // TSV data rows
154
+ if (line.includes('\t')) {
155
+ div.textContent = line.replace(/\t/g, ' ');
156
+ div.className = 'text-gray-300 pl-0 whitespace-pre';
157
+ return div;
158
+ }
159
+
160
+ // JSON
161
+ if (/^\s*[{}\[\]"]/.test(line)) {
162
+ div.className = 'text-gray-400 pl-0 whitespace-pre';
163
+ div.textContent = line;
164
+ return div;
165
+ }
166
+
167
+ div.textContent = line;
168
+ return div;
169
+ }
170
+
171
+ async function showOutput(output: string) {
172
+ if (!output) return;
173
+ for (const line of output.split('\n')) {
174
+ container.appendChild(renderOutputLine(line));
175
+ scrollToBottom();
176
+ await sleep(OUTPUT_LINE_DELAY);
177
+ }
178
+ }
179
+
180
+ async function runReplay() {
181
+ while (true) {
182
+ const playlist = playlists[playlistIndex % playlists.length];
183
+ playlistIndex++;
184
+ container.innerHTML = '';
185
+
186
+ for (const scene of playlist) {
187
+ await typeCommand(scene.cmd);
188
+ await sleep(200);
189
+ await showOutput(scene.output);
190
+ await sleep(SCENE_PAUSE);
191
+ }
192
+ await sleep(RESTART_PAUSE);
193
+ }
194
+ }
195
+
196
+ runReplay();
109
197
  </script>
@@ -18,12 +18,14 @@
18
18
  <span class="text-[10px] text-gray-500 tracking-wider">recommended</span>
19
19
  </div>
20
20
  <div class="group relative terminal-window">
21
- <div class="px-5 py-4 font-mono text-sm text-gray-200">
22
- <span class="text-gpu-green select-none font-bold">$ </span>pipx install rdc-cli
21
+ <div class="px-5 py-4 font-mono text-sm text-gray-200 space-y-1">
22
+ <div><span class="text-gpu-green select-none font-bold">$ </span>pipx install rdc-cli</div>
23
+ <div class="text-gray-500"># build renderdoc Python module (~3 min, one-time)</div>
24
+ <div><span class="text-gpu-green select-none font-bold">$ </span>curl -fsSL https://raw.githubusercontent.com/BANANASJIM/rdc-cli/master/scripts/build-renderdoc.sh | bash</div>
23
25
  </div>
24
26
  <button
25
27
  class="copy-btn absolute top-3 right-3 px-2.5 py-1 text-[10px] text-gray-500 bg-gpu-card rounded-md opacity-100 md:opacity-0 md:group-hover:opacity-100 transition-all duration-200 hover:text-gpu-accent hover:bg-gpu-accent/10 uppercase tracking-wider font-bold"
26
- data-copy="pipx install rdc-cli"
28
+ data-copy="pipx install rdc-cli && curl -fsSL https://raw.githubusercontent.com/BANANASJIM/rdc-cli/master/scripts/build-renderdoc.sh | bash"
27
29
  >
28
30
  Copy
29
31
  </button>
@@ -33,15 +35,16 @@
33
35
  <div class="install-block opacity-0">
34
36
  <div class="flex items-center gap-2 mb-2">
35
37
  <span class="text-[10px] font-bold text-gpu-purple uppercase tracking-[0.2em]">AUR</span>
36
- <span class="text-[10px] text-gray-500 tracking-wider">Arch Linux</span>
38
+ <span class="text-[10px] text-gray-500 tracking-wider">Arch Linux — includes renderdoc</span>
37
39
  </div>
38
40
  <div class="group relative terminal-window">
39
- <div class="px-5 py-4 font-mono text-sm text-gray-200">
40
- <span class="text-gpu-green select-none font-bold">$ </span>yay -S rdc-cli-git
41
+ <div class="px-5 py-4 font-mono text-sm text-gray-200 space-y-1">
42
+ <div><span class="text-gpu-green select-none font-bold">$ </span>yay -S rdc-cli<span class="text-gray-500"> # stable: tagged releases</span></div>
43
+ <div><span class="text-gpu-green select-none font-bold">$ </span>yay -S rdc-cli-git<span class="text-gray-500"> # git: latest master</span></div>
41
44
  </div>
42
45
  <button
43
46
  class="copy-btn absolute top-3 right-3 px-2.5 py-1 text-[10px] text-gray-500 bg-gpu-card rounded-md opacity-100 md:opacity-0 md:group-hover:opacity-100 transition-all duration-200 hover:text-gpu-accent hover:bg-gpu-accent/10 uppercase tracking-wider font-bold"
44
- data-copy="yay -S rdc-cli-git"
47
+ data-copy="yay -S rdc-cli"
45
48
  >
46
49
  Copy
47
50
  </button>