execweave 0.6.0__tar.gz → 0.6.2__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 (172) hide show
  1. {execweave-0.6.0 → execweave-0.6.2}/.github/workflows/publish.yml +16 -0
  2. execweave-0.6.2/.github/workflows/windows-launcher.yml +43 -0
  3. {execweave-0.6.0 → execweave-0.6.2}/PKG-INFO +33 -12
  4. {execweave-0.6.0 → execweave-0.6.2}/README.ja.md +33 -6
  5. {execweave-0.6.0 → execweave-0.6.2}/README.ko.md +33 -6
  6. {execweave-0.6.0 → execweave-0.6.2}/README.md +32 -11
  7. {execweave-0.6.0 → execweave-0.6.2}/README.zh-CN.md +33 -6
  8. {execweave-0.6.0 → execweave-0.6.2}/README.zh-TW.md +31 -10
  9. {execweave-0.6.0 → execweave-0.6.2}/pyproject.toml +1 -1
  10. execweave-0.6.2/scripts/check_windows_launchers.py +96 -0
  11. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/__init__.py +1 -1
  12. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/backends.py +11 -4
  13. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/collector.py +11 -7
  14. execweave-0.6.2/src/execweave/command.py +70 -0
  15. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/graph.py +103 -2
  16. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/live.py +130 -18
  17. execweave-0.6.2/src/execweave/scope.py +85 -0
  18. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/viewer.py +89 -6
  19. execweave-0.6.2/tests/test_command.py +74 -0
  20. {execweave-0.6.0 → execweave-0.6.2}/tests/test_graph.py +56 -1
  21. execweave-0.6.2/tests/test_live.py +208 -0
  22. execweave-0.6.2/tests/test_scope.py +54 -0
  23. {execweave-0.6.0 → execweave-0.6.2}/tests/test_viewer.py +70 -1
  24. execweave-0.6.0/tests/test_live.py +0 -96
  25. {execweave-0.6.0 → execweave-0.6.2}/.github/workflows/ci.yml +0 -0
  26. {execweave-0.6.0 → execweave-0.6.2}/.github/workflows/package-benchmark.yml +0 -0
  27. {execweave-0.6.0 → execweave-0.6.2}/.gitignore +0 -0
  28. {execweave-0.6.0 → execweave-0.6.2}/LICENSE +0 -0
  29. {execweave-0.6.0 → execweave-0.6.2}/benchmarks/phase1_overhead.py +0 -0
  30. {execweave-0.6.0 → execweave-0.6.2}/docs/benchmarks/README.md +0 -0
  31. {execweave-0.6.0 → execweave-0.6.2}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
  32. {execweave-0.6.0 → execweave-0.6.2}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
  33. {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.ja.md +0 -0
  34. {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.ko.md +0 -0
  35. {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.md +0 -0
  36. {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.zh-CN.md +0 -0
  37. {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.zh-TW.md +0 -0
  38. {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.ja.md +0 -0
  39. {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.ko.md +0 -0
  40. {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.md +0 -0
  41. {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.zh-CN.md +0 -0
  42. {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.zh-TW.md +0 -0
  43. {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.ja.md +0 -0
  44. {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.ko.md +0 -0
  45. {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.md +0 -0
  46. {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.zh-CN.md +0 -0
  47. {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.zh-TW.md +0 -0
  48. {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.ja.md +0 -0
  49. {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.ko.md +0 -0
  50. {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.md +0 -0
  51. {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.zh-CN.md +0 -0
  52. {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.zh-TW.md +0 -0
  53. {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.ja.md +0 -0
  54. {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.ko.md +0 -0
  55. {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.md +0 -0
  56. {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.zh-CN.md +0 -0
  57. {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.zh-TW.md +0 -0
  58. {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.ja.md +0 -0
  59. {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.ko.md +0 -0
  60. {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.md +0 -0
  61. {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.zh-CN.md +0 -0
  62. {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.zh-TW.md +0 -0
  63. {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.ja.md +0 -0
  64. {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.ko.md +0 -0
  65. {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.md +0 -0
  66. {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.zh-CN.md +0 -0
  67. {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.zh-TW.md +0 -0
  68. {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.ja.md +0 -0
  69. {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.ko.md +0 -0
  70. {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.md +0 -0
  71. {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.zh-CN.md +0 -0
  72. {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.zh-TW.md +0 -0
  73. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.ja.md +0 -0
  74. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.ko.md +0 -0
  75. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.md +0 -0
  76. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.zh-CN.md +0 -0
  77. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.zh-TW.md +0 -0
  78. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.ja.md +0 -0
  79. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.ko.md +0 -0
  80. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.md +0 -0
  81. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.zh-CN.md +0 -0
  82. {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.zh-TW.md +0 -0
  83. {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.ja.md +0 -0
  84. {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.ko.md +0 -0
  85. {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.md +0 -0
  86. {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.zh-CN.md +0 -0
  87. {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.zh-TW.md +0 -0
  88. {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.ja.md +0 -0
  89. {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.ko.md +0 -0
  90. {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.md +0 -0
  91. {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.zh-CN.md +0 -0
  92. {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.zh-TW.md +0 -0
  93. {execweave-0.6.0 → execweave-0.6.2}/scripts/check_claude_hook.py +0 -0
  94. {execweave-0.6.0 → execweave-0.6.2}/scripts/check_claude_record_graph.py +0 -0
  95. {execweave-0.6.0 → execweave-0.6.2}/scripts/check_correlation_graph.py +0 -0
  96. {execweave-0.6.0 → execweave-0.6.2}/scripts/check_inference_gateway_cli.py +0 -0
  97. {execweave-0.6.0 → execweave-0.6.2}/scripts/check_model_runtime_cli.py +0 -0
  98. {execweave-0.6.0 → execweave-0.6.2}/scripts/check_semantic_graph.py +0 -0
  99. {execweave-0.6.0 → execweave-0.6.2}/scripts/check_viewer_js.py +0 -0
  100. {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_claude_hook_smoke.py +0 -0
  101. {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_cursor_hook_smoke.py +0 -0
  102. {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_gemini_hook_smoke.py +0 -0
  103. {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_opencode_plugin_smoke.py +0 -0
  104. {execweave-0.6.0 → execweave-0.6.2}/scripts/make_semantic_smoke.py +0 -0
  105. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/__main__.py +0 -0
  106. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/analysis.py +0 -0
  107. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/benchmark.py +0 -0
  108. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/claude_adapter.py +0 -0
  109. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/claude_hook_cli.py +0 -0
  110. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/claude_record.py +0 -0
  111. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cli.py +0 -0
  112. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/codex_adapter.py +0 -0
  113. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/codex_hook_cli.py +0 -0
  114. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/codex_record.py +0 -0
  115. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/correlation.py +0 -0
  116. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cursor_adapter.py +0 -0
  117. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cursor_hook_cli.py +0 -0
  118. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cursor_record.py +0 -0
  119. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/filesystem.py +0 -0
  120. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/focus.py +0 -0
  121. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/gemini_adapter.py +0 -0
  122. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/gemini_hook_cli.py +0 -0
  123. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/gemini_record.py +0 -0
  124. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/graph_ops.py +0 -0
  125. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_gateway.py +0 -0
  126. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_gateway_cli.py +0 -0
  127. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_identity.py +0 -0
  128. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_identity_cli.py +0 -0
  129. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/model_runtime.py +0 -0
  130. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/model_runtime_cli.py +0 -0
  131. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_adapter.py +0 -0
  132. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_hook_cli.py +0 -0
  133. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_plugin_cli.py +0 -0
  134. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_record.py +0 -0
  135. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/overhead_benchmark.py +0 -0
  136. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/provider_record.py +0 -0
  137. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/schema.py +0 -0
  138. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/semantic.py +0 -0
  139. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/sink.py +0 -0
  140. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/strace_backend.py +0 -0
  141. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/validate.py +0 -0
  142. {execweave-0.6.0 → execweave-0.6.2}/src/execweave/workflow.py +0 -0
  143. {execweave-0.6.0 → execweave-0.6.2}/tests/test_analysis.py +0 -0
  144. {execweave-0.6.0 → execweave-0.6.2}/tests/test_backends.py +0 -0
  145. {execweave-0.6.0 → execweave-0.6.2}/tests/test_claude_adapter.py +0 -0
  146. {execweave-0.6.0 → execweave-0.6.2}/tests/test_claude_record.py +0 -0
  147. {execweave-0.6.0 → execweave-0.6.2}/tests/test_codex_adapter.py +0 -0
  148. {execweave-0.6.0 → execweave-0.6.2}/tests/test_codex_record.py +0 -0
  149. {execweave-0.6.0 → execweave-0.6.2}/tests/test_collector.py +0 -0
  150. {execweave-0.6.0 → execweave-0.6.2}/tests/test_condense.py +0 -0
  151. {execweave-0.6.0 → execweave-0.6.2}/tests/test_correlation.py +0 -0
  152. {execweave-0.6.0 → execweave-0.6.2}/tests/test_correlation_canonical_path.py +0 -0
  153. {execweave-0.6.0 → execweave-0.6.2}/tests/test_correlation_process_exe.py +0 -0
  154. {execweave-0.6.0 → execweave-0.6.2}/tests/test_cursor_adapter.py +0 -0
  155. {execweave-0.6.0 → execweave-0.6.2}/tests/test_cursor_record.py +0 -0
  156. {execweave-0.6.0 → execweave-0.6.2}/tests/test_focus.py +0 -0
  157. {execweave-0.6.0 → execweave-0.6.2}/tests/test_gemini_adapter.py +0 -0
  158. {execweave-0.6.0 → execweave-0.6.2}/tests/test_gemini_record.py +0 -0
  159. {execweave-0.6.0 → execweave-0.6.2}/tests/test_graph_ops.py +0 -0
  160. {execweave-0.6.0 → execweave-0.6.2}/tests/test_inference_gateway.py +0 -0
  161. {execweave-0.6.0 → execweave-0.6.2}/tests/test_inference_identity.py +0 -0
  162. {execweave-0.6.0 → execweave-0.6.2}/tests/test_model_runtime.py +0 -0
  163. {execweave-0.6.0 → execweave-0.6.2}/tests/test_opencode_adapter.py +0 -0
  164. {execweave-0.6.0 → execweave-0.6.2}/tests/test_opencode_plugin.py +0 -0
  165. {execweave-0.6.0 → execweave-0.6.2}/tests/test_opencode_record.py +0 -0
  166. {execweave-0.6.0 → execweave-0.6.2}/tests/test_overhead_benchmark.py +0 -0
  167. {execweave-0.6.0 → execweave-0.6.2}/tests/test_schema.py +0 -0
  168. {execweave-0.6.0 → execweave-0.6.2}/tests/test_semantic.py +0 -0
  169. {execweave-0.6.0 → execweave-0.6.2}/tests/test_strace_backend.py +0 -0
  170. {execweave-0.6.0 → execweave-0.6.2}/tests/test_validate.py +0 -0
  171. {execweave-0.6.0 → execweave-0.6.2}/tests/test_version.py +0 -0
  172. {execweave-0.6.0 → execweave-0.6.2}/tests/test_workflow.py +0 -0
@@ -59,3 +59,19 @@ jobs:
59
59
  path: dist/
60
60
  - name: Publish package distributions to PyPI
61
61
  uses: pypa/gh-action-pypi-publish@release/v1
62
+
63
+ release-assets:
64
+ needs: [build, publish]
65
+ runs-on: ubuntu-latest
66
+ permissions:
67
+ contents: write
68
+ steps:
69
+ - uses: actions/download-artifact@v4
70
+ with:
71
+ name: python-package-distributions
72
+ path: dist/
73
+ - name: Attach distributions to GitHub Release
74
+ env:
75
+ GH_TOKEN: ${{ github.token }}
76
+ RELEASE_TAG: ${{ github.event.release.tag_name }}
77
+ run: gh release upload "$RELEASE_TAG" dist/* --clobber
@@ -0,0 +1,43 @@
1
+ name: Windows Launcher Compatibility
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "src/**"
8
+ - "tests/**"
9
+ - "scripts/check_windows_launchers.py"
10
+ - "pyproject.toml"
11
+ - ".github/workflows/windows-launcher.yml"
12
+ pull_request:
13
+ paths:
14
+ - "src/**"
15
+ - "tests/**"
16
+ - "scripts/check_windows_launchers.py"
17
+ - "pyproject.toml"
18
+ - ".github/workflows/windows-launcher.yml"
19
+ workflow_dispatch:
20
+
21
+ permissions:
22
+ contents: read
23
+
24
+ concurrency:
25
+ group: windows-launcher-${{ github.ref }}
26
+ cancel-in-progress: true
27
+
28
+ jobs:
29
+ smoke:
30
+ runs-on: windows-latest
31
+ timeout-minutes: 15
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: actions/setup-python@v5
35
+ with:
36
+ python-version: "3.12"
37
+ cache: pip
38
+ - name: Install package
39
+ run: python -m pip install -e ".[dev]"
40
+ - name: Command resolver tests
41
+ run: pytest -q tests/test_command.py
42
+ - name: CMD and Windows PowerShell Codex/Cursor smoke
43
+ run: python scripts/check_windows_launchers.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: execweave
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: Turn AI-agent runtime behavior into a local interactive execution graph.
5
5
  Project-URL: Homepage, https://github.com/Irish-kw/ExecWeave
6
6
  Project-URL: Repository, https://github.com/Irish-kw/ExecWeave
@@ -72,10 +72,16 @@ ExecWeave is an open-source, local-first observability project that turns AI-age
72
72
 
73
73
  ## Install
74
74
 
75
- ExecWeave v0.6.0 is packaged as a standard Python wheel/sdist. The repository is PyPI-ready; until the first Trusted Publisher release is made, install the package directly from GitHub:
75
+ ExecWeave is published on PyPI as a standard Python wheel/sdist. Install the latest published release with:
76
76
 
77
77
  ```bash
78
- python -m pip install "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
78
+ python -m pip install -U execweave
79
+ ```
80
+
81
+ The `main` branch may contain a newer patch than the current PyPI release. To test the latest mainline build directly:
82
+
83
+ ```bash
84
+ python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
79
85
  ```
80
86
 
81
87
  For development:
@@ -86,16 +92,17 @@ cd ExecWeave
86
92
  python -m pip install -e ".[dev]"
87
93
  ```
88
94
 
89
- Once the first PyPI release is published, installation becomes:
95
+ Watch Claude Code, OpenAI Codex, or Gemini CLI live:
90
96
 
91
97
  ```bash
92
- python -m pip install execweave
93
- ```
98
+ # Claude Code
99
+ execweave live --open -- claude
94
100
 
95
- Watch any command live:
101
+ # OpenAI Codex
102
+ execweave live --open -- codex
96
103
 
97
- ```bash
98
- execweave live --open -- claude
104
+ # Gemini CLI
105
+ execweave live --open -- gemini
99
106
  ```
100
107
 
101
108
  Or build the full artifact pipeline:
@@ -266,10 +273,24 @@ execweave run --backend portable -- your-command
266
273
  execweave run --backend strace -- your-command
267
274
  ```
268
275
 
276
+ Since v0.6.1, child commands are resolved through a shared cross-platform launcher before execution. Linux and macOS retain normal PATH executable behavior. Windows resolves `.exe`, `.cmd`, and `.bat` launchers through PATH/PATHEXT, while an explicit `.ps1` launcher is invoked through PowerShell. Dedicated Windows CI exercises Codex and Cursor recorders from both `cmd.exe` and Windows PowerShell; the full Cursor semantic/correlation integration remains covered by the normal Windows, macOS, and Ubuntu matrix.
277
+
269
278
  Portable filesystem watching is session-correlated rather than process-causal, and short-lived processes can be missed between polling intervals. The Linux `strace` path captures process-attributed syscall evidence after the command exits.
270
279
 
271
280
  Future native collectors remain planned for Linux eBPF, Windows ETW, and macOS Endpoint Security.
272
281
 
282
+ ## v0.6.2 safety patch
283
+
284
+ v0.6.2 hardens long-running and high-cardinality sessions without changing evidence semantics or graph schema 0.1:
285
+
286
+ - Broad recursive filesystem scopes such as a filesystem root, user home, or users-home parent are no longer recursively observed as-is; process, network, and semantic collection can continue.
287
+ - Standalone and Live Viewers stop SVG materialization above the safety budget (1,500 nodes, 4,000 edges, or an estimated 5,000 SVG elements) instead of exhausting browser memory. The canonical `graph.json` evidence artifact remains complete.
288
+ - Viewer layout/fit no longer spreads arbitrarily large arrays into `Math.min` / `Math.max`, and edge redraw during node dragging is animation-frame throttled.
289
+ - The Live server tails only newly appended `events.jsonl` bytes from a byte offset and incrementally updates an in-memory `GraphAccumulator`. `/graph.json` polling no longer replays the full event history; an incomplete trailing JSONL line is buffered until its newline arrives.
290
+ - Event-count or aggregate-count-only changes refresh Live stats/edge labels without a full topology redraw. After the Viewer budget is exceeded, live `/graph.json` switches to a counts-only compact payload while collection and the final canonical validation/full `graph.json` continue unchanged.
291
+
292
+ This is a polling + incremental-ingestion safety patch, not an SSE, SQLite, Rust, or Canvas architecture migration.
293
+
273
294
  ## Layered artifacts
274
295
 
275
296
  A provider-integrated run can produce:
@@ -321,9 +342,9 @@ Security findings remain explicit about evidence limits. A possible sensitive-fi
321
342
 
322
343
  ## Current status
323
344
 
324
- ExecWeave is currently **v0.6.0** and under active development.
345
+ ExecWeave `main` is currently **v0.6.2** and under active development.
325
346
 
326
- The baseline includes runtime collection, graph materialization/querying, standalone/live Viewer, Claude/Codex/Gemini/Cursor/OpenCode semantic integrations, conservative Tool → Process correlation, OpenRouter/LiteLLM gateway metadata, Ollama/llama.cpp/vLLM/LM Studio runtime metadata, exact Gateway ↔ Model Runtime request identity, PyPI-ready wheel/sdist packaging, reproducible overhead benchmarking, and cross-platform CI on Python 3.10/3.12.
347
+ The baseline includes runtime collection, graph materialization/querying, standalone/live Viewer, Claude/Codex/Gemini/Cursor/OpenCode semantic integrations, conservative Tool → Process correlation, OpenRouter/LiteLLM gateway metadata, Ollama/llama.cpp/vLLM/LM Studio runtime metadata, exact Gateway ↔ Model Runtime request identity, published PyPI wheel/sdist packaging, reproducible overhead benchmarking, cross-platform command-launcher compatibility, large-graph browser safety guards, incremental Live JSONL tail/cache, and cross-platform CI on Python 3.10/3.12.
327
348
 
328
349
  ## Privacy
329
350
 
@@ -353,4 +374,4 @@ Contributions are welcome, especially around native OS collectors, additional Ag
353
374
 
354
375
  ## License
355
376
 
356
- See [`LICENSE`](LICENSE).
377
+ See [`LICENSE`](LICENSE).
@@ -16,10 +16,16 @@ ExecWeave は、AI エージェントの活動をインタラクティブな exe
16
16
 
17
17
  ## Installation
18
18
 
19
- ExecWeave v0.6.0 は標準 Python wheel / sdist としてパッケージ化済みです。GitHub 側は PyPI-ready で、最初の Trusted Publisher release までは GitHub から直接 pip install できます。
19
+ ExecWeave PyPI で正式公開されています。最新の公開 release は次でインストールできます。
20
20
 
21
21
  ```bash
22
- python -m pip install "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
22
+ python -m pip install -U execweave
23
+ ```
24
+
25
+ `main` は現在の PyPI release より新しい patch を含む場合があります。最新 mainline を直接試す場合:
26
+
27
+ ```bash
28
+ python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
23
29
  ```
24
30
 
25
31
  開発用:
@@ -30,10 +36,17 @@ cd ExecWeave
30
36
  python -m pip install -e ".[dev]"
31
37
  ```
32
38
 
33
- 最初の PyPI release 後は:
39
+ Claude Code、OpenAI Codex、Gemini CLI をライブで観察:
34
40
 
35
41
  ```bash
36
- python -m pip install execweave
42
+ # Claude Code
43
+ execweave live --open -- claude
44
+
45
+ # OpenAI Codex
46
+ execweave live --open -- codex
47
+
48
+ # Gemini CLI
49
+ execweave live --open -- gemini
37
50
  ```
38
51
 
39
52
  ## Performance / footprint
@@ -113,8 +126,22 @@ execweave run --backend portable -- your-command
113
126
  execweave run --backend strace -- your-command
114
127
  ```
115
128
 
129
+ v0.6.1 以降、すべての recorder は child command を起動する前に共通の cross-platform launcher resolver を使用します。Linux / macOS は通常の PATH executable behavior を維持します。Windows は PATH/PATHEXT に従って `.exe`、`.cmd`、`.bat` を解決し、明示的な `.ps1` は PowerShell 経由で起動します。専用 Windows CI では `cmd.exe` と Windows PowerShell の両方から Codex / Cursor recorder を実際に起動し、通常の Windows / macOS / Ubuntu matrix でも Cursor semantic/correlation integration を継続して検証します。
130
+
116
131
  Portable filesystem observation は process-causal ではなく session-correlated です。Future native collectors は Linux eBPF、Windows ETW、macOS Endpoint Security を予定しています。
117
132
 
133
+ ## v0.6.2 Safety Patch
134
+
135
+ v0.6.2 は長時間・high-cardinality session の resource safety を強化しますが、**evidence semantics と graph schema 0.1 は変更しません**。
136
+
137
+ - filesystem root、user home、users-home parent など過度に広い recursive scope では recursive filesystem observation をそのまま開始せず、process / network / semantic collection は継続できます。
138
+ - Standalone / Live Viewer は safety budget(1,500 nodes、4,000 edges、または推定 5,000 SVG elements)を超えると SVG materialization を停止し、browser memory exhaustion を避けます。Canonical `graph.json` evidence artifact は完全なままです。
139
+ - Viewer layout/fit は巨大 array を `Math.min` / `Math.max` に spread せず、node drag 中の edge redraw は animation-frame throttling されます。
140
+ - Live server は byte offset から `events.jsonl` の追記分だけを tail し、in-memory `GraphAccumulator` で incrementally update します。各 `/graph.json` request で全 event history を replay せず、newline がまだない trailing partial JSONL line は buffer されます。
141
+ - event count / aggregate count だけの変化では stats/edge labels のみ更新し、full topology redraw を行いません。Viewer budget 超過後の live `/graph.json` は counts-only compact payload になり、collection と session 終了時の canonical validation/full `graph.json` は維持されます。
142
+
143
+ これは polling + incremental ingestion の Safety Patch であり、SSE、SQLite、Rust、Canvas への architecture migration ではありません。
144
+
118
145
  ## Viewer / Graph / Security
119
146
 
120
147
  Standalone Viewer は local self-contained で、pan/zoom、inspection、filters、**observed only**、search、Timeline replay、cluster expansion、focused neighborhood、Saved Views、明示的な edge semantics を備えます。
@@ -129,7 +156,7 @@ Security findings は evidence limit を維持し、possible sensitive-file →
129
156
 
130
157
  ## Current status
131
158
 
132
- ExecWeave は現在 **v0.6.0**。Runtime collection、execution graph、5 種の Agent/IDE integration、OpenRouter/LiteLLM、Ollama/llama.cpp/vLLM/LM Studio、exact Gateway ↔ Runtime identityPyPI-ready packaging、reference overhead benchmark、cross-platform CI が baseline に含まれます。
159
+ ExecWeave `main` は現在 **v0.6.2**。Runtime collection、execution graph、5 種の Agent/IDE integration、OpenRouter/LiteLLM、Ollama/llama.cpp/vLLM/LM Studio、exact Gateway ↔ Runtime identity、公開済み PyPI packaging、reference overhead benchmark、cross-platform command-launcher compatibility、large-graph browser safety guards、incremental Live JSONL tail/cache、cross-platform CI が baseline に含まれます。
133
160
 
134
161
  ## Privacy
135
162
 
@@ -147,4 +174,4 @@ ExecWeave は local-first です。Runtime events、semantic sidecars、graphs
147
174
 
148
175
  ## License
149
176
 
150
- [`LICENSE`](LICENSE) を参照してください。
177
+ [`LICENSE`](LICENSE) を参照してください。
@@ -16,10 +16,16 @@ ExecWeave는 AI 에이전트 활동을 인터랙티브 execution graph로 변환
16
16
 
17
17
  ## Installation
18
18
 
19
- ExecWeave v0.6.0은 표준 Python wheel / sdist로 패키징되어 있습니다. GitHub 쪽은 PyPI-ready이며, 첫 Trusted Publisher release 전까지 GitHub에서 직접 pip install할 수 있습니다.
19
+ ExecWeave PyPI에 정식 공개되어 있습니다. 최신 공개 release 설치:
20
20
 
21
21
  ```bash
22
- python -m pip install "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
22
+ python -m pip install -U execweave
23
+ ```
24
+
25
+ `main`은 현재 PyPI release보다 더 새로운 patch를 포함할 수 있습니다. 최신 mainline을 직접 테스트하려면:
26
+
27
+ ```bash
28
+ python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
23
29
  ```
24
30
 
25
31
  개발 설치:
@@ -30,10 +36,17 @@ cd ExecWeave
30
36
  python -m pip install -e ".[dev]"
31
37
  ```
32
38
 
33
- PyPI release 이후:
39
+ Claude Code, OpenAI Codex 또는 Gemini CLI를 실시간으로 관찰:
34
40
 
35
41
  ```bash
36
- python -m pip install execweave
42
+ # Claude Code
43
+ execweave live --open -- claude
44
+
45
+ # OpenAI Codex
46
+ execweave live --open -- codex
47
+
48
+ # Gemini CLI
49
+ execweave live --open -- gemini
37
50
  ```
38
51
 
39
52
  ## Performance / footprint
@@ -113,8 +126,22 @@ execweave run --backend portable -- your-command
113
126
  execweave run --backend strace -- your-command
114
127
  ```
115
128
 
129
+ v0.6.1부터 모든 recorder는 child command 실행 전에 공통 cross-platform launcher resolver를 사용합니다. Linux / macOS는 일반적인 PATH executable 동작을 유지합니다. Windows는 PATH/PATHEXT를 통해 `.exe`, `.cmd`, `.bat`를 올바르게 해석하고, 명시적인 `.ps1`은 PowerShell로 실행합니다. 전용 Windows CI는 `cmd.exe`와 Windows PowerShell 양쪽에서 Codex / Cursor recorder를 실제 실행하며, 일반 Windows / macOS / Ubuntu matrix에서도 Cursor semantic/correlation integration을 계속 검증합니다.
130
+
116
131
  Portable filesystem observation은 process-causal이 아니라 session-correlated입니다. Future native collectors는 Linux eBPF, Windows ETW, macOS Endpoint Security를 계획하고 있습니다.
117
132
 
133
+ ## v0.6.2 Safety Patch
134
+
135
+ v0.6.2는 long-running / high-cardinality session의 resource safety를 강화하지만 **evidence semantics와 graph schema 0.1은 변경하지 않습니다**.
136
+
137
+ - filesystem root, user home, users-home parent처럼 지나치게 넓은 recursive scope에서는 recursive filesystem observation을 그대로 시작하지 않으며 process / network / semantic collection은 계속할 수 있습니다.
138
+ - Standalone / Live Viewer가 safety budget(1,500 nodes, 4,000 edges 또는 추정 5,000 SVG elements)을 초과하면 SVG materialization을 중단해 browser memory exhaustion을 방지합니다. Canonical `graph.json` evidence artifact는 완전하게 유지됩니다.
139
+ - Viewer layout/fit은 임의로 큰 array를 `Math.min` / `Math.max`에 spread하지 않으며 node drag 중 edge redraw는 animation-frame throttling됩니다.
140
+ - Live server는 byte offset 이후의 `events.jsonl` 추가 bytes만 tail하고 in-memory `GraphAccumulator`를 incremental하게 갱신합니다. 각 `/graph.json` request에서 전체 event history를 다시 replay하지 않으며 newline이 없는 trailing partial JSONL line은 buffer합니다.
141
+ - event count / aggregate count만 바뀌면 stats/edge labels만 갱신하고 full topology redraw를 하지 않습니다. Viewer budget을 넘은 뒤 live `/graph.json`은 counts-only compact payload를 반환하며 collection과 session 종료 시 canonical validation/full `graph.json`은 그대로 유지됩니다.
142
+
143
+ 이것은 polling + incremental ingestion Safety Patch이며 SSE, SQLite, Rust, Canvas architecture migration은 아닙니다.
144
+
118
145
  ## Viewer / Graph / Security
119
146
 
120
147
  Standalone Viewer는 local self-contained이며 pan/zoom, inspection, filters, **observed only**, search, Timeline replay, cluster expansion, focused neighborhood, Saved Views, 명시적 edge semantics를 지원합니다.
@@ -129,7 +156,7 @@ Security findings는 evidence limit를 유지하며 possible sensitive-file →
129
156
 
130
157
  ## Current status
131
158
 
132
- ExecWeave 현재 **v0.6.0**입니다. Runtime collection, execution graph, 5개 Agent/IDE integration, OpenRouter/LiteLLM, Ollama/llama.cpp/vLLM/LM Studio, exact Gateway ↔ Runtime identity, PyPI-ready packaging, reference overhead benchmark, cross-platform CI가 baseline에 포함됩니다.
159
+ ExecWeave `main`은 현재 **v0.6.2**입니다. Runtime collection, execution graph, 5개 Agent/IDE integration, OpenRouter/LiteLLM, Ollama/llama.cpp/vLLM/LM Studio, exact Gateway ↔ Runtime identity, 공개된 PyPI packaging, reference overhead benchmark, cross-platform command-launcher compatibility, large-graph browser safety guards, incremental Live JSONL tail/cache, cross-platform CI가 baseline에 포함됩니다.
133
160
 
134
161
  ## Privacy
135
162
 
@@ -147,4 +174,4 @@ ExecWeave는 local-first입니다. Runtime events, semantic sidecars, graphs, re
147
174
 
148
175
  ## License
149
176
 
150
- [`LICENSE`](LICENSE)를 참조하세요.
177
+ [`LICENSE`](LICENSE)를 참조하세요.
@@ -16,10 +16,16 @@ ExecWeave is an open-source, local-first observability project that turns AI-age
16
16
 
17
17
  ## Install
18
18
 
19
- ExecWeave v0.6.0 is packaged as a standard Python wheel/sdist. The repository is PyPI-ready; until the first Trusted Publisher release is made, install the package directly from GitHub:
19
+ ExecWeave is published on PyPI as a standard Python wheel/sdist. Install the latest published release with:
20
20
 
21
21
  ```bash
22
- python -m pip install "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
22
+ python -m pip install -U execweave
23
+ ```
24
+
25
+ The `main` branch may contain a newer patch than the current PyPI release. To test the latest mainline build directly:
26
+
27
+ ```bash
28
+ python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
23
29
  ```
24
30
 
25
31
  For development:
@@ -30,16 +36,17 @@ cd ExecWeave
30
36
  python -m pip install -e ".[dev]"
31
37
  ```
32
38
 
33
- Once the first PyPI release is published, installation becomes:
39
+ Watch Claude Code, OpenAI Codex, or Gemini CLI live:
34
40
 
35
41
  ```bash
36
- python -m pip install execweave
37
- ```
42
+ # Claude Code
43
+ execweave live --open -- claude
38
44
 
39
- Watch any command live:
45
+ # OpenAI Codex
46
+ execweave live --open -- codex
40
47
 
41
- ```bash
42
- execweave live --open -- claude
48
+ # Gemini CLI
49
+ execweave live --open -- gemini
43
50
  ```
44
51
 
45
52
  Or build the full artifact pipeline:
@@ -210,10 +217,24 @@ execweave run --backend portable -- your-command
210
217
  execweave run --backend strace -- your-command
211
218
  ```
212
219
 
220
+ Since v0.6.1, child commands are resolved through a shared cross-platform launcher before execution. Linux and macOS retain normal PATH executable behavior. Windows resolves `.exe`, `.cmd`, and `.bat` launchers through PATH/PATHEXT, while an explicit `.ps1` launcher is invoked through PowerShell. Dedicated Windows CI exercises Codex and Cursor recorders from both `cmd.exe` and Windows PowerShell; the full Cursor semantic/correlation integration remains covered by the normal Windows, macOS, and Ubuntu matrix.
221
+
213
222
  Portable filesystem watching is session-correlated rather than process-causal, and short-lived processes can be missed between polling intervals. The Linux `strace` path captures process-attributed syscall evidence after the command exits.
214
223
 
215
224
  Future native collectors remain planned for Linux eBPF, Windows ETW, and macOS Endpoint Security.
216
225
 
226
+ ## v0.6.2 safety patch
227
+
228
+ v0.6.2 hardens long-running and high-cardinality sessions without changing evidence semantics or graph schema 0.1:
229
+
230
+ - Broad recursive filesystem scopes such as a filesystem root, user home, or users-home parent are no longer recursively observed as-is; process, network, and semantic collection can continue.
231
+ - Standalone and Live Viewers stop SVG materialization above the safety budget (1,500 nodes, 4,000 edges, or an estimated 5,000 SVG elements) instead of exhausting browser memory. The canonical `graph.json` evidence artifact remains complete.
232
+ - Viewer layout/fit no longer spreads arbitrarily large arrays into `Math.min` / `Math.max`, and edge redraw during node dragging is animation-frame throttled.
233
+ - The Live server tails only newly appended `events.jsonl` bytes from a byte offset and incrementally updates an in-memory `GraphAccumulator`. `/graph.json` polling no longer replays the full event history; an incomplete trailing JSONL line is buffered until its newline arrives.
234
+ - Event-count or aggregate-count-only changes refresh Live stats/edge labels without a full topology redraw. After the Viewer budget is exceeded, live `/graph.json` switches to a counts-only compact payload while collection and the final canonical validation/full `graph.json` continue unchanged.
235
+
236
+ This is a polling + incremental-ingestion safety patch, not an SSE, SQLite, Rust, or Canvas architecture migration.
237
+
217
238
  ## Layered artifacts
218
239
 
219
240
  A provider-integrated run can produce:
@@ -265,9 +286,9 @@ Security findings remain explicit about evidence limits. A possible sensitive-fi
265
286
 
266
287
  ## Current status
267
288
 
268
- ExecWeave is currently **v0.6.0** and under active development.
289
+ ExecWeave `main` is currently **v0.6.2** and under active development.
269
290
 
270
- The baseline includes runtime collection, graph materialization/querying, standalone/live Viewer, Claude/Codex/Gemini/Cursor/OpenCode semantic integrations, conservative Tool → Process correlation, OpenRouter/LiteLLM gateway metadata, Ollama/llama.cpp/vLLM/LM Studio runtime metadata, exact Gateway ↔ Model Runtime request identity, PyPI-ready wheel/sdist packaging, reproducible overhead benchmarking, and cross-platform CI on Python 3.10/3.12.
291
+ The baseline includes runtime collection, graph materialization/querying, standalone/live Viewer, Claude/Codex/Gemini/Cursor/OpenCode semantic integrations, conservative Tool → Process correlation, OpenRouter/LiteLLM gateway metadata, Ollama/llama.cpp/vLLM/LM Studio runtime metadata, exact Gateway ↔ Model Runtime request identity, published PyPI wheel/sdist packaging, reproducible overhead benchmarking, cross-platform command-launcher compatibility, large-graph browser safety guards, incremental Live JSONL tail/cache, and cross-platform CI on Python 3.10/3.12.
271
292
 
272
293
  ## Privacy
273
294
 
@@ -297,4 +318,4 @@ Contributions are welcome, especially around native OS collectors, additional Ag
297
318
 
298
319
  ## License
299
320
 
300
- See [`LICENSE`](LICENSE).
321
+ See [`LICENSE`](LICENSE).
@@ -16,10 +16,16 @@ ExecWeave 是开源、local-first 的 observability 项目,将 AI Agent 活动
16
16
 
17
17
  ## 安装
18
18
 
19
- ExecWeave v0.6.0 已整理为标准 Python wheel / sdist。GitHub 端已经 PyPI-ready;第一次 Trusted Publisher release 正式发布前,可直接通过 GitHub 使用 pip 安装:
19
+ ExecWeave 已正式发布到 PyPI。安装最新已发布版本:
20
20
 
21
21
  ```bash
22
- python -m pip install "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
22
+ python -m pip install -U execweave
23
+ ```
24
+
25
+ `main` 可能比当前 PyPI release 更新。若要直接测试最新 mainline:
26
+
27
+ ```bash
28
+ python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
23
29
  ```
24
30
 
25
31
  开发安装:
@@ -30,10 +36,17 @@ cd ExecWeave
30
36
  python -m pip install -e ".[dev]"
31
37
  ```
32
38
 
33
- 第一次 PyPI release 发布后即可使用:
39
+ 实时观察 Claude Code、OpenAI Codex 或 Gemini CLI:
34
40
 
35
41
  ```bash
36
- python -m pip install execweave
42
+ # Claude Code
43
+ execweave live --open -- claude
44
+
45
+ # OpenAI Codex
46
+ execweave live --open -- codex
47
+
48
+ # Gemini CLI
49
+ execweave live --open -- gemini
37
50
  ```
38
51
 
39
52
  ## 性能与空间占用
@@ -113,8 +126,22 @@ execweave run --backend portable -- your-command
113
126
  execweave run --backend strace -- your-command
114
127
  ```
115
128
 
129
+ 从 v0.6.1 开始,所有 recorder 在启动 child command 前都会使用共享的跨平台 launcher resolver。Linux / macOS 保持正常 PATH executable 行为;Windows 通过 PATH/PATHEXT 正确解析 `.exe`、`.cmd`、`.bat`,显式 `.ps1` 则交给 PowerShell 启动。专用 Windows CI 会从 `cmd.exe` 和 Windows PowerShell 实际启动 Codex / Cursor recorder;完整 Cursor semantic/correlation integration 同时由 Windows、macOS、Ubuntu matrix 覆盖。
130
+
116
131
  Portable filesystem observation 是 session-correlated,不是 process-causal。未来 native collectors 包括 Linux eBPF、Windows ETW、macOS Endpoint Security。
117
132
 
133
+ ## v0.6.2 Safety Patch
134
+
135
+ v0.6.2 提升长时间与高 cardinality session 的资源安全,但**不改变 evidence semantics 或 graph schema 0.1**:
136
+
137
+ - 对 filesystem root、用户 home、users-home parent 等过宽 recursive scope,不再直接进行 recursive filesystem observation;process、network、semantic collection 仍可继续。
138
+ - Standalone 与 Live Viewer 超过安全预算(1,500 nodes、4,000 edges,或估算 5,000 SVG elements)后停止 SVG materialization,避免大型 graph 耗尽浏览器内存;canonical `graph.json` evidence artifact 仍保持完整。
139
+ - Viewer layout/fit 不再把任意大型 array spread 到 `Math.min` / `Math.max`,node dragging 的 edge redraw 采用 animation-frame throttling。
140
+ - Live server 通过 byte offset 只 tail `events.jsonl` 新增 bytes,并由 in-memory `GraphAccumulator` 增量更新;每次 `/graph.json` 不再重播完整 event history,未完成且没有 newline 的 trailing JSONL line 会先 buffer。
141
+ - 只有 event count / aggregate count 变化时,Live UI 只更新 stats/edge labels,不重新绘制整个 topology。超过 Viewer 预算后,live `/graph.json` 返回 counts-only compact payload;collection 与 session 结束时的 canonical validation/full `graph.json` 不受影响。
142
+
143
+ 这是 polling + incremental ingestion 的 Safety Patch,不是 SSE、SQLite、Rust 或 Canvas 架构切换。
144
+
118
145
  ## Viewer / Graph / Security
119
146
 
120
147
  Standalone Viewer 完全 local、自包含,支持 pan/zoom、inspection、filters、**observed only**、search、Timeline replay、cluster expansion、focused neighborhood、Saved Views 与明确 edge semantics。
@@ -129,7 +156,7 @@ Security findings 会保留 evidence limits;possible sensitive-file → networ
129
156
 
130
157
  ## 当前状态
131
158
 
132
- ExecWeave 当前为 **v0.6.0**,baseline 已包含 runtime collection、execution graph、五种 Agent/IDE integrations、OpenRouter/LiteLLM、Ollama/llama.cpp/vLLM/LM Studio、exact Gateway ↔ Runtime identityPyPI-ready packaging、reference overhead benchmark 与 cross-platform CI。
159
+ ExecWeave `main` 当前为 **v0.6.2**,baseline 已包含 runtime collection、execution graph、五种 Agent/IDE integrations、OpenRouter/LiteLLM、Ollama/llama.cpp/vLLM/LM Studio、exact Gateway ↔ Runtime identity、已发布的 PyPI packaging、reference overhead benchmark、cross-platform command launcher compatibility、large-graph browser safety guards、incremental Live JSONL tail/cache 与 cross-platform CI。
133
160
 
134
161
  ## 隐私
135
162
 
@@ -147,4 +174,4 @@ ExecWeave 是 local-first。Runtime events、semantic sidecars、graphs、report
147
174
 
148
175
  ## License
149
176
 
150
- 请参阅 [`LICENSE`](LICENSE)。
177
+ 请参阅 [`LICENSE`](LICENSE)。
@@ -16,10 +16,16 @@ ExecWeave 是開源、local-first 的 observability 專案,會把 AI Agent 活
16
16
 
17
17
  ## 安裝
18
18
 
19
- ExecWeave v0.6.0 已整理成標準 Python wheel / sdist。GitHub 端已是 PyPI-ready;第一次 Trusted Publisher release 正式發布前,可直接從 GitHub 以 pip 安裝:
19
+ ExecWeave 已正式發布到 PyPI,標準安裝方式為:
20
20
 
21
21
  ```bash
22
- python -m pip install "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
22
+ python -m pip install -U execweave
23
+ ```
24
+
25
+ `main` 可能比目前 PyPI release 更新。若要直接測試最新 mainline:
26
+
27
+ ```bash
28
+ python -m pip install --upgrade --force-reinstall "execweave @ git+https://github.com/Irish-kw/ExecWeave.git@main"
23
29
  ```
24
30
 
25
31
  開發者安裝:
@@ -30,16 +36,17 @@ cd ExecWeave
30
36
  python -m pip install -e ".[dev]"
31
37
  ```
32
38
 
33
- 第一次 PyPI release 發布後即可使用:
39
+ 即時觀察 Claude Code、OpenAI Codex 或 Gemini CLI:
34
40
 
35
41
  ```bash
36
- python -m pip install execweave
37
- ```
42
+ # Claude Code
43
+ execweave live --open -- claude
38
44
 
39
- 即時觀察 command:
45
+ # OpenAI Codex
46
+ execweave live --open -- codex
40
47
 
41
- ```bash
42
- execweave live --open -- claude
48
+ # Gemini CLI
49
+ execweave live --open -- gemini
43
50
  ```
44
51
 
45
52
  建立完整 artifact pipeline:
@@ -154,10 +161,24 @@ execweave run --backend portable -- your-command
154
161
  execweave run --backend strace -- your-command
155
162
  ```
156
163
 
164
+ 自 v0.6.1 起,所有 recorder 在啟動 child command 前都先走共用的跨平台 launcher resolver。Linux / macOS 保持正常 PATH executable 行為;Windows 會依 PATH/PATHEXT 正確解析 `.exe`、`.cmd`、`.bat`,若明確傳入 `.ps1` 則交給 PowerShell 啟動。專用 Windows CI 會實際從 `cmd.exe` 與 Windows PowerShell 啟動 Codex / Cursor recorder;完整 Cursor semantic/correlation integration 也持續由 Windows、macOS、Ubuntu matrix 驗證。
165
+
157
166
  Portable filesystem observation 是 session-correlated,不是 process-causal;短命 process 可能在 polling interval 間被漏掉。Linux `strace` 則提供 process-attributed syscall evidence。
158
167
 
159
168
  未來 native collectors 包含 Linux eBPF、Windows ETW、macOS Endpoint Security。
160
169
 
170
+ ## v0.6.2 Safety Patch
171
+
172
+ v0.6.2 強化長時間與高 cardinality session 的資源安全,但**不改變 evidence semantics 或 graph schema 0.1**:
173
+
174
+ - 過度寬廣的 recursive filesystem scope(例如 filesystem root、使用者 home 或 users-home parent)不再直接進行 recursive filesystem observation;process、network、semantic collection 仍可繼續。
175
+ - Standalone 與 Live Viewer 在超過安全預算(1,500 nodes、4,000 edges,或估計 5,000 SVG elements)時停止 SVG materialization,避免 browser memory 被大型 graph 拖垮;canonical `graph.json` evidence artifact 仍保持完整。
176
+ - Viewer layout/fit 不再把任意大型 array spread 給 `Math.min` / `Math.max`,node dragging 的 edge redraw 也改為 animation-frame throttling。
177
+ - Live server 以 byte offset 只 tail `events.jsonl` 新增資料,透過 in-memory `GraphAccumulator` 增量更新,不再每次 `/graph.json` request 重播整份 event history;尚未完成且沒有 newline 的 trailing JSONL line 會先 buffer。
178
+ - 僅 event count / aggregate count 變化時,Live UI 只更新 stats/edge labels,不做完整 topology redraw。超過 Viewer 預算後,live `/graph.json` 改回傳 counts-only compact payload;collection 與 session 結束後的 canonical validation/full `graph.json` 不受影響。
179
+
180
+ 這是 polling + incremental ingestion 的 Safety Patch,不是 SSE、SQLite、Rust 或 Canvas 架構切換。
181
+
161
182
  ## Viewer 與 Graph
162
183
 
163
184
  Standalone Viewer 完全 local、自包含,包含 pan/zoom、node/edge inspection、filters、**observed only**、search、Timeline ↔ Graph replay、cluster expansion、1/2-hop focus、Saved Views、edge semantics 與 Correlation Summary。
@@ -181,7 +202,7 @@ Possible sensitive-file → network path 不等於 byte-level exfiltration;sec
181
202
 
182
203
  ## 目前狀態
183
204
 
184
- ExecWeave 目前為 **v0.6.0**。Baseline 已包含 runtime collection、graph materialization/query、standalone/live Viewer、五種 Agent/IDE semantic integrations、保守 Tool → Process correlation、OpenRouter/LiteLLM、Ollama/llama.cpp/vLLM/LM Studio、exact Gateway ↔ Model Runtime request identityPyPI-ready packaging、可重跑 overhead benchmark,以及跨平台 CI。
205
+ ExecWeave `main` 目前為 **v0.6.2**。Baseline 已包含 runtime collection、graph materialization/query、standalone/live Viewer、五種 Agent/IDE semantic integrations、保守 Tool → Process correlation、OpenRouter/LiteLLM、Ollama/llama.cpp/vLLM/LM Studio、exact Gateway ↔ Model Runtime request identity、已發布的 PyPI packaging、可重跑 overhead benchmark、跨平台 command launcher compatibility、large-graph browser safety guards、incremental Live JSONL tail/cache,以及跨平台 CI。
185
206
 
186
207
  ## 隱私
187
208
 
@@ -207,4 +228,4 @@ ExecWeave 是 local-first。Runtime events、semantic sidecars、graphs、report
207
228
 
208
229
  ## License
209
230
 
210
- 請參閱 [`LICENSE`](LICENSE)。
231
+ 請參閱 [`LICENSE`](LICENSE)。
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "execweave"
7
- version = "0.6.0"
7
+ version = "0.6.2"
8
8
  description = "Turn AI-agent runtime behavior into a local interactive execution graph."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"