Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
d311e27
Merge pull request #1 from mufans/refactor-merge
mufans Apr 6, 2026
6edcbfc
Merge pull request #2 from mufans/refactor-merge
mufans Apr 6, 2026
0819136
Merge pull request #3 from mufans/refactor-merge
mufans Apr 8, 2026
7d4499f
feat(attribution): handle anonymous inner classes and improve report …
Apr 9, 2026
e03956a
Merge pull request #6 from mufans/refactor-merge
mufans Apr 9, 2026
a4d99cb
ci: add GitHub Actions workflow for pytest on push to main
Apr 11, 2026
3ae68dc
skip test_collector: Perfetto SQL MODE() WITHIN GROUP not supported
Apr 11, 2026
f31894b
docs: update TODO with optimization suggestions [2026-04-14]
Apr 14, 2026
3921226
docs: add Perfetto UI bridge feasibility study and design
Apr 14, 2026
981c630
docs: add Perfetto UI plugin build instructions to README
Apr 15, 2026
35d518a
feat(perfetto-ui): add interactive frame analysis via self-hosted Per…
Apr 15, 2026
8aad5af
Merge pull request #7 from mufans/refactor-merge
mufans Apr 15, 2026
874e36b
docs: update README with latest report example and formatting
Apr 15, 2026
5932f5c
docs: add Perfetto UI screenshot back to README
Apr 15, 2026
9e86be0
Merge pull request #8 from mufans/refactor-merge
mufans Apr 15, 2026
514727b
docs: add call stack attribution design document
Apr 15, 2026
1273482
feat(attribution): add call stack context for precise source attribution
Apr 15, 2026
f3e7cc3
docs: add Perfetto+AI comparison analysis and improvement plan
Apr 22, 2026
8dc6194
feat(attributor,perfetto): add deterministic fast path and thread sta…
Apr 22, 2026
b550261
Merge pull request #9 from mufans/feat/call-stack-attribution
mufans Apr 22, 2026
38e949a
Merge branch 'master' into feat/p0-improvements
Apr 22, 2026
fc99123
Merge branch 'master' into feat/p0-improvements
Apr 22, 2026
df1a353
feat(frame-analyzer): fix block slice detection, aggregation and inne…
Apr 22, 2026
dc8c00a
fix(perfetto): use overlap-based SQL for thread_state analysis
Apr 22, 2026
f09a9ea
fix(perfetto): accumulate thread state durations and map S+ to Sleeping
Apr 23, 2026
5366cb2
feat(p1): add dependency search, package_list fallback, SELinux bypas…
Apr 23, 2026
902c804
Create thread state blocking analysis design document
mufans Apr 23, 2026
c665c8b
Document project rules and structure in CLAUDE.md
mufans Apr 23, 2026
27d0d68
docs: add logging standard to CLAUDE.md
Apr 23, 2026
3d773eb
feat(collector): rewrite thread_state analysis to use __intrinsic_thr…
Apr 23, 2026
4d7ba1b
refactor(logging): replace bare print() with standard logging in pipe…
Apr 23, 2026
d4224d0
docs: add architecture improvement spec (performance expert + archite…
Apr 24, 2026
09cb419
Add SmartInspector feature specification document
mufans Apr 24, 2026
aa2f627
feat(p0-1): enable IO hooks and integrate IO slices into analysis pip…
Apr 24, 2026
9ff6213
feat(p0-2): add cold start analysis mode with phase splitting
Apr 24, 2026
4f1b295
feat(p0-3): add headless/CI mode with JSON output
Apr 24, 2026
0c39191
feat(p0-4): add JSON report formatter
Apr 24, 2026
34c6690
feat(p0-5): add IO slice attribution support
Apr 24, 2026
f0025a6
feat(p1-1): add Jetpack Compose recomposition tracking
Apr 24, 2026
51f74e5
feat(p1-2): add memory allocation analysis
Apr 24, 2026
edf299c
docs: update README and architecture docs for P0 features and P1 roadmap
Apr 24, 2026
c66f755
feat(p1-3): add historical comparison and trend analysis
Apr 24, 2026
2f31b8c
feat(p1-4): add smart quick analysis mode
Apr 24, 2026
aa06a78
feat(p1-5): improve ExtraHook parameter auto-inference
Apr 24, 2026
046c3c2
docs: add pipeline architecture rule - all features must reuse LangGraph
Apr 24, 2026
f788fa3
docs: add documentation update rule for new commands
Apr 24, 2026
4b2e2ae
docs: add prompt management rule - complex prompts must go to prompts…
Apr 24, 2026
db75a86
docs: add P2-6 source attribution enhancement (inspired by claude-con…
Apr 24, 2026
b7810c6
feat(collector): add cold start auto ADB launch
Apr 24, 2026
3c8996e
feat(scripts): add si.sh CLI launcher script
Apr 24, 2026
335946a
refactor(headless): reuse LangGraph pipeline via graph.invoke()
Apr 24, 2026
d3205a8
docs: update CLI commands and RouteDecision for headless/CI refactoring
Apr 24, 2026
5afc42e
fix(collector): use resolve-activity instead of hardcoded MainActivity
Apr 24, 2026
8c731ff
fix(collector): use LAUNCHER intent instead of resolve-activity for a…
Apr 24, 2026
3dfe06c
docs: update documentation with P0/P1 completion status
Apr 24, 2026
16a83ae
docs: add SQL Summarizer & Analysis Verifier spec
Apr 27, 2026
08c7cca
feat: add SQL Summarizer & Analysis Verifier
Apr 27, 2026
3b61819
Add metric_qa node for natural language metric queries
mufans Apr 28, 2026
05f3d58
feat(graph): add metric_qa node for natural language metric queries
Apr 28, 2026
6ba3060
fix: syntax errors in perfetto.py (callable | None) and compare.py (t…
Apr 28, 2026
aa729a2
fix: logging standard, startup package check, trace reuse bugs
Apr 28, 2026
72607bb
fix: cold start startup pipeline bugs (Fix #10)
Apr 28, 2026
6d4abae
feat(android): add Compose demo page for testing ComposeHook recompos…
May 5, 2026
d764a2a
refactor(logging): replace Python logging module with unified debug_l…
May 5, 2026
0cbaead
fix(startup): improve cold start root cause analysis
May 5, 2026
313b94d
fix(startup): connect startup pipeline to attributor→reporter and fix…
May 5, 2026
7955bd6
fix(startup): preserve startup report in reporter and fix attributor …
May 5, 2026
a416d5a
fix(startup): use LLM report generation for startup route
May 5, 2026
b34f2ff
fix(startup): append startup analysis verbatim to LLM-generated report
May 5, 2026
8faf640
fix(startup): default trace duration to 5s for startup route
May 5, 2026
4481f4b
fix(cli): store --target in initial state for /startup fallback
May 5, 2026
0141ad5
refactor(cli): rename --source-dir to --src (shorter alias)
May 5, 2026
b07631a
docs: update README and CLAUDE.md to use --src
May 5, 2026
c00e12b
fix(attributor): handle DeepSeek thinking mode reasoning_content
May 5, 2026
fa8561e
fix(hook): resolve system layout resource names in inflate tag
May 5, 2026
7a93384
fix(attributor): resolve anonymous inner class blocks via stack trace
May 5, 2026
46903d0
fix(attribution): restore accidentally deleted extract_class function
May 5, 2026
5f667f9
fix(collector): fix SQL errors, thread state resolution, CPU hotspot …
May 5, 2026
aefbdbe
Merge pull request #11 from mufans/feat/metric-qa
mufans May 5, 2026
2449bea
refactor: Phase 1 - unified SI$ tag parsing + test infrastructure
May 6, 2026
945ac1d
feat(collector): add P0 stdlib modules (lock contention, binder, star…
May 12, 2026
f29c38e
feat(collector): add P1 stdlib modules (slice CPU, input, sched, memo…
May 12, 2026
794c2ba
docs: update CLAUDE.md for stdlib modules
May 12, 2026
034c756
docs: update README.md for stdlib modules
May 12, 2026
a3459f9
docs: update ARCHITECTURE.md for stdlib modules
May 12, 2026
9d32760
feat: integrate stdlib modules into summarize() and PerfSummary
May 12, 2026
fba1c12
feat(android): add 8 scenario activities for P0/P1 stdlib modules
May 12, 2026
8f844ca
feat(analysis): integrate 8 stdlib module analysis helpers into deter…
May 12, 2026
f3f307e
fix: resolve 'str' object has no attribute 'get' in stdlib analysis h…
May 12, 2026
f8011e8
Revert "fix: resolve 'str' object has no attribute 'get' in stdlib an…
May 12, 2026
8ef20e8
fix: resolve str.get() error in stdlib analysis helpers - extract inn…
May 12, 2026
e8ea721
feat(collector): enhance Perfetto trace config for P0/P1 stdlib modul…
May 12, 2026
ef6ae1f
fix(collector): fix atrace_categories format and unify /analyze pipeline
May 12, 2026
12576e1
Merge pull request #13 from mufans/feat/stdlib-modules
mufans May 12, 2026
cc3f34e
feat(mcp): add MCP Server exposing CLI commands as MCP tools
May 13, 2026
de7597e
feat(mcp): add source_dir parameter to analysis tools
May 13, 2026
4c477b7
feat(mcp): add si_init tool for unified session initialization
May 13, 2026
3297a10
refactor(mcp): consolidate target/debug into si_init, slim down tool …
May 13, 2026
aed1553
fix(docs): correct uv run args in MCP config example
May 13, 2026
1cae157
Merge pull request #15 from mufans/feat/mcp-server
mufans May 13, 2026
ef62ca9
docs(readme): add MCP Server section with setup and config examples
May 13, 2026
246ec23
Merge pull request #16 from mufans/feat/mcp-server
mufans May 13, 2026
fb9acb9
feat(docker): add Phase 1 containerization files
May 14, 2026
f012324
fix(docker): fix Dockerfile build issues and add ARM64 support
May 14, 2026
bdc6ca4
Merge pull request #17 from mufans/feature/docker-deploy
mufans May 15, 2026
40f55c0
docs(docker): update documentation for Dockerfile improvements
May 15, 2026
916d277
Merge pull request #18 from mufans/feature/docker-deploy
mufans May 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Version control
.git/
.gitignore

# CI/CD
.github/

# Development environment
.venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.claude/

# macOS
.DS_Store

# Large directories -- must not be included in image
perfetto-build/
perfetto-plugin/
platform/

# Build artifacts
*.egg-info/
dist/
build/

# Environment config (inject via env vars or volume)
.env

# Generated reports (use volume mount)
reports/

# Documentation (not needed at runtime)
docs/
*.md
!README.md

# Tests (not needed in production image)
tests/

# IDE
.idea/
.vscode/
*.swp
*.swo
28 changes: 28 additions & 0 deletions .env.docker.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# =============================================================================
# SmartInspector Docker Environment Variables
# =============================================================================
# Usage:
# 1. Copy to .env: cp .env.docker.example .env
# 2. Fill in [REQUIRED] values
# 3. Run: docker compose --profile prod up -d
# =============================================================================

# -- LLM Configuration [REQUIRED] -------------------------------------------
SI_API_KEY= # [REQUIRED] LLM API key
SI_MODEL=deepseek-chat # Default model
SI_BASE_URL=https://api.deepseek.com # API endpoint

# -- Role Override (optional) ------------------------------------------------
# SI_ATTRIBUTOR_MODEL=claude-sonnet-4-20250514

# -- Feature Configuration ---------------------------------------------------
SI_DEBUG=0
SI_REPORT_MAX_TOKENS=4000
SI_TOOL_TIMEOUT=30
SI_WS_PORT=9876
SI_WS_PING_TIMEOUT=30

# -- Docker Volume Mount Paths -----------------------------------------------
TRACE_DIR=./traces
REPORT_DIR=./reports
SOURCE_DIR=./src
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,4 @@ reports/
platform/android/.gradle/
platform/android/build/
platform/android/.idea/
perfetto-build/
170 changes: 160 additions & 10 deletions ARCHITECTURE.md

Large diffs are not rendered by default.

Loading
Loading