| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-05-22 | 4c extract event kind runtime registry | Paul Buetow | |
| 2026-05-20 | fix(task-17): prevent aggregate double-count and flush on shutdown | Paul Buetow | |
| 2026-05-20 | feat: add syscall aggregate sampling infrastructure (task 17) | Paul Buetow | |
| 2026-05-13 | refactor: extract outputFormatter collaborator from eventLoop | Paul Buetow | |
| The printCb and warningCb function fields on eventLoop bundled two distinct concerns (pair emission and warning delivery) directly on the event-processing struct. This commit extracts them into a dedicated outputFormatter type that owns these callbacks plus emit() and notifyWarning() helper methods. outputFormatter is embedded (not pointed-to) in eventLoop so that existing call sites — including tests that write el.printCb = ... and el.warningCb = ... directly — require no changes beyond the three struct-literal sites in eventloop_filter_test.go that used field initialiser syntax. fdTracker and commResolver were already proper collaborator types; only the output concern needed extraction. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> | |||
| 2026-05-08 | swap global filter in place to skip BPF reattach | Paul Buetow | |
| Changing the global filter used to call stopTrace + beginTraceCmd, which detached and re-attached every tracepoint and re-loaded the BPF object. On heavily loaded I/O systems that took several seconds and showed an 'Attaching tracepoints...' overlay each time. The probe set never depends on the global filter (ShouldIAttachTracepoint only reads CLI regex flags), so the restart was gratuitous. Now the eventloop holds its filter behind atomic.Pointer with SetFilter / Filter accessors, and the trace starter registers el.SetFilter via the runtime bindings as a SetLiveFilterSetter callback. applyGlobalFilter and undoGlobalFilter call runtime.applyLiveFilter first; only if no trace is running do they fall back to the full restart path. | |||
| 2026-04-18 | fix task 45: bound pending handle cleanup | Paul Buetow | |
| 2026-03-18 | refactor: extract pairTracker and extend fdTracker to reduce eventLoop ↵ | Paul Buetow | |
| responsibilities (task 428) The eventLoop struct held 20+ fields across 5+ responsibilities (SRP violation). Extract two cohesive sub-structs: - pairTracker: enter/exit pair matching, age-based LRU pruning, and DurationToPrev tracking. Replaces enterEvs/enterEvAges/prevPairTimes/ maxPendingEnterEvs/cacheAge fields with a single embedded value. - fdTracker (extended): absorbs procFdCache/procFdAges/maxProcFdCacheSize, moving all procfs-resolution cache logic (resolve, cache, prune, delete) off eventLoop and onto the tracker that already owns the fd table. eventLoop drops from 20 fields to 12. All methods that previously reached into eventLoop fields now live on the struct that owns the data. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> | |||
| 2026-03-18 | refactor: replace reflect.TypeOf dispatch in exit handlers with type switch ↵ | Paul Buetow | |
| (task 432) The exitHandlers map keyed by reflect.Type was a reflection-based dispatch table that incurred allocation and reflection overhead on every event pair in the hot processing path. Replace it with a plain type switch in handleTracepointExit, which the compiler resolves statically. Removes: initExitHandlers, typeKey, mustBeType, newTypedExitHandler, exitHandlerRegistry, the exitHandlers struct field, and the tracepointExitHandler type alias — all dead after the switch. Fixes a pre-existing uint→uint64 mismatch in stats(). Updates tests to target the new default branch directly. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> | |||
| 2026-03-13 | Handle procfs lookup errors in event loop (task 392) | Paul Buetow | |
| 2026-03-13 | Refactor event loop into focused units (task 389) | Paul Buetow | |
| 2026-03-11 | eventloop: factor malformed-event helpers (task 383) | Paul Buetow | |
| 2026-03-10 | eventloop: avoid fmt.Sprintf in proc comm lookup (task 426) | Paul Buetow | |
| 2026-03-10 | eventloop: bound pending enter and proc-fd caches (task 425) | Paul Buetow | |
| 2026-03-10 | task 434: unify trace filter plumbing | Paul Buetow | |
| 2026-03-08 | tui: restore global filter stack and anchored matches | Paul Buetow | |
| 2026-03-08 | tests: replace eventloop sleep synchronization with deterministic signaling | Paul Buetow | |
| 2026-03-08 | eventloop: remove gosched by snapshotting emitted fd state | Paul Buetow | |
| 2026-03-08 | task(ior): remove eventloop busy-wait polling (task 2b8f8f83) | Paul Buetow | |
| 2026-03-08 | task(ior): add comm resolver shutdown lifecycle (task fcd866dd) | Paul Buetow | |
| 2026-03-08 | task(ior): harden malformed raw-event decoding (task ed7a7a3f) | Paul Buetow | |
| 2026-03-06 | refactor: use pointer receivers for FdFile consistently (task 382) | Paul Buetow | |
| 2026-03-06 | refactor: make wrappers the only eventloop state maps (task 383) | Paul Buetow | |
| 2026-03-06 | refactor: remove dot imports for internal types (task 382) | Paul Buetow | |
| 2026-03-06 | refactor: bound comm resolver lookups with worker pool (task 384) | Paul Buetow | |
| 2026-03-06 | refactor: inject eventloop deps and registry exit handlers (task 389) | Paul Buetow | |
| 2026-03-06 | fix: return errors for invalid event filters (task 382) | Paul Buetow | |
| 2026-03-06 | refactor: remove web flamegrapher and keep TUI-only | Paul Buetow | |
| 2026-03-03 | Invalidate proc-fd cache on close_range | Paul Buetow | |
| 2026-03-03 | Use fast non-reflective event decoding on hot path | Paul Buetow | |
| 2026-03-03 | Cache procfs fd metadata for unknown descriptors | Paul Buetow | |
| 2026-03-02 | Launch live browser opener as invoking sudo user | Paul Buetow | |
| 2026-03-02 | Make --open a command template with no defaults | Paul Buetow | |
| 2026-03-02 | Add --open support for live flamegraph browser launch | Paul Buetow | |
| 2026-03-02 | Extract shared fd duplication helper | Paul Buetow | |
| 2026-03-01 | Use print callback for all event loop output modes | Paul Buetow | |
| 2026-03-01 | Extract fd and comm state helpers from eventLoop | Paul Buetow | |
| 2026-03-01 | Thread runtime config instead of global flags reads | Paul Buetow | |
| 2026-03-01 | Move comm procfs lookups off the hot path | Paul Buetow | |
| 2026-03-01 | Refactor tracepointExited into per-type handlers | Paul Buetow | |
| 2026-03-01 | Route non-fatal event-loop warnings to TUI | Paul Buetow | |
| 2026-03-01 | eventloop: replace raw-event switch with handler registry (task 314) | Paul Buetow | |
| 2026-03-01 | eventloop: inject runtime config instead of flags singleton (task 315) | Paul Buetow | |
| 2026-03-01 | eventloop: reuse comm resolver for pid seeding (task 317) | Paul Buetow | |
| 2026-02-27 | eventloop: wire live trie ingestion and server | Paul Buetow | |
| 2026-02-26 | tui: revamp status keys and add pid/tid reselection flow | Paul Buetow | |
| 2026-02-23 | Track pidfd_getfd returned fds in eventloop | Paul Buetow | |
| 2026-02-23 | Add getcwd tracing support and stabilize comm propagation test | Paul Buetow | |
| 2026-02-23 | Fix integration trace expectations and fd/open event handling | Paul Buetow | |
| 2026-02-22 | Fix event comm attribution and reduce integration log noise | Paul Buetow | |
| 2026-02-22 | Add copy_file_range support and tracepoint attach tests | Paul Buetow | |
