rdc-cli 0.3.6__tar.gz → 0.3.8__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 (621) hide show
  1. {rdc_cli-0.3.6/src/rdc_cli.egg-info → rdc_cli-0.3.8}/PKG-INFO +12 -9
  2. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/README.md +11 -8
  3. rdc_cli-0.3.8/openspec/changes/archive/2026-02-28-design-deviation-fixes/proposal.md +68 -0
  4. rdc_cli-0.3.8/openspec/changes/archive/2026-02-28-design-deviation-fixes/tasks.md +25 -0
  5. rdc_cli-0.3.8/openspec/changes/archive/2026-02-28-design-deviation-fixes/test-plan.md +45 -0
  6. rdc_cli-0.3.8/openspec/changes/archive/2026-02-28-dev-install-enhancement/proposal.md +136 -0
  7. rdc_cli-0.3.8/openspec/changes/archive/2026-02-28-dev-install-enhancement/tasks.md +13 -0
  8. rdc_cli-0.3.8/openspec/changes/archive/2026-02-28-dev-install-enhancement/test-plan.md +56 -0
  9. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/pixi.lock +221 -0
  10. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/pixi.toml +5 -1
  11. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/pyproject.toml +5 -2
  12. rdc_cli-0.3.8/scripts/dev_install.py +89 -0
  13. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/e2e-test.sh +2 -2
  14. rdc_cli-0.3.8/scripts/setup-vulkan-samples.sh +28 -0
  15. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/_skills/references/commands-quick-ref.md +16 -1
  16. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/cli.py +2 -0
  17. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/_helpers.py +27 -45
  18. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/capturefile.py +45 -3
  19. rdc_cli-0.3.8/src/rdc/commands/completion.py +185 -0
  20. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/events.py +2 -2
  21. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/export.py +7 -5
  22. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/resources.py +105 -34
  23. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/session.py +16 -19
  24. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/usage.py +1 -5
  25. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/vfs.py +12 -3
  26. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/daemon_server.py +36 -4
  27. rdc_cli-0.3.8/src/rdc/handlers/__init__.py +1 -0
  28. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/_helpers.py +57 -10
  29. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/buffer.py +14 -13
  30. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/capture.py +0 -6
  31. rdc_cli-0.3.8/src/rdc/handlers/capturefile.py +254 -0
  32. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/core.py +3 -11
  33. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/debug.py +2 -0
  34. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/descriptor.py +7 -6
  35. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/pipe_state.py +54 -53
  36. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/pixel.py +10 -9
  37. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/query.py +109 -13
  38. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/shader.py +35 -21
  39. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/shader_edit.py +10 -9
  40. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/texture.py +16 -14
  41. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/vfs.py +8 -0
  42. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/services/query_service.py +124 -1
  43. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/services/session_service.py +4 -0
  44. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/vfs/router.py +10 -0
  45. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/vfs/tree_cache.py +46 -7
  46. {rdc_cli-0.3.6 → rdc_cli-0.3.8/src/rdc_cli.egg-info}/PKG-INFO +12 -9
  47. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc_cli.egg-info/SOURCES.txt +43 -15
  48. rdc_cli-0.3.8/tests/e2e/__init__.py +0 -0
  49. rdc_cli-0.3.8/tests/e2e/blackbox_test_catalog.md +291 -0
  50. rdc_cli-0.3.8/tests/e2e/conftest.py +77 -0
  51. rdc_cli-0.3.8/tests/e2e/e2e_helpers.py +58 -0
  52. rdc_cli-0.3.8/tests/e2e/test_advanced.py +121 -0
  53. rdc_cli-0.3.8/tests/e2e/test_assert.py +193 -0
  54. rdc_cli-0.3.8/tests/e2e/test_capture.py +219 -0
  55. rdc_cli-0.3.8/tests/e2e/test_capturefile.py +93 -0
  56. rdc_cli-0.3.8/tests/e2e/test_debug.py +138 -0
  57. rdc_cli-0.3.8/tests/e2e/test_diff.py +120 -0
  58. rdc_cli-0.3.8/tests/e2e/test_export.py +177 -0
  59. rdc_cli-0.3.8/tests/e2e/test_formats.py +147 -0
  60. rdc_cli-0.3.8/tests/e2e/test_presession.py +96 -0
  61. rdc_cli-0.3.8/tests/e2e/test_query.py +293 -0
  62. rdc_cli-0.3.8/tests/e2e/test_session.py +164 -0
  63. rdc_cli-0.3.8/tests/e2e/test_shader_edit.py +158 -0
  64. rdc_cli-0.3.8/tests/e2e/test_vfs.py +355 -0
  65. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/mocks/mock_renderdoc.py +19 -1
  66. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/conftest.py +1 -1
  67. rdc_cli-0.3.8/tests/unit/test_capturefile_commands.py +342 -0
  68. rdc_cli-0.3.8/tests/unit/test_capturefile_handlers.py +502 -0
  69. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_completion.py +8 -0
  70. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_daemon_output_quality.py +13 -0
  71. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_daemon_server_unit.py +167 -30
  72. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_daemon_shader_extended.py +36 -0
  73. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_debug_commands.py +1 -1
  74. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_debug_handlers.py +22 -0
  75. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_descriptors_daemon.py +3 -1
  76. rdc_cli-0.3.8/tests/unit/test_dev_install.py +267 -0
  77. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_draws_events_daemon.py +151 -0
  78. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_info_commands.py +4 -2
  79. rdc_cli-0.3.8/tests/unit/test_pass_deps.py +691 -0
  80. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pipeline_cli_phase27.py +2 -2
  81. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pipeline_commands.py +4 -4
  82. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pipeline_shader.py +3 -3
  83. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_remote_commands.py +3 -0
  84. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_remote_replay.py +1 -0
  85. rdc_cli-0.3.8/tests/unit/test_require_pipe.py +53 -0
  86. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_resource_semantic_completion.py +8 -5
  87. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_resources_commands.py +1 -1
  88. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_resources_filter.py +5 -5
  89. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_script_command.py +5 -5
  90. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_search.py +13 -3
  91. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_session_completion.py +2 -26
  92. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_shader_preload.py +16 -2
  93. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_split_binary.py +5 -3
  94. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_split_core.py +1 -0
  95. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_tex_stats_handler.py +27 -0
  96. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_unix_helpers_commands.py +1 -1
  97. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_vfs_commands.py +20 -0
  98. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_vfs_completion.py +23 -12
  99. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_vfs_daemon.py +121 -0
  100. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_vfs_router.py +92 -0
  101. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_vfs_tree_cache.py +170 -1
  102. rdc_cli-0.3.6/src/rdc/commands/completion.py +0 -49
  103. rdc_cli-0.3.6/src/rdc/handlers/__init__.py +0 -15
  104. rdc_cli-0.3.6/src/rdc/handlers/capturefile.py +0 -115
  105. rdc_cli-0.3.6/tests/unit/test_capturefile_commands.py +0 -118
  106. rdc_cli-0.3.6/tests/unit/test_capturefile_handlers.py +0 -153
  107. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.commitlintrc.yml +0 -0
  108. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.githooks/pre-commit +0 -0
  109. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.githooks/pre-push +0 -0
  110. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.github/CODEOWNERS +0 -0
  111. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.github/workflows/aur.yml +0 -0
  112. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.github/workflows/ci.yml +0 -0
  113. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.github/workflows/commitlint.yml +0 -0
  114. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.github/workflows/docs.yml +0 -0
  115. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.gitignore +0 -0
  116. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.python-version +0 -0
  117. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/.release-please-manifest.json +0 -0
  118. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/LICENSE +0 -0
  119. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/Makefile +0 -0
  120. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/SECURITY.md +0 -0
  121. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/aur/PKGBUILD +0 -0
  122. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/aur/stable/PKGBUILD +0 -0
  123. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docker/Dockerfile +0 -0
  124. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs/cli-reference.md +0 -0
  125. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs/index.md +0 -0
  126. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs/install.md +0 -0
  127. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs/usage.md +0 -0
  128. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs/vfs.md +0 -0
  129. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/astro.config.mjs +0 -0
  130. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/package-lock.json +0 -0
  131. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/package.json +0 -0
  132. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/public/.nojekyll +0 -0
  133. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/public/favicon.svg +0 -0
  134. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Commands.astro +0 -0
  135. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Demo.astro +0 -0
  136. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Features.astro +0 -0
  137. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Footer.astro +0 -0
  138. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Hero.astro +0 -0
  139. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Install.astro +0 -0
  140. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Navbar.astro +0 -0
  141. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Philosophy.astro +0 -0
  142. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/Terminal.astro +0 -0
  143. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/components/ThemeSwitcher.astro +0 -0
  144. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/data/commands.json +0 -0
  145. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/data/replay.json +0 -0
  146. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/data/stats.json +0 -0
  147. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/layouts/Base.astro +0 -0
  148. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/layouts/Docs.astro +0 -0
  149. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/ai-integration.astro +0 -0
  150. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/commands.astro +0 -0
  151. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/design.astro +0 -0
  152. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/examples.astro +0 -0
  153. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/index.astro +0 -0
  154. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/install.astro +0 -0
  155. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/remote.astro +0 -0
  156. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/usage.astro +0 -0
  157. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/docs/vfs.astro +0 -0
  158. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/pages/index.astro +0 -0
  159. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/src/styles/global.css +0 -0
  160. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/tailwind.config.mjs +0 -0
  161. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/tapes/pipeline.tape +0 -0
  162. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/tapes/quickstart.tape +0 -0
  163. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/tests/validate.mjs +0 -0
  164. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/docs-astro/tsconfig.json +0 -0
  165. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/mkdocs.yml +0 -0
  166. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/mypy.ini +0 -0
  167. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +0 -0
  168. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +0 -0
  169. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +0 -0
  170. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +0 -0
  171. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +0 -0
  172. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +0 -0
  173. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +0 -0
  174. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +0 -0
  175. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +0 -0
  176. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +0 -0
  177. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +0 -0
  178. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +0 -0
  179. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +0 -0
  180. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +0 -0
  181. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +0 -0
  182. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +0 -0
  183. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +0 -0
  184. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +0 -0
  185. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +0 -0
  186. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +0 -0
  187. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +0 -0
  188. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +0 -0
  189. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +0 -0
  190. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +0 -0
  191. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +0 -0
  192. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +0 -0
  193. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +0 -0
  194. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +0 -0
  195. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +0 -0
  196. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +0 -0
  197. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +0 -0
  198. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +0 -0
  199. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +0 -0
  200. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +0 -0
  201. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +0 -0
  202. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +0 -0
  203. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +0 -0
  204. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +0 -0
  205. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +0 -0
  206. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +0 -0
  207. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +0 -0
  208. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +0 -0
  209. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +0 -0
  210. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +0 -0
  211. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +0 -0
  212. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +0 -0
  213. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +0 -0
  214. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +0 -0
  215. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +0 -0
  216. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +0 -0
  217. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +0 -0
  218. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +0 -0
  219. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +0 -0
  220. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +0 -0
  221. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +0 -0
  222. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +0 -0
  223. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +0 -0
  224. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +0 -0
  225. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +0 -0
  226. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +0 -0
  227. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +0 -0
  228. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +0 -0
  229. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +0 -0
  230. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +0 -0
  231. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +0 -0
  232. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +0 -0
  233. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +0 -0
  234. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +0 -0
  235. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +0 -0
  236. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +0 -0
  237. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +0 -0
  238. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +0 -0
  239. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +0 -0
  240. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +0 -0
  241. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +0 -0
  242. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +0 -0
  243. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +0 -0
  244. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +0 -0
  245. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +0 -0
  246. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +0 -0
  247. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +0 -0
  248. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +0 -0
  249. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +0 -0
  250. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +0 -0
  251. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +0 -0
  252. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +0 -0
  253. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +0 -0
  254. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +0 -0
  255. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +0 -0
  256. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +0 -0
  257. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +0 -0
  258. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +0 -0
  259. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +0 -0
  260. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +0 -0
  261. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +0 -0
  262. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +0 -0
  263. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +0 -0
  264. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +0 -0
  265. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +0 -0
  266. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +0 -0
  267. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +0 -0
  268. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +0 -0
  269. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +0 -0
  270. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +0 -0
  271. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +0 -0
  272. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +0 -0
  273. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +0 -0
  274. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +0 -0
  275. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +0 -0
  276. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +0 -0
  277. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +0 -0
  278. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +0 -0
  279. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +0 -0
  280. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +0 -0
  281. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +0 -0
  282. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +0 -0
  283. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +0 -0
  284. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +0 -0
  285. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +0 -0
  286. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +0 -0
  287. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +0 -0
  288. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +0 -0
  289. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +0 -0
  290. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +0 -0
  291. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +0 -0
  292. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +0 -0
  293. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +0 -0
  294. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +0 -0
  295. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +0 -0
  296. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +0 -0
  297. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +0 -0
  298. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +0 -0
  299. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +0 -0
  300. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +0 -0
  301. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-ai-agent-skill/proposal.md +0 -0
  302. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-ai-agent-skill/tasks.md +0 -0
  303. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-ai-agent-skill/test-plan.md +0 -0
  304. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +0 -0
  305. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +0 -0
  306. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +0 -0
  307. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/proposal.md +0 -0
  308. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/tasks.md +0 -0
  309. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-bugfix-remaining-blackbox/test-plan.md +0 -0
  310. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +0 -0
  311. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +0 -0
  312. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +0 -0
  313. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +0 -0
  314. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +0 -0
  315. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +0 -0
  316. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +0 -0
  317. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +0 -0
  318. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +0 -0
  319. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +0 -0
  320. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +0 -0
  321. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +0 -0
  322. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +0 -0
  323. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +0 -0
  324. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +0 -0
  325. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +0 -0
  326. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +0 -0
  327. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +0 -0
  328. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +0 -0
  329. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +0 -0
  330. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +0 -0
  331. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +0 -0
  332. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +0 -0
  333. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +0 -0
  334. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +0 -0
  335. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +0 -0
  336. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +0 -0
  337. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +0 -0
  338. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +0 -0
  339. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +0 -0
  340. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +0 -0
  341. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +0 -0
  342. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +0 -0
  343. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +0 -0
  344. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +0 -0
  345. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +0 -0
  346. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-docs-automation/proposal.md +0 -0
  347. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-docs-automation/tasks.md +0 -0
  348. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-docs-automation/test-plan.md +0 -0
  349. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/proposal.md +0 -0
  350. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/tasks.md +0 -0
  351. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-fix-json-error-and-search-preload/test-plan.md +0 -0
  352. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-image-compare/proposal.md +0 -0
  353. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-image-compare/tasks.md +0 -0
  354. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +0 -0
  355. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +0 -0
  356. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +0 -0
  357. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +0 -0
  358. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +0 -0
  359. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +0 -0
  360. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +0 -0
  361. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +0 -0
  362. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +0 -0
  363. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +0 -0
  364. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +0 -0
  365. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +0 -0
  366. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +0 -0
  367. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +0 -0
  368. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +0 -0
  369. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +0 -0
  370. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +0 -0
  371. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +0 -0
  372. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +0 -0
  373. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +0 -0
  374. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +0 -0
  375. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +0 -0
  376. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +0 -0
  377. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +0 -0
  378. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +0 -0
  379. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +0 -0
  380. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +0 -0
  381. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +0 -0
  382. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +0 -0
  383. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +0 -0
  384. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +0 -0
  385. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/proposal.md +0 -0
  386. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/tasks.md +0 -0
  387. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-renderdoc-build-helper/test-plan.md +0 -0
  388. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +0 -0
  389. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +0 -0
  390. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +0 -0
  391. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +0 -0
  392. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +0 -0
  393. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +0 -0
  394. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-skill-auto-install/proposal.md +0 -0
  395. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-skill-auto-install/tasks.md +0 -0
  396. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-skill-auto-install/test-plan.md +0 -0
  397. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +0 -0
  398. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +0 -0
  399. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +0 -0
  400. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b17-eid-mutation/proposal.md +0 -0
  401. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b17-eid-mutation/tasks.md +0 -0
  402. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b17-eid-mutation/test-plan.md +0 -0
  403. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/proposal.md +0 -0
  404. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/tasks.md +0 -0
  405. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b18-b19-b24-cli-ux/test-plan.md +0 -0
  406. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/proposal.md +0 -0
  407. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/tasks.md +0 -0
  408. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-b21-b22-b23-b25-daemon-lifecycle/test-plan.md +0 -0
  409. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/proposal.md +0 -0
  410. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/tasks.md +0 -0
  411. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-capture-process-leak-b26-b28/test-plan.md +0 -0
  412. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-docs-polish/proposal.md +0 -0
  413. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-docs-polish/tasks.md +0 -0
  414. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-docs-polish/test-plan.md +0 -0
  415. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-fix-aur-build/proposal.md +0 -0
  416. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-fix-aur-build/tasks.md +0 -0
  417. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-fix-aur-build/test-plan.md +0 -0
  418. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/proposal.md +0 -0
  419. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/tasks.md +0 -0
  420. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-fix-bugs-b10-b15-b16/test-plan.md +0 -0
  421. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-23-phase-w2-build-script/proposal.md +0 -0
  422. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-23-phase-w2-build-script/tasks.md +0 -0
  423. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-23-phase-w2-build-script/test-plan.md +0 -0
  424. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/proposal.md +0 -0
  425. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/tasks.md +0 -0
  426. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-phase5b-capture-unified/test-plan.md +0 -0
  427. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +0 -0
  428. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +0 -0
  429. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +0 -0
  430. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +0 -0
  431. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +0 -0
  432. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +0 -0
  433. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/proposal.md +0 -0
  434. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/tasks.md +0 -0
  435. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/changes/archive/2026-02-24-b43-b44-remote-split/test-plan.md +0 -0
  436. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-m-macos-support/proposal.md +0 -0
  437. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-m-macos-support/tasks.md +0 -0
  438. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-m-macos-support/test-plan.md +0 -0
  439. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-r1-quick-wins/proposal.md +0 -0
  440. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-r1-quick-wins/tasks.md +0 -0
  441. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-r1-quick-wins/test-plan.md +0 -0
  442. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-r2-test-infrastructure/proposal.md +0 -0
  443. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-r2-test-infrastructure/tasks.md +0 -0
  444. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-24-phase-r2-test-infrastructure/test-plan.md +0 -0
  445. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-26-phase-r3-usability-fixes/proposal.md +0 -0
  446. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-26-phase-r3-usability-fixes/tasks.md +0 -0
  447. {rdc_cli-0.3.6/openspec/changes → rdc_cli-0.3.8/openspec/changes/archive}/2026-02-26-phase-r3-usability-fixes/test-plan.md +0 -0
  448. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/specs/architecture/spec.md +0 -0
  449. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/specs/ci/spec.md +0 -0
  450. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/specs/daemon/spec.md +0 -0
  451. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/specs/foundation/spec.md +0 -0
  452. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/specs/packaging/spec.md +0 -0
  453. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/specs/session/spec.md +0 -0
  454. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/openspec/specs/tooling/spec.md +0 -0
  455. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/release-please-config.json +0 -0
  456. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/ruff.toml +0 -0
  457. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/build-renderdoc.sh +0 -0
  458. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/build_renderdoc.py +0 -0
  459. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/capture_fixture.sh +0 -0
  460. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/ensure-renderdoc.sh +0 -0
  461. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/gen-commands.py +0 -0
  462. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/gen-replay.py +0 -0
  463. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/gen-skill-ref.py +0 -0
  464. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/gen-stats.py +0 -0
  465. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/setup-renderdoc.sh +0 -0
  466. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/scripts/verify-package.sh +0 -0
  467. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/setup.cfg +0 -0
  468. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/__init__.py +0 -0
  469. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/_platform.py +0 -0
  470. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/_skills/SKILL.md +0 -0
  471. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/_skills/__init__.py +0 -0
  472. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/_transport.py +0 -0
  473. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/adapter.py +0 -0
  474. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/capture_core.py +0 -0
  475. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/assert_ci.py +0 -0
  476. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/assert_image.py +0 -0
  477. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/capture.py +0 -0
  478. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/capture_control.py +0 -0
  479. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/counters.py +0 -0
  480. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/debug.py +0 -0
  481. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/diff.py +0 -0
  482. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/doctor.py +0 -0
  483. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/info.py +0 -0
  484. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/install_skill.py +0 -0
  485. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/mesh.py +0 -0
  486. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/pick_pixel.py +0 -0
  487. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/pipeline.py +0 -0
  488. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/pixel.py +0 -0
  489. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/remote.py +0 -0
  490. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/script.py +0 -0
  491. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/search.py +0 -0
  492. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/serve.py +0 -0
  493. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/shader_edit.py +0 -0
  494. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/snapshot.py +0 -0
  495. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/tex_stats.py +0 -0
  496. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/commands/unix_helpers.py +0 -0
  497. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/daemon_client.py +0 -0
  498. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/__init__.py +0 -0
  499. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/alignment.py +0 -0
  500. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/draws.py +0 -0
  501. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/framebuffer.py +0 -0
  502. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/pipeline.py +0 -0
  503. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/resources.py +0 -0
  504. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/stats.py +0 -0
  505. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/diff/summary.py +0 -0
  506. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/discover.py +0 -0
  507. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/formatters/json_fmt.py +0 -0
  508. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/formatters/kv.py +0 -0
  509. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/formatters/options.py +0 -0
  510. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/formatters/tsv.py +0 -0
  511. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/_types.py +0 -0
  512. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/handlers/script.py +0 -0
  513. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/image_compare.py +0 -0
  514. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/protocol.py +0 -0
  515. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/remote_core.py +0 -0
  516. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/remote_state.py +0 -0
  517. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/services/__init__.py +0 -0
  518. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/services/diff_service.py +0 -0
  519. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/session_state.py +0 -0
  520. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/target_state.py +0 -0
  521. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/vfs/__init__.py +0 -0
  522. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc/vfs/formatter.py +0 -0
  523. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
  524. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc_cli.egg-info/entry_points.txt +0 -0
  525. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc_cli.egg-info/requires.txt +0 -0
  526. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/src/rdc_cli.egg-info/top_level.txt +0 -0
  527. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/conftest.py +0 -0
  528. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/fixtures/hello_triangle.rdc +0 -0
  529. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/fixtures/vkcube.rdc +0 -0
  530. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/fixtures/vkcube_validation.rdc +0 -0
  531. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/integration/test_build_renderdoc_integration.py +0 -0
  532. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/integration/test_daemon_handlers_real.py +0 -0
  533. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/integration/test_mock_api_sync.py +0 -0
  534. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/integration/test_real_replay.py +0 -0
  535. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/integration/test_vulkan_samples.py +0 -0
  536. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_adapter.py +0 -0
  537. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_assert_ci_commands.py +0 -0
  538. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_assert_image_command.py +0 -0
  539. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_binary_daemon.py +0 -0
  540. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_buffer_decode.py +0 -0
  541. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_build_renderdoc.py +0 -0
  542. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_capture.py +0 -0
  543. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_capture_control.py +0 -0
  544. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_capture_core.py +0 -0
  545. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_capture_handlers.py +0 -0
  546. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_ci_files.py +0 -0
  547. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_cli.py +0 -0
  548. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_cli_session_flag.py +0 -0
  549. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_count_shadermap.py +0 -0
  550. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_counters_commands.py +0 -0
  551. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_counters_daemon.py +0 -0
  552. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_daemon_crash_regression.py +0 -0
  553. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_daemon_pipeline_extended.py +0 -0
  554. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_daemon_shader_api_fix.py +0 -0
  555. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_daemon_transport.py +0 -0
  556. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_alignment.py +0 -0
  557. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_command.py +0 -0
  558. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_draws.py +0 -0
  559. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_framebuffer.py +0 -0
  560. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_pipeline.py +0 -0
  561. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_resources.py +0 -0
  562. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_service.py +0 -0
  563. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_stats.py +0 -0
  564. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_diff_summary.py +0 -0
  565. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_discover.py +0 -0
  566. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_doctor.py +0 -0
  567. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_draws_daemon.py +0 -0
  568. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_draws_events_cli.py +0 -0
  569. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_eid_completion.py +0 -0
  570. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_events_commands.py +0 -0
  571. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_export_commands.py +0 -0
  572. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_export_overlay.py +0 -0
  573. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_fix1_draws_pass_name.py +0 -0
  574. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_fix2_vfs_intermediate_dirs.py +0 -0
  575. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_fix3_friendly_pass_name.py +0 -0
  576. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_formatters.py +0 -0
  577. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_formatters_kv.py +0 -0
  578. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_gen_skill_ref.py +0 -0
  579. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_handlers_remote.py +0 -0
  580. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_image_compare.py +0 -0
  581. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_install_skill.py +0 -0
  582. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_json_errors.py +0 -0
  583. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_keep_remote.py +0 -0
  584. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_mesh_commands.py +0 -0
  585. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_mesh_handler.py +0 -0
  586. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_mock_capture_types.py +0 -0
  587. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_mock_renderdoc.py +0 -0
  588. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_open_remote.py +0 -0
  589. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_output_options.py +0 -0
  590. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_overlay_handler.py +0 -0
  591. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pick_pixel_commands.py +0 -0
  592. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pick_pixel_daemon.py +0 -0
  593. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pipeline_daemon.py +0 -0
  594. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pipeline_section_routing.py +0 -0
  595. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pipeline_state.py +0 -0
  596. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pixel_history_commands.py +0 -0
  597. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pixel_history_daemon.py +0 -0
  598. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_pixi_files.py +0 -0
  599. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_platform.py +0 -0
  600. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_protocol.py +0 -0
  601. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_query_service.py +0 -0
  602. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_remote_core.py +0 -0
  603. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_remote_state.py +0 -0
  604. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_script_handler.py +0 -0
  605. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_semantic_completion.py +0 -0
  606. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_serve.py +0 -0
  607. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_session_commands.py +0 -0
  608. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_session_service.py +0 -0
  609. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_session_state.py +0 -0
  610. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_shader_edit_commands.py +0 -0
  611. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_shader_edit_handlers.py +0 -0
  612. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_skill_structure.py +0 -0
  613. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_snapshot_command.py +0 -0
  614. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_target_state.py +0 -0
  615. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_tex_stats_commands.py +0 -0
  616. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_tooling_files.py +0 -0
  617. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_usage_commands.py +0 -0
  618. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_usage_daemon.py +0 -0
  619. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_vfs_binary.py +0 -0
  620. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/tests/unit/test_vfs_formatter.py +0 -0
  621. {rdc_cli-0.3.6 → rdc_cli-0.3.8}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rdc-cli
3
- Version: 0.3.6
3
+ Version: 0.3.8
4
4
  Summary: CLI for RenderDoc .rdc captures
5
5
  Author: Jim
6
6
  License-Expression: MIT
@@ -61,7 +61,7 @@ rdc close
61
61
  **PyPI — Linux** (recommended)
62
62
 
63
63
  ```bash
64
- pipx install rdc-cli # install the CLI
64
+ uv tool install rdc-cli # or: pipx install rdc-cli
65
65
  python scripts/build_renderdoc.py # one-time build (needs cmake + ninja)
66
66
  rdc doctor # verify everything works
67
67
  ```
@@ -69,7 +69,7 @@ rdc doctor # verify everything works
69
69
  **PyPI — Windows** (experimental)
70
70
 
71
71
  ```bash
72
- pipx install rdc-cli
72
+ uv tool install rdc-cli # or: pipx install rdc-cli
73
73
  python scripts/build_renderdoc.py # needs cmake + Visual Studio Build Tools
74
74
  rdc doctor
75
75
  ```
@@ -77,7 +77,7 @@ rdc doctor
77
77
  **PyPI — macOS** (Split client only)
78
78
 
79
79
  ```bash
80
- pipx install rdc-cli
80
+ uv tool install rdc-cli # or: pipx install rdc-cli
81
81
  # Local replay on macOS is not supported right now.
82
82
  # Use Split mode and run replay on a Linux/Windows daemon:
83
83
  # rdc open /tmp/frame.rdc --listen 0.0.0.0:54321 # on replay host
@@ -99,8 +99,8 @@ yay -S rdc-cli # stable: tracks tagged releases
99
99
  git clone https://github.com/BANANASJIM/rdc-cli.git
100
100
  cd rdc-cli
101
101
  pixi install && pixi run sync
102
- # Build renderdoc once (pixi installs toolchain on macOS automatically)
103
- pixi run setup-renderdoc
102
+ pixi run install # editable install + shell completions
103
+ pixi run setup-renderdoc # build renderdoc (pixi installs toolchain on macOS)
104
104
  ```
105
105
 
106
106
  ### Platform Support Matrix
@@ -180,9 +180,9 @@ rdc capture --output /tmp/game.rdc -- /path/to/game
180
180
  rdc open /tmp/game_frame0.rdc --listen 0.0.0.0:54321
181
181
 
182
182
  # On macOS client (no local renderdoc required)
183
- PYTHONPATH=src .venv/bin/rdc open --connect host:54321 --token TOKEN
184
- PYTHONPATH=src .venv/bin/rdc capture --output /tmp/mac_capture.rdc -- /usr/bin/vkcube
185
- PYTHONPATH=src .venv/bin/rdc remote capture /usr/bin/vkcube -o /tmp/mac_remote.rdc
183
+ rdc open --connect host:54321 --token TOKEN
184
+ rdc capture --output /tmp/mac_capture.rdc -- /usr/bin/vkcube
185
+ rdc remote capture /usr/bin/vkcube -o /tmp/mac_remote.rdc
186
186
  rdc close --shutdown
187
187
  ```
188
188
 
@@ -238,6 +238,8 @@ Options available on most list/query commands (not every command supports all):
238
238
 
239
239
  ### Shell completions
240
240
 
241
+ Completions are installed automatically by `pixi run install`. To install manually:
242
+
241
243
  ```bash
242
244
  rdc completion bash > ~/.local/share/bash-completion/completions/rdc
243
245
  rdc completion zsh > ~/.zfunc/_rdc
@@ -248,6 +250,7 @@ rdc completion fish > ~/.config/fish/completions/rdc.fish
248
250
 
249
251
  ```bash
250
252
  pixi run sync # install deps + git hooks + renderdoc symlink
253
+ pixi run install # editable install + shell completions
251
254
  pixi run check # lint + typecheck + test
252
255
  pixi run verify # full packaging verification
253
256
  ```
@@ -32,7 +32,7 @@ rdc close
32
32
  **PyPI — Linux** (recommended)
33
33
 
34
34
  ```bash
35
- pipx install rdc-cli # install the CLI
35
+ uv tool install rdc-cli # or: pipx install rdc-cli
36
36
  python scripts/build_renderdoc.py # one-time build (needs cmake + ninja)
37
37
  rdc doctor # verify everything works
38
38
  ```
@@ -40,7 +40,7 @@ rdc doctor # verify everything works
40
40
  **PyPI — Windows** (experimental)
41
41
 
42
42
  ```bash
43
- pipx install rdc-cli
43
+ uv tool install rdc-cli # or: pipx install rdc-cli
44
44
  python scripts/build_renderdoc.py # needs cmake + Visual Studio Build Tools
45
45
  rdc doctor
46
46
  ```
@@ -48,7 +48,7 @@ rdc doctor
48
48
  **PyPI — macOS** (Split client only)
49
49
 
50
50
  ```bash
51
- pipx install rdc-cli
51
+ uv tool install rdc-cli # or: pipx install rdc-cli
52
52
  # Local replay on macOS is not supported right now.
53
53
  # Use Split mode and run replay on a Linux/Windows daemon:
54
54
  # rdc open /tmp/frame.rdc --listen 0.0.0.0:54321 # on replay host
@@ -70,8 +70,8 @@ yay -S rdc-cli # stable: tracks tagged releases
70
70
  git clone https://github.com/BANANASJIM/rdc-cli.git
71
71
  cd rdc-cli
72
72
  pixi install && pixi run sync
73
- # Build renderdoc once (pixi installs toolchain on macOS automatically)
74
- pixi run setup-renderdoc
73
+ pixi run install # editable install + shell completions
74
+ pixi run setup-renderdoc # build renderdoc (pixi installs toolchain on macOS)
75
75
  ```
76
76
 
77
77
  ### Platform Support Matrix
@@ -151,9 +151,9 @@ rdc capture --output /tmp/game.rdc -- /path/to/game
151
151
  rdc open /tmp/game_frame0.rdc --listen 0.0.0.0:54321
152
152
 
153
153
  # On macOS client (no local renderdoc required)
154
- PYTHONPATH=src .venv/bin/rdc open --connect host:54321 --token TOKEN
155
- PYTHONPATH=src .venv/bin/rdc capture --output /tmp/mac_capture.rdc -- /usr/bin/vkcube
156
- PYTHONPATH=src .venv/bin/rdc remote capture /usr/bin/vkcube -o /tmp/mac_remote.rdc
154
+ rdc open --connect host:54321 --token TOKEN
155
+ rdc capture --output /tmp/mac_capture.rdc -- /usr/bin/vkcube
156
+ rdc remote capture /usr/bin/vkcube -o /tmp/mac_remote.rdc
157
157
  rdc close --shutdown
158
158
  ```
159
159
 
@@ -209,6 +209,8 @@ Options available on most list/query commands (not every command supports all):
209
209
 
210
210
  ### Shell completions
211
211
 
212
+ Completions are installed automatically by `pixi run install`. To install manually:
213
+
212
214
  ```bash
213
215
  rdc completion bash > ~/.local/share/bash-completion/completions/rdc
214
216
  rdc completion zsh > ~/.zfunc/_rdc
@@ -219,6 +221,7 @@ rdc completion fish > ~/.config/fish/completions/rdc.fish
219
221
 
220
222
  ```bash
221
223
  pixi run sync # install deps + git hooks + renderdoc symlink
224
+ pixi run install # editable install + shell completions
222
225
  pixi run check # lint + typecheck + test
223
226
  pixi run verify # full packaging verification
224
227
  ```
@@ -0,0 +1,68 @@
1
+ # Design Deviation Fixes
2
+
3
+ **Date**: 2026-02-28
4
+ **Priority**: DEV-1 (P2), DEV-2 (P3), DEV-3 (P3)
5
+
6
+ ## Motivation
7
+
8
+ An audit of the rdc-cli codebase against the canonical design documents identified three deviations from spec. Two are cosmetic or documentation-level issues (P3); one is a missing VFS feature that breaks the path-addressing contract (P2).
9
+
10
+ - **DEV-1**: The VFS router does not expose `/draws/{eid}/bindings/{set}/{binding}` leaf nodes despite the spec in `设计/路径寻址设计.md` requiring them. Users and tooling that navigate the VFS tree cannot read individual binding details at the slot level.
11
+ - **DEV-2**: `设计/命令总览.md` annotates `diff --trace` and `diff --trace-all` as Phase 4, but those flags depend on pixel tracing and shader debug, which are Phase 5C capabilities. The wrong annotation creates misleading roadmap expectations.
12
+ - **DEV-3**: `rdc open --listen` omits the `connect with:` convenience line from its output, which the split-mode design (`设计/远程Split模式.md`) requires. Users must manually compose the connection command from separate host/port/token lines.
13
+
14
+ ## Scope
15
+
16
+ | ID | Component | Kind | Priority |
17
+ |----|-----------|------|----------|
18
+ | DEV-1 | `src/rdc/vfs/router.py`, `tree_cache.py`, `vfs.py` | Feature gap | P2 |
19
+ | DEV-2 | `Documents/Obsidian Vault/rdoc-cli/设计/命令总览.md` | Doc correction | P3 |
20
+ | DEV-3 | `src/rdc/commands/session.py` | Output line gap | P3 |
21
+
22
+ ## Design
23
+
24
+ ### DEV-1: VFS binding leaf node route
25
+
26
+ The VFS currently treats `/draws/{eid}/bindings/{set}` as a terminal directory. The spec requires a further level: `/draws/{eid}/bindings/{set}/{binding}` where `{binding}` is the slot index (fixedBindNumber), returning per-slot binding details.
27
+
28
+ **router.py**: Add a leaf route entry immediately after the existing bindings set route:
29
+
30
+ ```python
31
+ _r(
32
+ r"/draws/(?P<eid>\d+)/bindings/(?P<set>\d+)/(?P<binding>\d+)",
33
+ "leaf", "bindings",
34
+ [("eid", int), ("set", int), ("binding", int)],
35
+ )
36
+ ```
37
+
38
+ **tree_cache.py**: The `binding_sets` field on the per-event cache entry currently stores `set[int]` (set indices only). Change it to `dict[int, set[int]]` mapping set index to a set of slot indices. During tree population, collect `fixedBindNumber` from both `readOnlyResources` and `readWriteResources` for each pipeline stage, mirroring the cbuffer leaf pattern used at lines 327-349. Generate `VfsNode` leaf children under each set directory node for each discovered slot.
39
+
40
+ **vfs.py**: Add an `_EXTRACTORS["bindings"]` entry that formats leaf content as TSV with columns: `EID`, `STAGE`, `KIND`, `SET`, `SLOT`, `NAME`. The extractor passes the resolved `(eid, set, binding)` triple to `_handle_bindings`, which already accepts set and binding filter parameters.
41
+
42
+ ### DEV-2: diff --trace Phase annotation correction
43
+
44
+ In `设计/命令总览.md`, lines 165-166 annotate `diff --trace` and `diff --trace-all` as Phase 4. Change both annotations to Phase 5C to reflect their true dependency on pixel tracing and shader debug infrastructure.
45
+
46
+ No code changes are required.
47
+
48
+ ### DEV-3: --listen connect hint output
49
+
50
+ In `src/rdc/commands/session.py`, after the `token:` output line (currently line 179), insert:
51
+
52
+ ```python
53
+ click.echo(
54
+ f"connect with: rdc open --connect"
55
+ f" {result['host']}:{result['port']}"
56
+ f" --token {result['token']}"
57
+ )
58
+ ```
59
+
60
+ This produces a ready-to-copy connection command consistent with the spec in `设计/远程Split模式.md`. The format matches the `rdc open --connect HOST:PORT --token TOKEN` invocation documented there.
61
+
62
+ ## Risks
63
+
64
+ **DEV-1**: Changing `binding_sets` from `set[int]` to `dict[int, set[int]]` alters the shape of children lists in the VFS tree. Completion logic and `ls` output that iterate over binding set children must be verified to handle the new slot-level leaf nodes without regressions. Mitigation: follow the cbuffer implementation pattern exactly, which is already exercised by existing tests.
65
+
66
+ **DEV-2**: Documentation only. Zero code risk. Annotation change may prompt questions from users who see Phase 5C on the roadmap for those flags.
67
+
68
+ **DEV-3**: Existing tests that assert the exact `rdc open --listen` output will fail if they check for a specific number of output lines or match on the full stdout string. Those tests must be updated to include the new hint line. No behavioral change occurs.
@@ -0,0 +1,25 @@
1
+ # Tasks: Design Deviation Fixes
2
+
3
+ ## DEV-1: VFS Binding Leaf Node Route (Agent A — worktree)
4
+
5
+ - [ ] `src/rdc/vfs/router.py` — Add leaf route for `/draws/{eid}/bindings/{set}/{binding}` with `handler="bindings"`
6
+ - [ ] `src/rdc/vfs/tree_cache.py` — Change `binding_sets: set[int]` to `dict[int, set[int]]`; collect `fixedBindNumber` from `readOnlyResources` and `readWriteResources`; create `VfsNode` leaf nodes and set children lists on set-directory nodes (mirror cbuffer pattern at lines 342-349)
7
+ - [ ] `src/rdc/commands/vfs.py` — Add `_EXTRACTORS["bindings"]` with TSV formatter
8
+ - [ ] `tests/unit/test_vfs_router.py` — Add binding leaf route resolution tests
9
+ - [ ] `tests/unit/test_vfs_tree_cache.py` (or equivalent) — Add binding leaf node population tests
10
+ - [ ] `tests/unit/test_vfs_commands.py` — Add binding extractor TSV tests (T1-5, T1-6)
11
+
12
+ ## DEV-2: diff --trace Phase Annotation (main agent — doc only)
13
+
14
+ - [ ] Obsidian `设计/命令总览.md` — Change Phase `"4"` to `"5C"` on the `diff --trace` and `diff --trace-all` lines (lines 165–166)
15
+
16
+ ## DEV-3: --listen Connect Hint (Agent B — worktree)
17
+
18
+ - [ ] `src/rdc/commands/session.py` — Add `"connect with:"` output line after the token line in `--listen` mode
19
+ - [ ] `tests/unit/test_split_core.py` — Add assertion for `"connect with:"` line in `test_listen_outputs_connection_info`
20
+
21
+ ## Post-implementation
22
+
23
+ - [ ] Merge worktree outputs back to feature branch
24
+ - [ ] Run `pixi run lint && pixi run test` — zero failures allowed
25
+ - [ ] New Opus subagent code review
@@ -0,0 +1,45 @@
1
+ # Test Plan: Design Deviation Fixes (DEV-1, DEV-2, DEV-3)
2
+
3
+ ## DEV-1: VFS Binding Leaf Node Route
4
+
5
+ ### `tests/unit/test_vfs_router.py` — router resolution
6
+
7
+ | ID | Component | Description | Expected Result |
8
+ |----|-----------|-------------|-----------------|
9
+ | T1-1 | VFS router | `resolve_path("/draws/142/bindings/0/0")` | Returns `PathMatch(kind="leaf", handler="bindings", args={"eid": 142, "set": 0, "binding": 0})` |
10
+ | T1-2 | VFS router | `resolve_path("/draws/142/bindings/0/5")` | Returns `PathMatch(kind="leaf", handler="bindings", args={"eid": 142, "set": 0, "binding": 5})` |
11
+
12
+ ### `tests/unit/test_vfs_tree_cache.py` — tree population
13
+
14
+ | ID | Component | Description | Expected Result |
15
+ |----|-----------|-------------|-----------------|
16
+ | T1-3 | Tree cache | `populate_draw_subtree` called for a draw with bindings | Creates child nodes at path `bindings/{set}/{binding}` for each descriptor |
17
+ | T1-4 | Tree cache | Binding child nodes structure | Each binding child has `kind="leaf"` and `name` equal to the binding slot number as a string |
18
+
19
+ ### `tests/unit/test_vfs_commands.py` — extractor behavior
20
+
21
+ | ID | Component | Description | Expected Result |
22
+ |----|-----------|-------------|-----------------|
23
+ | T1-5 | VFS extractor | `_EXTRACTORS["bindings"]` called with valid rows | Formats output as TSV with header line `EID\tSTAGE\tKIND\tSET\tSLOT\tNAME` followed by data rows |
24
+ | T1-6 | VFS extractor | `_EXTRACTORS["bindings"]` called with empty rows list | Returns only the header line with no data rows and no error |
25
+
26
+ ---
27
+
28
+ ## DEV-2: `diff --trace` Phase Annotation (doc-only)
29
+
30
+ | ID | Component | Description | Expected Result |
31
+ |----|-----------|-------------|-----------------|
32
+ | T2-1 | Documentation | Manual check of `设计/命令总览.md` for `diff --trace` entries | Phase annotation shows `5C` (changed from `4`) for all `diff --trace` command lines |
33
+
34
+ No automated code tests required for this item.
35
+
36
+ ---
37
+
38
+ ## DEV-3: `--listen` "connect with:" Output Line
39
+
40
+ ### `tests/unit/test_split_core.py` — CLI output assertions
41
+
42
+ | ID | Component | Description | Expected Result |
43
+ |----|-----------|-------------|-----------------|
44
+ | T3-1 | `--listen` output | `test_listen_outputs_connection_info` asserts "connect with:" line | Output contains the line `connect with: rdc open --connect 0.0.0.0:9999 --token secret123` |
45
+ | T3-2 | `--listen` output | Existing host/port/token line assertions still pass | Output still contains separate host, port, and token lines (no regression) |
@@ -0,0 +1,136 @@
1
+ # Dev Install Enhancement
2
+
3
+ **Date**: 2026-02-28
4
+ **Priority**: P3
5
+
6
+ ## Motivation
7
+
8
+ `pixi run install` currently executes a single `uv tool install -e . --force`, placing the `rdc` binary at `~/.local/bin/rdc`. Shell tab-completion — one of the primary developer ergonomics features — is entirely absent from this flow. After installing, users must discover the `rdc completion` subcommand, know their shell's completion drop-in directory, redirect output manually, and reload their shell.
9
+
10
+ The project's `pixi.toml` also omits `win-64` from its platform list. Windows developers cannot create a pixi environment at all, even though the Python code and `uv` itself are cross-platform. Adding `win-64` unblocks Windows contributors.
11
+
12
+ Both gaps can be resolved in a single changeset: replace the one-liner `install` task with a Python script `scripts/dev_install.py` that orchestrates the full install sequence (binary + completions).
13
+
14
+ ## Scope
15
+
16
+ | ID | Component | Kind | Priority |
17
+ |----|-----------|------|----------|
18
+ | DI-1 | `scripts/dev_install.py` (new) | Feature | P3 |
19
+ | DI-2 | `pixi.toml` — `install` task + `win-64` platform | Config change | P3 |
20
+
21
+ ## Design
22
+
23
+ ### DI-1: scripts/dev_install.py
24
+
25
+ The script runs via `uv run python scripts/dev_install.py`, giving it full access to the project's Python environment. It directly imports completion generation from `rdc.commands.completion` instead of shelling out to `rdc completion`, eliminating the PATH dependency.
26
+
27
+ **Step 1 — binary install**
28
+
29
+ ```python
30
+ subprocess.run(["uv", "tool", "install", "-e", ".", "--force"], check=True)
31
+ ```
32
+
33
+ Exits with a non-zero code if `uv` fails, propagating the error naturally.
34
+
35
+ **Step 2 — shell detection**
36
+
37
+ Reuse and extend `rdc.commands.completion._detect_shell()` to handle Windows:
38
+
39
+ ```python
40
+ def _detect_shell() -> str:
41
+ if sys.platform == "win32":
42
+ return "powershell"
43
+ name = Path(os.environ.get("SHELL", "bash")).name
44
+ return name if name in {"bash", "zsh", "fish"} else "bash"
45
+ ```
46
+
47
+ This aligns with the existing `_detect_shell()` in `completion.py` which falls back to `"bash"` when `$SHELL` is unset or unrecognized.
48
+
49
+ **Step 3 — completion generation (direct import)**
50
+
51
+ ```python
52
+ from rdc.commands.completion import _generate
53
+
54
+ completion_text = _generate(shell)
55
+ ```
56
+
57
+ This reuses the existing tested code, including bash/zsh patches. No subprocess call to `rdc` is needed.
58
+
59
+ **Step 4 — write to platform-standard location**
60
+
61
+ | Shell | Target path |
62
+ |-------|-------------|
63
+ | bash | `~/.local/share/bash-completion/completions/rdc` |
64
+ | zsh | `~/.zfunc/_rdc` |
65
+ | fish | `~/.config/fish/completions/rdc.fish` |
66
+ | powershell | instructions printed to stdout only |
67
+
68
+ Parent directories are created via `Path.mkdir(parents=True, exist_ok=True)`.
69
+
70
+ **Step 5 — summary**
71
+
72
+ ```text
73
+ [ok] rdc installed via uv tool install
74
+ [ok] zsh completion written to ~/.zfunc/_rdc
75
+ hint: add 'fpath=(~/.zfunc $fpath)' and 'autoload -Uz compinit && compinit' to ~/.zshrc
76
+ ```
77
+
78
+ For zsh, the script always prints the fpath hint (harmless if already configured, avoids unreliable detection of zsh's `$fpath` array which is not exported as an environment variable).
79
+
80
+ For PowerShell, the script prints a note directing users to `rdc completion --help`.
81
+
82
+ **Full script skeleton**:
83
+
84
+ ```python
85
+ #!/usr/bin/env python3
86
+ """Developer install: uv tool install + shell completion setup."""
87
+
88
+ from __future__ import annotations
89
+
90
+ import os
91
+ import shutil
92
+ import subprocess
93
+ import sys
94
+ from pathlib import Path
95
+
96
+ _COMPLETION_PATHS: dict[str, Path] = {
97
+ "bash": Path.home() / ".local/share/bash-completion/completions/rdc",
98
+ "zsh": Path.home() / ".zfunc/_rdc",
99
+ "fish": Path.home() / ".config/fish/completions/rdc.fish",
100
+ }
101
+
102
+ def _detect_shell() -> str: ...
103
+ def _install_binary() -> None: ...
104
+ def _install_completion(shell: str) -> None: ...
105
+
106
+ if __name__ == "__main__":
107
+ _install_binary()
108
+ shell = _detect_shell()
109
+ _install_completion(shell)
110
+ ```
111
+
112
+ ### DI-2: pixi.toml changes
113
+
114
+ **Platform list** — add `win-64`:
115
+
116
+ ```toml
117
+ platforms = ["linux-64", "osx-arm64", "osx-64", "win-64"]
118
+ ```
119
+
120
+ **Install task**:
121
+
122
+ ```toml
123
+ install = "uv run python scripts/dev_install.py"
124
+ ```
125
+
126
+ Note: `pixi.lock` will be regenerated to include `win-64` packages. The main dependencies (`python`, `uv`) are available on `win-64` via conda-forge. The `osx-*` target-specific deps (`cmake`, `autoconf`, etc.) do not affect `win-64`.
127
+
128
+ ## Risks
129
+
130
+ **Completion generation failure**: If `_generate()` raises (e.g., due to a Click version incompatibility), the error is caught and reported as a warning. The binary install is already complete, so the user has a working `rdc` — just without completions. Non-fatal.
131
+
132
+ **zsh `fpath` not configured**: Writing `~/.zfunc/_rdc` only takes effect if the user's `.zshrc` loads `~/.zfunc` via `fpath`. The script always prints the required snippet. Subsequent installs are silent about this.
133
+
134
+ **File write permissions**: On some systems, completion directories may have restricted permissions. The script catches `PermissionError` and prints a warning with the manual command, then continues.
135
+
136
+ **Windows pixi lock growth**: Adding `win-64` causes pixi to resolve packages for a new platform. The lock file grows. Existing CI on Linux/macOS is unaffected. `pixi.lock` changes must be verified on all platforms.
@@ -0,0 +1,13 @@
1
+ # Tasks: Dev Install Enhancement
2
+
3
+ ## Implementation (Opus worktree agent)
4
+
5
+ - [ ] `scripts/dev_install.py` — create Python script that runs `uv tool install`, detects shell, generates completion via direct import of `rdc.commands.completion._generate`, writes to platform-standard path for bash/zsh/fish (PowerShell prints instructions only), and prints summary
6
+ - [ ] `pixi.toml` — change `install` task to `"uv run python scripts/dev_install.py"`; add `"win-64"` to platforms
7
+ - [ ] `tests/unit/test_dev_install.py` — unit tests covering shell detection, completion file writing per shell, parent dir creation, uv install subprocess call, error handling (non-fatal completion failure, PermissionError), and end-to-end flow
8
+
9
+ ## Post-implementation
10
+
11
+ - [ ] Merge worktree output back to feature branch
12
+ - [ ] Run `pixi run lint && pixi run test` — zero failures allowed
13
+ - [ ] New Opus subagent code review
@@ -0,0 +1,56 @@
1
+ # Test Plan: Dev Install Enhancement
2
+
3
+ ## Shell Detection
4
+
5
+ ### `tests/unit/test_dev_install.py`
6
+
7
+ | ID | Component | Description | Expected Result |
8
+ |----|-----------|-------------|-----------------|
9
+ | SD-1 | `_detect_shell` | `SHELL=/bin/zsh` | Returns `"zsh"` |
10
+ | SD-2 | `_detect_shell` | `SHELL=/usr/bin/bash` | Returns `"bash"` |
11
+ | SD-3 | `_detect_shell` | `SHELL=/usr/bin/fish` | Returns `"fish"` |
12
+ | SD-4 | `_detect_shell` | `SHELL` unset | Falls back to `"bash"` |
13
+ | SD-5 | `_detect_shell` | `sys.platform == "win32"` | Returns `"powershell"` regardless of `SHELL` |
14
+ | SD-6 | `_detect_shell` | `SHELL=/usr/local/bin/zsh` (non-standard prefix) | Returns `"zsh"` |
15
+ | SD-7 | `_detect_shell` | `SHELL=/usr/bin/tcsh` (unsupported shell) | Falls back to `"bash"` |
16
+
17
+ ## Completion Installation
18
+
19
+ ### `tests/unit/test_dev_install.py`
20
+
21
+ | ID | Component | Description | Expected Result |
22
+ |----|-----------|-------------|-----------------|
23
+ | CI-1 | `_install_completion` | bash → writes to `~/.local/share/bash-completion/completions/rdc` | File exists at correct path with expected content |
24
+ | CI-2 | `_install_completion` | zsh → writes to `~/.zfunc/_rdc` | File exists at correct path with expected content |
25
+ | CI-3 | `_install_completion` | fish → writes to `~/.config/fish/completions/rdc.fish` | File exists at correct path with expected content |
26
+ | CI-4 | `_install_completion` | parent directory does not exist → created automatically | Parent dirs created; file written successfully |
27
+ | CI-5 | `_install_completion` | powershell → no file written, prints instructions | No file created; stdout contains instruction text |
28
+ | CI-6 | `_install_completion` | existing completion file is overwritten | File updated with new content |
29
+ | CI-7 | `_install_completion` | zsh completion prints fpath hint | stdout contains fpath snippet |
30
+
31
+ ## UV Tool Install
32
+
33
+ ### `tests/unit/test_dev_install.py`
34
+
35
+ | ID | Component | Description | Expected Result |
36
+ |----|-----------|-------------|-----------------|
37
+ | UV-1 | `_install_binary` | calls subprocess with `["uv", "tool", "install", "-e", ".", "--force"]` | `subprocess.run` invoked with exact args and `check=True` |
38
+ | UV-2 | `_install_binary` | `CalledProcessError` → propagates | Exception raised; subsequent steps not executed |
39
+
40
+ ## Error Handling
41
+
42
+ ### `tests/unit/test_dev_install.py`
43
+
44
+ | ID | Component | Description | Expected Result |
45
+ |----|-----------|-------------|-----------------|
46
+ | EH-1 | `_install_completion` | `_generate()` raises → non-fatal | Warning printed; script continues; no file written |
47
+ | EH-2 | `_install_completion` | file write `PermissionError` → non-fatal | Warning printed; script continues |
48
+
49
+ ## End-to-End Flow
50
+
51
+ ### `tests/unit/test_dev_install.py`
52
+
53
+ | ID | Component | Description | Expected Result |
54
+ |----|-----------|-------------|-----------------|
55
+ | E2E-1 | `main` | full flow with mocked subprocess and `_generate` | Binary install runs first, then shell detected, completion written, summary printed |
56
+ | E2E-2 | `main` | binary install fails → completion install skipped | Only error from uv install shown; no completion attempt |