Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3edbf65
feat: add Sysmon EVTX parser and workspace
claude Mar 31, 2026
c6b7815
fix: apply review feedback for Sysmon EVTX parser
Copilot Mar 31, 2026
b066fda
fix: address PR #72 code review issues for sysmon workspace
adamgell Mar 31, 2026
0bbfcb9
fix: update ui-store tests for sysmon windows-only platform
adamgell Mar 31, 2026
6a05720
feat: add refresh button to Sysmon workspace
adamgell Mar 31, 2026
a1b4f52
feat(sysmon): add dashboard data model structs
adamgell Mar 31, 2026
0e8e3a8
feat(sysmon): implement build_dashboard_data aggregation
adamgell Mar 31, 2026
fd946a2
feat(sysmon): wire dashboard data into analyze command
adamgell Mar 31, 2026
8635f1d
test(sysmon): add unit tests for build_dashboard_data
adamgell Mar 31, 2026
f01188a
chore: add @fluentui/react-charts dependency
adamgell Mar 31, 2026
ec60930
feat(sysmon): add dashboard TypeScript types
adamgell Mar 31, 2026
9a1c7b1
feat(sysmon): add dashboard state to store
adamgell Mar 31, 2026
3167d26
feat(sysmon): add reusable DashboardTopList component
adamgell Mar 31, 2026
81ef358
feat(sysmon): add DashboardMetricCards component
adamgell Mar 31, 2026
7f566be
feat(sysmon): add DashboardTimeline component
adamgell Mar 31, 2026
1636ef9
feat(sysmon): add DashboardEventTypeChart component
adamgell Mar 31, 2026
4e172cb
feat(sysmon): add DashboardSecurityAlerts component
adamgell Mar 31, 2026
eb80694
feat(sysmon): add SysmonDashboardView container component
adamgell Mar 31, 2026
f41bd43
feat(sysmon): integrate dashboard tab into workspace
adamgell Mar 31, 2026
8ec1487
fix(sysmon): prevent timeline chart from crashing with large datasets
adamgell Mar 31, 2026
a250e7c
fix(sysmon): reduce chart heights and align grid items to top
adamgell Mar 31, 2026
c5dd77a
fix(sysmon): make registry activity span full width for long paths
adamgell Mar 31, 2026
47fb890
fix(sysmon): make file activity span full width for long paths
adamgell Mar 31, 2026
3bddef9
fix(sysmon): place network, DNS, ports on same row in 3-column grid
adamgell Mar 31, 2026
03f2caa
fix(sysmon): stack donut + security alerts beside top processes
adamgell Mar 31, 2026
f7c1b49
Add Sysmon dashboard docs and backend
adamgell Apr 1, 2026
05ebc31
fix(sysmon): remove event cap, auto-aggregate timeline, perf + access…
adamgell Apr 2, 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
1 change: 1 addition & 0 deletions .claude/worktrees/agent-a03c04a2
Submodule agent-a03c04a2 added at 3e64ee
1 change: 1 addition & 0 deletions .claude/worktrees/agent-a439ef87
Submodule agent-a439ef87 added at 183cf6
29 changes: 28 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ Communication is through Tauri's `invoke()` (frontend→backend) and `emit()` (b
| `models/` | Shared types: `LogEntry`, `ParseResult`, `FilterCriteria` |
| `state/` | `AppState` (Mutex-wrapped) — tracks open files, tail sessions |
| `watcher/` | File watching and real-time tailing via `notify` crate |
| `sysmon/` | Sysmon event log analysis: EVTX parsing, event models |
| `menu.rs` | Native application menu |

### Frontend Module Map (`src/`)
Expand All @@ -80,7 +81,8 @@ Communication is through Tauri's `invoke()` (frontend→backend) and `emit()` (b
| `components/dialogs/` | Modal dialogs (find, filter, error lookup) |
| `components/intune/` | Intune analysis workspace |
| `components/dsregcmd/` | DSRegCmd troubleshooting workspace |
| `stores/` | 5 Zustand stores: log, filter, intune, dsregcmd, ui |
| `components/sysmon/` | Sysmon event log analysis workspace |
| `stores/` | 6 Zustand stores: log, filter, intune, dsregcmd, sysmon, ui |
| `hooks/` | Custom hooks for drag-drop, menus, file association |
| `types/` | TypeScript type definitions |

Expand All @@ -102,6 +104,7 @@ Format detection (`detect.rs`) samples the first lines of a file to auto-select
- **Encoding fallback**: UTF-8 → Windows-1252 (via `encoding_rs`)
- **Parallelism**: Rayon for batch log line processing, Tokio for async file I/O
- **Windows-specific code** is gated with `#[cfg(target_os = "windows")]` and the `windows`/`winreg` crates
- **Windows-only workspaces** (Sysmon, parts of Intune) need platform gating in Rust commands and conditional handling in frontend tests

## Testing

Expand All @@ -116,3 +119,27 @@ Format detection (`detect.rs`) samples the first lines of a file to auto-select
- Rust 1.77.2+ (MSVC toolchain on Windows)
- Windows: Visual Studio Build Tools with C++ workload + Windows SDK + WebView2 Runtime
- Automated Windows setup: `powershell -ExecutionPolicy Bypass -File .\scripts\Install-CMTraceOpenBuildPrereqs.ps1`

## Agent Directives: Mechanical Overrides

### Pre-Work

1. **Step 0 Rule**: Before ANY structural refactor on a file >300 LOC, first remove all dead props, unused exports, unused imports, and debug logs. Commit this cleanup separately before starting the real work.
2. **Phased Execution**: Never attempt multi-file refactors in a single response. Break work into explicit phases. Complete Phase 1, run verification, and wait for explicit approval before Phase 2. Each phase must touch no more than 5 files.

### Code Quality

3. **Senior Dev Override**: If architecture is flawed, state is duplicated, or patterns are inconsistent — propose and implement structural fixes. Ask: "What would a senior, experienced, perfectionist dev reject in code review?" Fix all of it.
4. **Forced Verification**: You are FORBIDDEN from reporting a task as complete until you have run `npx tsc --noEmit` (and `npx eslint . --quiet` if configured) and fixed ALL resulting errors.

### Context Management

5. **Sub-Agent Swarming**: For tasks touching >5 independent files, launch parallel sub-agents (5–8 files per agent). Sequential processing of large tasks guarantees context decay.
6. **Context Decay Awareness**: After 10+ messages in a conversation, re-read any file before editing it. Do not trust memory of file contents — auto-compaction may have silently destroyed that context.
7. **File Read Budget**: Each file read is capped at 2,000 lines. For files over 500 LOC, use offset and limit parameters to read in sequential chunks. Never assume you have seen a complete file from a single read.
8. **Tool Result Blindness**: Tool results over 50,000 characters are silently truncated. If any search or command returns suspiciously few results, re-run with narrower scope. State when you suspect truncation occurred.

### Edit Safety

9. **Edit Integrity**: Before EVERY file edit, re-read the file. After editing, read it again to confirm the change applied correctly. Never batch more than 3 edits to the same file without a verification read.
10. **No Semantic Search**: When renaming or changing any function/type/variable, search separately for: direct calls, type-level references, string literals containing the name, dynamic imports/require() calls, re-exports/barrel file entries, and test files/mocks.
Loading
Loading