meridian-cli 0.2.3__tar.gz → 0.2.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 (504) hide show
  1. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/.gitignore +1 -0
  2. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/PKG-INFO +1 -1
  3. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/__init__.py +1 -1
  4. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/codex_ws.py +12 -3
  5. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/.context/CONTEXT.md +12 -8
  6. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/context.py +4 -1
  7. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/cwd.py +11 -3
  8. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/.context/CONTEXT.md +5 -0
  9. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/worktree_ensure.py +7 -0
  10. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/worktree_lifecycle.py +14 -0
  11. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/LICENSE +0 -0
  12. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/README.md +0 -0
  13. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/pyproject.toml +0 -0
  14. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/ag_ui/__init__.pyi +0 -0
  15. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/ag_ui/core.pyi +0 -0
  16. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/AGENTS.md +0 -0
  17. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/__main__.py +0 -0
  18. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/.context/CONTEXT.md +0 -0
  19. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/AGENTS.md +0 -0
  20. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/__init__.py +0 -0
  21. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/_cmd_utils.py +0 -0
  22. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/agent_help.py +0 -0
  23. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/app_tree.py +0 -0
  24. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/argv_normalization.py +0 -0
  25. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/bootstrap.py +0 -0
  26. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/bootstrap_cmd.py +0 -0
  27. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/chat_cmd.py +0 -0
  28. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/config_cmd.py +0 -0
  29. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/doctor_cmd.py +0 -0
  30. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/entrypoint.py +0 -0
  31. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/ext_cmd.py +0 -0
  32. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/ext_registration.py +0 -0
  33. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/hooks_authority.py +0 -0
  34. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/hooks_commands.py +0 -0
  35. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/kg_cmd.py +0 -0
  36. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/main.py +0 -0
  37. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/mars_passthrough.py +0 -0
  38. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/mermaid_cmd.py +0 -0
  39. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/migrate_cmd.py +0 -0
  40. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/misc_commands.py +0 -0
  41. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/models_cmd.py +0 -0
  42. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/output.py +0 -0
  43. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/primary_launch.py +0 -0
  44. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/qi_cmd.py +0 -0
  45. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/report_cmd.py +0 -0
  46. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/session_cmd.py +0 -0
  47. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/spawn.py +0 -0
  48. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/spawn_inject.py +0 -0
  49. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/startup/__init__.py +0 -0
  50. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/startup/catalog.py +0 -0
  51. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/startup/classify.py +0 -0
  52. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/startup/cyclopts_app.py +0 -0
  53. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/startup/help.py +0 -0
  54. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/startup/lazy_dispatch.py +0 -0
  55. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/startup/policy.py +0 -0
  56. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/streaming_serve.py +0 -0
  57. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/sync_cmd.py +0 -0
  58. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/telemetry_cmd.py +0 -0
  59. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/utils.py +0 -0
  60. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/work_cmd.py +0 -0
  61. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/cli/workspace_cmd.py +0 -0
  62. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/dev/AGENTS.md +0 -0
  63. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/dev/__init__.py +0 -0
  64. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/dev/pytests.py +0 -0
  65. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/__init__.py +0 -0
  66. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/bootstrap/.context/CONTEXT.md +0 -0
  67. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/bootstrap/AGENTS.md +0 -0
  68. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/bootstrap/__init__.py +0 -0
  69. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/bootstrap/config.py +0 -0
  70. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/bootstrap/project_state.py +0 -0
  71. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/bootstrap/runtime_state.py +0 -0
  72. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/bootstrap/services.py +0 -0
  73. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/.context/CONTEXT.md +0 -0
  74. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/AGENTS.md +0 -0
  75. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/__init__.py +0 -0
  76. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/agent.py +0 -0
  77. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/bootstrap.py +0 -0
  78. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/catalog_session.py +0 -0
  79. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/model_aliases.py +0 -0
  80. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/models.py +0 -0
  81. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/catalog/skill.py +0 -0
  82. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/.context/CONTEXT.md +0 -0
  83. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/AGENTS.md +0 -0
  84. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/__init__.py +0 -0
  85. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/backend_acquisition.py +0 -0
  86. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/backend_handle.py +0 -0
  87. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/checkpoint.py +0 -0
  88. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/command_handler.py +0 -0
  89. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/command_invariants.py +0 -0
  90. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/commands.py +0 -0
  91. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/.context/CONTEXT.md +0 -0
  92. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/AGENTS.md +0 -0
  93. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/__init__.py +0 -0
  94. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/discovery.py +0 -0
  95. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/launcher.py +0 -0
  96. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/policy.py +0 -0
  97. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/portless.py +0 -0
  98. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/raw_vite.py +0 -0
  99. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/dev_frontend/supervisor.py +0 -0
  100. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/event_index.py +0 -0
  101. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/event_log.py +0 -0
  102. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/event_observer.py +0 -0
  103. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/event_pipeline.py +0 -0
  104. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/frontend.py +0 -0
  105. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/.context/CONTEXT.md +0 -0
  106. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/AGENTS.md +0 -0
  107. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/__init__.py +0 -0
  108. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/base.py +0 -0
  109. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/claude.py +0 -0
  110. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/codex.py +0 -0
  111. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/common.py +0 -0
  112. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/opencode.py +0 -0
  113. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/registry.py +0 -0
  114. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/normalization/synthetic.py +0 -0
  115. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/policy.py +0 -0
  116. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/protocol.py +0 -0
  117. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/recovery.py +0 -0
  118. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/replay.py +0 -0
  119. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/runtime.py +0 -0
  120. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/server.py +0 -0
  121. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/session_service.py +0 -0
  122. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/chat/ws_fanout.py +0 -0
  123. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/.context/CONTEXT.md +0 -0
  124. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/AGENTS.md +0 -0
  125. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/__init__.py +0 -0
  126. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/catalog.py +0 -0
  127. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/context_config.py +0 -0
  128. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/preserving_edit.py +0 -0
  129. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/project_config_state.py +0 -0
  130. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/project_paths.py +0 -0
  131. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/project_root.py +0 -0
  132. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/schema.py +0 -0
  133. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/settings.py +0 -0
  134. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/config/workspace.py +0 -0
  135. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/context/.context/CONTEXT.md +0 -0
  136. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/context/AGENTS.md +0 -0
  137. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/context/__init__.py +0 -0
  138. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/context/resolver.py +0 -0
  139. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/.context/CONTEXT.md +0 -0
  140. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/AGENTS.md +0 -0
  141. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/__init__.py +0 -0
  142. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/child_env.py +0 -0
  143. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/clock.py +0 -0
  144. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/codec.py +0 -0
  145. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/context.py +0 -0
  146. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/conversation.py +0 -0
  147. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/depth.py +0 -0
  148. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/domain.py +0 -0
  149. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/execution_policy.py +0 -0
  150. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/formatting.py +0 -0
  151. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/lifecycle.py +0 -0
  152. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/logging.py +0 -0
  153. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/overrides.py +0 -0
  154. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/process_cleanup.py +0 -0
  155. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/resolved_context.py +0 -0
  156. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/sink.py +0 -0
  157. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/spawn_lifecycle.py +0 -0
  158. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/spawn_service.py +0 -0
  159. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/spawn_start.py +0 -0
  160. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/telemetry.py +0 -0
  161. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/types.py +0 -0
  162. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/core/util.py +0 -0
  163. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/diagnostics.py +0 -0
  164. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/.context/CONTEXT.md +0 -0
  165. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/AGENTS.md +0 -0
  166. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/__init__.py +0 -0
  167. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/commands/.context/CONTEXT.md +0 -0
  168. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/commands/AGENTS.md +0 -0
  169. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/commands/__init__.py +0 -0
  170. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/commands/biomed.py +0 -0
  171. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/commands/mermaid.py +0 -0
  172. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/commands/sessions.py +0 -0
  173. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/commands/workbench.py +0 -0
  174. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/context.py +0 -0
  175. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/descriptors.py +0 -0
  176. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/dispatcher.py +0 -0
  177. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/first_party.py +0 -0
  178. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/observability.py +0 -0
  179. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/registry.py +0 -0
  180. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/extensions/types.py +0 -0
  181. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/.context/CONTEXT.md +0 -0
  182. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/AGENTS.md +0 -0
  183. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/__init__.py +0 -0
  184. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/adapter.py +0 -0
  185. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/bundle.py +0 -0
  186. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/claude.py +0 -0
  187. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/claude_preflight.py +0 -0
  188. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/claude_utils.py +0 -0
  189. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/codex.py +0 -0
  190. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/codex_rollout.py +0 -0
  191. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/common.py +0 -0
  192. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/.context/CONTEXT.md +0 -0
  193. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/AGENTS.md +0 -0
  194. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/__init__.py +0 -0
  195. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/base.py +0 -0
  196. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/claude_ws.py +0 -0
  197. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/cursor_subprocess.py +0 -0
  198. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/errors.py +0 -0
  199. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/opencode_http.py +0 -0
  200. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/pi_lifecycle_file.py +0 -0
  201. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/connections/pi_rpc.py +0 -0
  202. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/control_action.py +0 -0
  203. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/cost.py +0 -0
  204. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/cursor.py +0 -0
  205. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/errors.py +0 -0
  206. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractor.py +0 -0
  207. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/.context/CONTEXT.md +0 -0
  208. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/AGENTS.md +0 -0
  209. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/__init__.py +0 -0
  210. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/base.py +0 -0
  211. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/claude.py +0 -0
  212. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/codex.py +0 -0
  213. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/cursor.py +0 -0
  214. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/opencode.py +0 -0
  215. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/extractors/pi.py +0 -0
  216. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/launch_spec.py +0 -0
  217. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/launch_types.py +0 -0
  218. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/opencode.py +0 -0
  219. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/opencode_storage.py +0 -0
  220. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/opencode_transcript.py +0 -0
  221. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/.context/CONTEXT.md +0 -0
  222. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/AGENTS.md +0 -0
  223. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/__init__.py +0 -0
  224. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/base.py +0 -0
  225. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/claude.py +0 -0
  226. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/codex.py +0 -0
  227. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/opencode.py +0 -0
  228. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/passthrough/registry.py +0 -0
  229. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/permission_broker.py +0 -0
  230. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/pi.py +0 -0
  231. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/pi_lifecycle_events.py +0 -0
  232. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/pi_runtime_resolver.py +0 -0
  233. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/.context/CONTEXT.md +0 -0
  234. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/AGENTS.md +0 -0
  235. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/__init__.py +0 -0
  236. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/_guards.py +0 -0
  237. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/permission_flags.py +0 -0
  238. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/pi_extension_projection.py +0 -0
  239. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_claude.py +0 -0
  240. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_codex_common.py +0 -0
  241. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_codex_streaming.py +0 -0
  242. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_codex_subprocess.py +0 -0
  243. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_cursor.py +0 -0
  244. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_opencode_streaming.py +0 -0
  245. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_opencode_subprocess.py +0 -0
  246. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_pi_native_tui.py +0 -0
  247. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/project_pi_rpc.py +0 -0
  248. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/projections/projection_errors.py +0 -0
  249. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/registry.py +0 -0
  250. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/semantics.py +0 -0
  251. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/session_detection.py +0 -0
  252. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/harness/transcript.py +0 -0
  253. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/.context/CONTEXT.md +0 -0
  254. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/AGENTS.md +0 -0
  255. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/__init__.py +0 -0
  256. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/builtin/.context/CONTEXT.md +0 -0
  257. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/builtin/AGENTS.md +0 -0
  258. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/builtin/__init__.py +0 -0
  259. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/builtin/autosync_store.py +0 -0
  260. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/builtin/base.py +0 -0
  261. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/builtin/git_autosync.py +0 -0
  262. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/builtin_registry.py +0 -0
  263. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/config.py +0 -0
  264. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/dispatch.py +0 -0
  265. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/interval.py +0 -0
  266. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/registry.py +0 -0
  267. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/runner.py +0 -0
  268. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/hooks/types.py +0 -0
  269. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ignores.py +0 -0
  270. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/kg/.context/CONTEXT.md +0 -0
  271. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/kg/AGENTS.md +0 -0
  272. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/kg/__init__.py +0 -0
  273. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/kg/graph.py +0 -0
  274. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/kg/report.py +0 -0
  275. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/kg/serializer.py +0 -0
  276. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/kg/types.py +0 -0
  277. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/AGENTS.md +0 -0
  278. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/__init__.py +0 -0
  279. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/artifact_io.py +0 -0
  280. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/bundle_adapter.py +0 -0
  281. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/claude_session_access.py +0 -0
  282. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/command.py +0 -0
  283. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/compiler.py +0 -0
  284. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/composition.py +0 -0
  285. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/constants.py +0 -0
  286. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/env.py +0 -0
  287. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/errors.py +0 -0
  288. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/extract.py +0 -0
  289. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/fork.py +0 -0
  290. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/launch_types.py +0 -0
  291. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/materialize.py +0 -0
  292. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/permissions.py +0 -0
  293. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/plan.py +0 -0
  294. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/policies.py +0 -0
  295. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/.context/CONTEXT.md +0 -0
  296. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/AGENTS.md +0 -0
  297. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/__init__.py +0 -0
  298. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/ports.py +0 -0
  299. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/primary_attach.py +0 -0
  300. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/pty_launcher.py +0 -0
  301. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/runner.py +0 -0
  302. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/session.py +0 -0
  303. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/subprocess_launcher.py +0 -0
  304. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/process/windows_launcher.py +0 -0
  305. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/prompt.py +0 -0
  306. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/reference.py +0 -0
  307. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/report.py +0 -0
  308. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/request.py +0 -0
  309. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/resolve.py +0 -0
  310. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/run_inputs.py +0 -0
  311. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/runner_helpers.py +0 -0
  312. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/session_scope.py +0 -0
  313. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/signals.py +0 -0
  314. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/streaming/.context/CONTEXT.md +0 -0
  315. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/streaming/AGENTS.md +0 -0
  316. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/streaming/__init__.py +0 -0
  317. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/streaming/heartbeat.py +0 -0
  318. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/streaming/terminal_arbitrator.py +0 -0
  319. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/streaming_runner.py +0 -0
  320. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/text_utils.py +0 -0
  321. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/types.py +0 -0
  322. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/workspace.py +0 -0
  323. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/workspace_projection.py +0 -0
  324. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/launch/written_files.py +0 -0
  325. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/markdown/.context/CONTEXT.md +0 -0
  326. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/markdown/AGENTS.md +0 -0
  327. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/markdown/__init__.py +0 -0
  328. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/markdown/extract.py +0 -0
  329. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/markdown/types.py +0 -0
  330. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/.context/CONTEXT.md +0 -0
  331. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/AGENTS.md +0 -0
  332. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/__init__.py +0 -0
  333. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/report.py +0 -0
  334. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/scanner.py +0 -0
  335. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/serializer.py +0 -0
  336. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/.context/CONTEXT.md +0 -0
  337. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/AGENTS.md +0 -0
  338. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/__init__.py +0 -0
  339. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/bare_end.py +0 -0
  340. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/fill_no_color.py +0 -0
  341. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/line_map.py +0 -0
  342. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/ox_edge.py +0 -0
  343. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/preprocess.py +0 -0
  344. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/suppression.py +0 -0
  345. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/style/types.py +0 -0
  346. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/mermaid/validator.py +0 -0
  347. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/observability/.context/CONTEXT.md +0 -0
  348. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/observability/AGENTS.md +0 -0
  349. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/observability/__init__.py +0 -0
  350. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/observability/debug_tracer.py +0 -0
  351. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/observability/trace_helpers.py +0 -0
  352. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/AGENTS.md +0 -0
  353. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/__init__.py +0 -0
  354. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/catalog.py +0 -0
  355. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/commands.py +0 -0
  356. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/config.py +0 -0
  357. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/config_surface.py +0 -0
  358. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/context.py +0 -0
  359. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/diag.py +0 -0
  360. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/hooks.py +0 -0
  361. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/init_ops.py +0 -0
  362. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/mars.py +0 -0
  363. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/migration.py +0 -0
  364. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/pruning.py +0 -0
  365. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/qi.py +0 -0
  366. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/reference.py +0 -0
  367. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/reference_recovery.py +0 -0
  368. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/report.py +0 -0
  369. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/runtime.py +0 -0
  370. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/session_export.py +0 -0
  371. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/session_log.py +0 -0
  372. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/session_read.py +0 -0
  373. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/session_render.py +0 -0
  374. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/session_repair.py +0 -0
  375. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/session_search.py +0 -0
  376. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/session_target.py +0 -0
  377. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/.context/CONTEXT.md +0 -0
  378. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/AGENTS.md +0 -0
  379. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/__init__.py +0 -0
  380. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/api.py +0 -0
  381. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/context_ref.py +0 -0
  382. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/execute.py +0 -0
  383. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/execute_bg.py +0 -0
  384. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/execute_init.py +0 -0
  385. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/execute_runner.py +0 -0
  386. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/execute_session.py +0 -0
  387. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/failure_policy.py +0 -0
  388. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/models.py +0 -0
  389. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/prepare.py +0 -0
  390. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/spawn/query.py +0 -0
  391. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/sync_conflicts.py +0 -0
  392. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/work_attachment.py +0 -0
  393. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/work_dashboard.py +0 -0
  394. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/work_lifecycle.py +0 -0
  395. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/work_worktree.py +0 -0
  396. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/workspace.py +0 -0
  397. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/worktree_format.py +0 -0
  398. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/ops/worktree_ops.py +0 -0
  399. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/.context/CONTEXT.md +0 -0
  400. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/AGENTS.md +0 -0
  401. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/__init__.py +0 -0
  402. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/locking.py +0 -0
  403. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/process_scope/.context/CONTEXT.md +0 -0
  404. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/process_scope/AGENTS.md +0 -0
  405. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/process_scope/__init__.py +0 -0
  406. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/process_scope/base.py +0 -0
  407. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/process_scope/fallback.py +0 -0
  408. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/process_scope/posix.py +0 -0
  409. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/process_scope/windows_job.py +0 -0
  410. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/terminate.py +0 -0
  411. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/unix_modules.py +0 -0
  412. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/platform/windows_job.py +0 -0
  413. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/safety/.context/CONTEXT.md +0 -0
  414. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/safety/AGENTS.md +0 -0
  415. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/safety/__init__.py +0 -0
  416. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/safety/budget.py +0 -0
  417. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/safety/guardrails.py +0 -0
  418. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/safety/permissions.py +0 -0
  419. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/safety/redaction.py +0 -0
  420. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/service_context.py +0 -0
  421. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/spawn/.context/CONTEXT.md +0 -0
  422. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/spawn/AGENTS.md +0 -0
  423. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/spawn/__init__.py +0 -0
  424. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/spawn/archive.py +0 -0
  425. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/.context/CONTEXT.md +0 -0
  426. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/AGENTS.md +0 -0
  427. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/__init__.py +0 -0
  428. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/artifact_store.py +0 -0
  429. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/atomic.py +0 -0
  430. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/event_store.py +0 -0
  431. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/history.py +0 -0
  432. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/launch_boundary.py +0 -0
  433. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/liveness.py +0 -0
  434. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/managed_primary.py +0 -0
  435. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/paths.py +0 -0
  436. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/primary_meta.py +0 -0
  437. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/process_scope_projection.py +0 -0
  438. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/reaper.py +0 -0
  439. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/session_store.py +0 -0
  440. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn/.context/CONTEXT.md +0 -0
  441. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn/AGENTS.md +0 -0
  442. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn/__init__.py +0 -0
  443. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn/model.py +0 -0
  444. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn/repository.py +0 -0
  445. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn/terminal_policy.py +0 -0
  446. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn/transitions.py +0 -0
  447. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/spawn_store.py +0 -0
  448. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/temp_worktree_store.py +0 -0
  449. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/user_paths.py +0 -0
  450. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/wordgen.py +0 -0
  451. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/wordlists.py +0 -0
  452. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/state/work_store.py +0 -0
  453. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/.context/CONTEXT.md +0 -0
  454. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/AGENTS.md +0 -0
  455. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/__init__.py +0 -0
  456. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/control_socket.py +0 -0
  457. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/drain_policy.py +0 -0
  458. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/event_observers.py +0 -0
  459. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/heartbeat.py +0 -0
  460. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/inject_lock.py +0 -0
  461. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/signal_canceller.py +0 -0
  462. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/spawn_manager.py +0 -0
  463. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/streaming/types.py +0 -0
  464. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/__init__.py +0 -0
  465. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/bootstrap.py +0 -0
  466. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/correlation.py +0 -0
  467. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/events.py +0 -0
  468. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/init.py +0 -0
  469. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/local_jsonl.py +0 -0
  470. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/maintenance.py +0 -0
  471. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/observer.py +0 -0
  472. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/observers.py +0 -0
  473. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/query.py +0 -0
  474. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/reader.py +0 -0
  475. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/retention.py +0 -0
  476. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/router.py +0 -0
  477. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/sinks.py +0 -0
  478. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/telemetry/status.py +0 -0
  479. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/tools.py +0 -0
  480. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/utils/__init__.py +0 -0
  481. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/lib/utils/time.py +0 -0
  482. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/.context/CONTEXT.md +0 -0
  483. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/README.md +0 -0
  484. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/__init__.py +0 -0
  485. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/extensions/managed-bash/.context/CONTEXT.md +0 -0
  486. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/extensions/managed-bash/src/index.ts +0 -0
  487. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/extensions/meridian-lifecycle/.context/CONTEXT.md +0 -0
  488. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/extensions/meridian-lifecycle/src/index.ts +0 -0
  489. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/extensions/shared/lifecycle_sidecar.ts +0 -0
  490. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/extensions/types.ts +0 -0
  491. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/package.json +0 -0
  492. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/pnpm-lock.yaml +0 -0
  493. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/pi_runtime/pnpm-workspace.yaml +0 -0
  494. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/plugin_api/AGENTS.md +0 -0
  495. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/plugin_api/__init__.py +0 -0
  496. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/plugin_api/config.py +0 -0
  497. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/plugin_api/fs.py +0 -0
  498. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/plugin_api/git.py +0 -0
  499. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/plugin_api/state.py +0 -0
  500. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/plugin_api/types.py +0 -0
  501. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/py.typed +0 -0
  502. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/server/AGENTS.md +0 -0
  503. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/server/__init__.py +0 -0
  504. {meridian_cli-0.2.3 → meridian_cli-0.2.4}/src/meridian/server/main.py +0 -0
@@ -27,6 +27,7 @@ plan/
27
27
  err
28
28
  out
29
29
  .mars/
30
+ mars.lock
30
31
  mars.local.toml
31
32
  *.log
32
33
  .claude/scheduled_tasks.lock
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meridian-cli
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: Orchestrate CLI + MCP server for multi-model agent workflows
5
5
  Project-URL: Homepage, https://github.com/haowjy/meridian-cli
6
6
  Project-URL: Repository, https://github.com/haowjy/meridian-cli
@@ -2,4 +2,4 @@
2
2
 
3
3
  __all__ = ["__version__"]
4
4
 
5
- __version__ = "0.2.3"
5
+ __version__ = "0.2.4"
@@ -312,6 +312,7 @@ class CodexConnection(HarnessConnection[ResolvedLaunchSpec]):
312
312
 
313
313
  env = inherit_child_env(os.environ, config.env_overrides)
314
314
  self._codex_home = resolve_codex_home(env)
315
+ effective_cwd = self._effective_project_root()
315
316
  spawn_dir = resolve_spawn_log_dir(config.control_root, config.spawn_id)
316
317
  spawn_dir.mkdir(parents=True, exist_ok=True)
317
318
  self._stderr_log_path = spawn_dir / "stderr.log"
@@ -329,7 +330,7 @@ class CodexConnection(HarnessConnection[ResolvedLaunchSpec]):
329
330
  self._emit_startup_phase(StartupPhase.LAUNCHING_SUBPROCESS)
330
331
  self._process = await asyncio.create_subprocess_exec(
331
332
  *appserver_command,
332
- cwd=str(config.control_root),
333
+ cwd=str(effective_cwd),
333
334
  env=env,
334
335
  stdout=asyncio.subprocess.DEVNULL,
335
336
  stderr=self._stderr_handle,
@@ -1109,6 +1110,14 @@ class CodexConnection(HarnessConnection[ResolvedLaunchSpec]):
1109
1110
  """Check if this is a fresh session (not resume or fork)."""
1110
1111
  return not (spec.continue_session_id or "").strip()
1111
1112
 
1113
+ def _effective_project_root(self) -> Path:
1114
+ """Project root Codex should bind the app-server/thread/rollout to."""
1115
+
1116
+ config = self._config
1117
+ if config is None:
1118
+ raise RuntimeError("Codex connection config is unavailable")
1119
+ return config.task_cwd or config.control_root
1120
+
1112
1121
  async def _send_bootstrap_turn_and_wait(self) -> None:
1113
1122
  """Send a minimal bootstrap turn and wait for completion.
1114
1123
 
@@ -1149,7 +1158,7 @@ class CodexConnection(HarnessConnection[ResolvedLaunchSpec]):
1149
1158
  if (
1150
1159
  find_attachable_rollout_session_id(
1151
1160
  codex_home=codex_home,
1152
- project_root=config.control_root,
1161
+ project_root=self._effective_project_root(),
1153
1162
  session_id=thread_id,
1154
1163
  )
1155
1164
  == thread_id
@@ -1182,7 +1191,7 @@ class CodexConnection(HarnessConnection[ResolvedLaunchSpec]):
1182
1191
  projected = project_managed_primary_bootstrap(
1183
1192
  self.harness_id,
1184
1193
  spec,
1185
- project_root=config.control_root,
1194
+ project_root=self._effective_project_root(),
1186
1195
  )
1187
1196
  if not isinstance(projected, tuple):
1188
1197
  raise TypeError("Codex managed-primary bootstrap must be (method, payload)")
@@ -196,11 +196,13 @@ to `logical_task_cwd` but may differ — Claude harness forces it to `authority_
196
196
  when `has_distinct_task_cwd` is true, because Claude's `--add-dir` grants access
197
197
  without needing the process to start in the task directory.
198
198
 
199
- **Task CWD instruction injection.** When `actual_process_cwd != logical_task_cwd`,
200
- the launch composition adds a prompt instruction telling the agent to `cd` into
201
- the task cwd before any filesystem operations. This is the fallback mechanism —
202
- the agent is informed of the intended working directory when the process didn't
203
- start there. Controlled by `LaunchDirectoryContext.requires_task_cwd_instruction`.
199
+ **Task CWD instruction injection.** For non-primary child spawns with a distinct
200
+ `logical_task_cwd`, launch composition always adds a prompt instruction telling
201
+ the agent to `cd` into the task cwd before filesystem operations. This is a
202
+ conservative child-spawn safety contract: harnesses may bind tools differently
203
+ than Meridian's requested process cwd. Primary sessions stay quiet unless a
204
+ future primary flow explicitly needs task-cwd steering. Controlled by
205
+ `LaunchDirectoryContext.should_inject_task_cwd_instruction(surface)`.
204
206
 
205
207
  Resolution priority in `resolve_task_cwd()`:
206
208
  1. `--no-worktree` → authority root
@@ -263,11 +265,13 @@ Two steps inside `bind_launch_context()`:
263
265
  `--add-dir` args; OpenCode gets `OPENCODE_CONFIG_CONTENT` env override (deep-merged).
264
266
 
265
267
  Roots include workspace roots, git context clone roots, context projection roots
266
- (work, kb, extras), runtime root, and system temp dir deduplicated in order.
267
- Extra args remain user-owned passthrough; they are not a workspace projection channel.
268
+ (work, kb, extras), task cwd when task cwd is external, runtime root, and system
269
+ temp dir — deduplicated in order. Extra args remain user-owned passthrough; they
270
+ are not a workspace projection channel.
268
271
 
269
272
  **Task CWD projection gap.** When `task_cwd` is outside both `control_root` and
270
- all projected workspace roots, and workspace projection is not active, a
273
+ all projected workspace roots, launch composition projects the exact task cwd
274
+ for active projection harnesses. If workspace projection is not active, a
271
275
  `task_cwd_not_projected` warning is emitted. The launch continues but the agent
272
276
  doesn't automatically get access to the task directory — harness-specific
273
277
  configuration would be needed.
@@ -1549,6 +1549,9 @@ def bind_launch_context(
1549
1549
  )
1550
1550
 
1551
1551
  is_primary_launch = runtime.composition_surface == LaunchCompositionSurface.PRIMARY
1552
+ inject_task_cwd_instruction = directory_context.should_inject_task_cwd_instruction(
1553
+ runtime.composition_surface
1554
+ )
1552
1555
  materialized = materialize_launch_artifacts(
1553
1556
  harness=harness,
1554
1557
  prompt=resolved_request.prompt,
@@ -1560,7 +1563,7 @@ def bind_launch_context(
1560
1563
  extra_args=projected_extra_args,
1561
1564
  control_root=resolved_control_root.as_posix(),
1562
1565
  task_cwd=(task_cwd.as_posix() if task_cwd is not None else None),
1563
- inject_task_cwd_instruction=directory_context.requires_task_cwd_instruction,
1566
+ inject_task_cwd_instruction=inject_task_cwd_instruction,
1564
1567
  mcp_tools=resolved_request.mcp_tools,
1565
1568
  projected_roots=projected_roots,
1566
1569
  interactive=is_primary_launch,
@@ -5,6 +5,7 @@ from __future__ import annotations
5
5
  from dataclasses import dataclass, replace
6
6
  from pathlib import Path
7
7
 
8
+ from meridian.lib.launch.request import LaunchCompositionSurface
8
9
  from meridian.lib.state import work_store
9
10
 
10
11
 
@@ -56,9 +57,16 @@ class LaunchDirectoryContext:
56
57
  def has_distinct_task_cwd(self) -> bool:
57
58
  return self.logical_task_cwd != self.authority_root
58
59
 
59
- @property
60
- def requires_task_cwd_instruction(self) -> bool:
61
- return self.actual_process_cwd != self.logical_task_cwd
60
+ def should_inject_task_cwd_instruction(self, surface: LaunchCompositionSurface) -> bool:
61
+ """Whether launch composition should tell the agent to cd into task cwd.
62
+
63
+ Child spawn tool cwd can vary by harness even when Meridian requests the
64
+ task cwd. Be conservative for all non-primary child launches with a
65
+ distinct task cwd; keep primary sessions quiet unless a future primary
66
+ flow needs explicit task-cwd steering.
67
+ """
68
+
69
+ return self.has_distinct_task_cwd and surface != LaunchCompositionSurface.PRIMARY
62
70
 
63
71
 
64
72
  def _active_worktree_path_for_item(
@@ -85,6 +85,11 @@ concerns and returns structured results for callers to persist elsewhere.
85
85
  by `work_worktree.py` and spawn logic. The split is: lifecycle owns raw git operations,
86
86
  ensure owns state management and idempotency.
87
87
 
88
+ Managed worktree creation writes a `mars.local.toml` guard with
89
+ `[settings] targets = []` when the worktree is newly created. This prevents
90
+ repo-local `meridian mars sync` from materializing harness targets inside each
91
+ worktree. Existing `mars.local.toml` files are user-owned and preserved.
92
+
88
93
  **Destructive operations guard against three conditions:**
89
94
 
90
95
  1. **Manual worktrees** (`managed=False`): paths set via `work set-worktree` are never
@@ -11,6 +11,7 @@ from meridian.lib.core.context import RuntimeContext
11
11
  from meridian.lib.ops.runtime import runtime_context
12
12
  from meridian.lib.ops.worktree_lifecycle import (
13
13
  default_worktree_branch,
14
+ ensure_worktree_mars_local_guard,
14
15
  provision_for_start,
15
16
  recover_pending,
16
17
  )
@@ -367,6 +368,8 @@ def ensure_work_item_worktree(
367
368
  f"'{resolved_path}' is non-canonical; expected '{canonical_path}'. "
368
369
  "Clear or migrate the assignment before ensuring."
369
370
  )
371
+ if not dry_run:
372
+ ensure_worktree_mars_local_guard(resolved_path)
370
373
  was_pending = item.worktree_pending
371
374
  if not dry_run and (
372
375
  was_pending or item.worktree_branch != canonical_metadata.branch
@@ -479,6 +482,8 @@ def ensure_work_item_worktree(
479
482
  and item.worktree_managed
480
483
  and Path(item.worktree_path).is_dir()
481
484
  ):
485
+ if not dry_run:
486
+ ensure_worktree_mars_local_guard(Path(item.worktree_path).expanduser().resolve())
482
487
  if (
483
488
  item.worktree_repo_path != canonical_metadata.repo_path
484
489
  or item.worktree.name != canonical_metadata.name
@@ -623,6 +628,8 @@ def ensure_temporary_worktree(
623
628
  "or clear/recreate the temp worktree."
624
629
  )
625
630
  if recorded_path.is_dir():
631
+ if not dry_run:
632
+ ensure_worktree_mars_local_guard(recorded_path)
626
633
  if record.status == "pending" and not dry_run:
627
634
  temp_worktree_store.put_temporary_worktree(
628
635
  runtime_root,
@@ -27,6 +27,7 @@ from meridian.lib.ops.worktree_ops import (
27
27
  resolve_main_repo_root,
28
28
  worktree_exists,
29
29
  )
30
+ from meridian.lib.state.atomic import atomic_write_text
30
31
  from meridian.lib.state.work_store import WorkItem, WorktreeMetadata
31
32
 
32
33
  logger = structlog.get_logger(__name__)
@@ -121,6 +122,15 @@ def _target_metadata(
121
122
  )
122
123
 
123
124
 
125
+ def ensure_worktree_mars_local_guard(worktree_path: Path) -> None:
126
+ """Prevent managed worktrees from syncing repo-local harness targets."""
127
+
128
+ guard_path = worktree_path / "mars.local.toml"
129
+ if guard_path.exists():
130
+ return
131
+ atomic_write_text(guard_path, "[settings]\ntargets = []\n")
132
+
133
+
124
134
  def provision_for_start(
125
135
  project_root: Path,
126
136
  work_slug: str,
@@ -153,6 +163,7 @@ def provision_for_start(
153
163
  Path(target_path),
154
164
  target.branch or default_worktree_branch(work_slug),
155
165
  )
166
+ ensure_worktree_mars_local_guard(result.path)
156
167
  return WorktreeProvisionResult(
157
168
  status="provisioned",
158
169
  metadata=WorktreeMetadata(
@@ -179,6 +190,7 @@ def restore_for_reopen(project_root: Path, item: WorkItem) -> WorktreeRestoreRes
179
190
  return WorktreeRestoreResult(status="manual_missing", metadata=item.worktree)
180
191
 
181
192
  if worktree_path.is_dir():
193
+ ensure_worktree_mars_local_guard(worktree_path)
182
194
  return WorktreeRestoreResult(status="available", metadata=item.worktree)
183
195
 
184
196
  if not item.worktree_branch:
@@ -199,6 +211,8 @@ def restore_for_reopen(project_root: Path, item: WorkItem) -> WorktreeRestoreRes
199
211
  )
200
212
  return WorktreeRestoreResult(status="failed", metadata=item.worktree, error=str(exc))
201
213
 
214
+ ensure_worktree_mars_local_guard(result.path)
215
+
202
216
  return WorktreeRestoreResult(
203
217
  status="restored",
204
218
  metadata=WorktreeMetadata(
File without changes
File without changes