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.
- {execweave-0.6.0 → execweave-0.6.2}/.github/workflows/publish.yml +16 -0
- execweave-0.6.2/.github/workflows/windows-launcher.yml +43 -0
- {execweave-0.6.0 → execweave-0.6.2}/PKG-INFO +33 -12
- {execweave-0.6.0 → execweave-0.6.2}/README.ja.md +33 -6
- {execweave-0.6.0 → execweave-0.6.2}/README.ko.md +33 -6
- {execweave-0.6.0 → execweave-0.6.2}/README.md +32 -11
- {execweave-0.6.0 → execweave-0.6.2}/README.zh-CN.md +33 -6
- {execweave-0.6.0 → execweave-0.6.2}/README.zh-TW.md +31 -10
- {execweave-0.6.0 → execweave-0.6.2}/pyproject.toml +1 -1
- execweave-0.6.2/scripts/check_windows_launchers.py +96 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/__init__.py +1 -1
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/backends.py +11 -4
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/collector.py +11 -7
- execweave-0.6.2/src/execweave/command.py +70 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/graph.py +103 -2
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/live.py +130 -18
- execweave-0.6.2/src/execweave/scope.py +85 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/viewer.py +89 -6
- execweave-0.6.2/tests/test_command.py +74 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_graph.py +56 -1
- execweave-0.6.2/tests/test_live.py +208 -0
- execweave-0.6.2/tests/test_scope.py +54 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_viewer.py +70 -1
- execweave-0.6.0/tests/test_live.py +0 -96
- {execweave-0.6.0 → execweave-0.6.2}/.github/workflows/ci.yml +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/.github/workflows/package-benchmark.yml +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/.gitignore +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/LICENSE +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/benchmarks/phase1_overhead.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/benchmarks/README.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/benchmarks/v0.6.0-github-actions.json +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/benchmarks/v0.6.0-github-actions.svg +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/claude-code-hooks.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/codex-hooks.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/cursor-hooks.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/gemini-hooks.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/inference-gateway.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/live-graph.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/model-runtime.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/opencode-plugin.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-1-runtime-collection.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/phase-2-execution-graph.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/security-analysis.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.ja.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.ko.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.zh-CN.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/docs/semantic-telemetry.zh-TW.md +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/check_claude_hook.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/check_claude_record_graph.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/check_correlation_graph.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/check_inference_gateway_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/check_model_runtime_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/check_semantic_graph.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/check_viewer_js.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_claude_hook_smoke.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_cursor_hook_smoke.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_gemini_hook_smoke.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/emit_opencode_plugin_smoke.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/scripts/make_semantic_smoke.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/__main__.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/analysis.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/benchmark.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/claude_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/claude_hook_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/claude_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/codex_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/codex_hook_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/codex_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/correlation.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cursor_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cursor_hook_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/cursor_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/filesystem.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/focus.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/gemini_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/gemini_hook_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/gemini_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/graph_ops.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_gateway.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_gateway_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_identity.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/inference_identity_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/model_runtime.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/model_runtime_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_hook_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_plugin_cli.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/opencode_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/overhead_benchmark.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/provider_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/schema.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/semantic.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/sink.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/strace_backend.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/validate.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/src/execweave/workflow.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_analysis.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_backends.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_claude_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_claude_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_codex_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_codex_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_collector.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_condense.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_correlation.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_correlation_canonical_path.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_correlation_process_exe.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_cursor_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_cursor_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_focus.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_gemini_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_gemini_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_graph_ops.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_inference_gateway.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_inference_identity.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_model_runtime.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_opencode_adapter.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_opencode_plugin.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_opencode_record.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_overhead_benchmark.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_schema.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_semantic.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_strace_backend.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_validate.py +0 -0
- {execweave-0.6.0 → execweave-0.6.2}/tests/test_version.py +0 -0
- {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.
|
|
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
|
|
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
|
|
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
|
-
|
|
95
|
+
Watch Claude Code, OpenAI Codex, or Gemini CLI live:
|
|
90
96
|
|
|
91
97
|
```bash
|
|
92
|
-
|
|
93
|
-
|
|
98
|
+
# Claude Code
|
|
99
|
+
execweave live --open -- claude
|
|
94
100
|
|
|
95
|
-
|
|
101
|
+
# OpenAI Codex
|
|
102
|
+
execweave live --open -- codex
|
|
96
103
|
|
|
97
|
-
|
|
98
|
-
execweave live --open --
|
|
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.
|
|
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
|
|
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
|
|
19
|
+
ExecWeave は PyPI で正式公開されています。最新の公開 release は次でインストールできます。
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
python -m pip install
|
|
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
|
-
|
|
39
|
+
Claude Code、OpenAI Codex、Gemini CLI をライブで観察:
|
|
34
40
|
|
|
35
41
|
```bash
|
|
36
|
-
|
|
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.
|
|
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
|
|
19
|
+
ExecWeave는 PyPI에 정식 공개되어 있습니다. 최신 공개 release 설치:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
python -m pip install
|
|
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
|
-
|
|
39
|
+
Claude Code, OpenAI Codex 또는 Gemini CLI를 실시간으로 관찰:
|
|
34
40
|
|
|
35
41
|
```bash
|
|
36
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
39
|
+
Watch Claude Code, OpenAI Codex, or Gemini CLI live:
|
|
34
40
|
|
|
35
41
|
```bash
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
# Claude Code
|
|
43
|
+
execweave live --open -- claude
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
# OpenAI Codex
|
|
46
|
+
execweave live --open -- codex
|
|
40
47
|
|
|
41
|
-
|
|
42
|
-
execweave live --open --
|
|
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.
|
|
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
|
|
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
|
|
19
|
+
ExecWeave 已正式发布到 PyPI。安装最新已发布版本:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
python -m pip install
|
|
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
|
-
|
|
39
|
+
实时观察 Claude Code、OpenAI Codex 或 Gemini CLI:
|
|
34
40
|
|
|
35
41
|
```bash
|
|
36
|
-
|
|
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.
|
|
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
|
|
19
|
+
ExecWeave 已正式發布到 PyPI,標準安裝方式為:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
python -m pip install
|
|
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
|
-
|
|
39
|
+
即時觀察 Claude Code、OpenAI Codex 或 Gemini CLI:
|
|
34
40
|
|
|
35
41
|
```bash
|
|
36
|
-
|
|
37
|
-
|
|
42
|
+
# Claude Code
|
|
43
|
+
execweave live --open -- claude
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
# OpenAI Codex
|
|
46
|
+
execweave live --open -- codex
|
|
40
47
|
|
|
41
|
-
|
|
42
|
-
execweave live --open --
|
|
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.
|
|
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)。
|