Commit graph

9 commits

Author SHA1 Message Date
Snider
7f2fd424cf refactor(module): migrate module paths from forge.lthn.ai to dappco.re
All checks were successful
Security Scan / security (pull_request) Successful in 12s
Test / test (pull_request) Successful in 1m18s
Update module path to dappco.re/go/core/session, dependency to
dappco.re/go/core/log v0.1.0, all Go import paths, and documentation
references. Remove duplicate test functions found during migration.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 01:37:11 +00:00
Snider
c7696920e0 fix(dx): fix coreerr.E() signatures, add SPDX headers and tests
All checks were successful
Security Scan / security (pull_request) Successful in 7s
Test / test (pull_request) Successful in 1m6s
Fix two coreerr.E() calls missing the required third (error) argument,
add SPDX-Licence-Identifier headers to all source files, and add tests
for PruneSessions, IsExpired, and FetchSession (coverage 88.1% → 92.1%).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 08:03:31 +00:00
Snider
55ceab4a0d refactor(error-handling): replace fmt.Errorf and errors.New with coreerr.E()
Some checks failed
Security Scan / security (push) Successful in 8s
Test / test (push) Failing after 1m8s
Replace all 8 instances of fmt.Errorf across parser.go, html.go, and video.go
with coreerr.E() from forge.lthn.ai/core/go-log for consistent error handling.
Add dependency on go-log v0.0.4.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-16 20:38:07 +00:00
Snider
ad28c85c89 fix: improve HTML escaping and modernise sort/search helpers
All checks were successful
Security Scan / security (push) Successful in 7s
Test / test (push) Successful in 37s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:30:01 +00:00
Snider
89a431c1b9 feat: modernise to Go 1.26 iterators and stdlib helpers
All checks were successful
Security Scan / security (push) Successful in 11s
Test / test (push) Successful in 1m58s
Add ListSessionsSeq, EventsSeq, SearchSeq iterators for streaming.
Use slices.SortFunc, slices.Sorted(maps.Keys()), slices.Collect
in ListSessions, Search, FormatAnalytics, extractToolInput.

Co-Authored-By: Gemini <noreply@google.com>
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 05:25:55 +00:00
Snider
14586940fe refactor: apply go fix modernizers for Go 1.26
Automated fixes: interface{} → any, range-over-int, t.Context(),
wg.Go(), strings.SplitSeq, strings.Builder, slices.Contains,
maps helpers, min/max builtins.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 21:00:17 +00:00
Claude
1031905018
feat(parser): add robustness for truncated JSONL and malformed lines
Phase 1: graceful error recovery, streaming parse, skip malformed lines.

- Add ParseTranscriptReader for io.Reader-based streaming (pipes, buffers)
- Refactor to shared parseFromReader, eliminating code duplication
- Bump scanner buffer to 8 MiB for very large tool outputs
- 18 new tests: streaming, custom MCP tools, binary garbage, edge cases
- Coverage: 93.0% (up from 90.9%), 104 total tests

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 14:34:43 +00:00
Snider
a6fb93408b feat(parser): Phase 1+2 — parse stats, truncation detection, session analytics
Phase 1: ParseTranscript now returns (*Session, *ParseStats, error).
ParseStats tracks TotalLines, SkippedLines, OrphanedToolCalls, and
Warnings (line numbers + previews for bad JSON, orphaned tool IDs,
truncated final line detection). All call sites updated.

Phase 2: New analytics.go with Analyse() and FormatAnalytics().
SessionAnalytics computes Duration, ActiveTime, ToolCounts, ErrorCounts,
SuccessRate, AvgLatency, MaxLatency, and token estimation.

Co-Authored-By: Virgil <virgil@lethean.io>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 07:40:52 +00:00
Snider
474b0861e1 feat: extract go-session from core/go pkg/session
Session parsing, timeline generation, HTML/video rendering.
Zero external dependencies (stdlib only).
Module: forge.lthn.ai/core/go-session

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-19 16:09:12 +00:00