| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019ca323-dde1-73ac-97f0-cebfae5922a5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Extract per-file import logic into importFile helper. ImportFromDir
reduced from 82 to 45 lines. Uses defer f.Close() for cleaner resource
management.
Task: 26d657e0-5d41-4953-adb7-38322618505a
Amp-Thread-ID: https://ampcode.com/threads/T-019ca323-dde1-73ac-97f0-cebfae5922a5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Extract RunIntegrationTests into internal/goprecords with focused helpers:
testReportFixtures, testStatsOrder, testImportExport. main.go reduced
from 220 to 139 lines, with runTests now a thin 5-line wrapper.
Task: 7247d93e-e4af-4e8d-8fdc-116e0b06c7d3
Amp-Thread-ID: https://ampcode.com/threads/T-019ca323-dde1-73ac-97f0-cebfae5922a5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Add ReportConfig, ReportFlags, RegisterReportFlags, and WriteReports to
the internal goprecords package. Both runQuery and runReportFromFiles now
use these shared functions, eliminating duplicated flag definitions and
report-rendering loops. main.go reduced from 313 to 220 lines.
Task: d8f7af80-1aca-4dea-9a20-b8f95640acb7
Amp-Thread-ID: https://ampcode.com/threads/T-019ca323-dde1-73ac-97f0-cebfae5922a5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Extract record line parsing into a shared parseRecordLine function in
types.go, replacing duplicated parsing logic in aggregate.go and db.go.
Also simplifies lastKernelFromFile to use the shared function.
Task: a6e5c545-a37d-41a8-8a98-f3edb28ab662
Amp-Thread-ID: https://ampcode.com/threads/T-019ca323-dde1-73ac-97f0-cebfae5922a5
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
Added test suites:
- types_test.go: Tests for Aggregate, HostAggregate, Epoch, Category, Metric,
OutputFormat, word wrapping, and formatting functions
- report_test.go: Tests for Reporter creation and report generation across
different categories, metrics, and output formats
- aggregate_test.go: Tests for file-based aggregation, context cancellation,
and helper functions
- db_test.go: Tests for database operations including schema creation, imports,
record reset, and aggregate loading
Coverage improved from 17.6% to 82.1%, exceeding the 70% target.
Amp-Thread-ID: https://ampcode.com/threads/T-019c7c73-58f9-7516-958d-f30eb17a3bff
Co-authored-by: Amp <amp@ampcode.com>
|
|
Performance improvement:
- Use transactions for database imports (118x speedup)
- Import time reduced from 11.2s to 0.076s
Amp-Thread-ID: https://ampcode.com/threads/T-019c7c73-58f9-7516-958d-f30eb17a3bff
Co-authored-by: Amp <amp@ampcode.com>
|
|
Previously, ImportFromDir was executing each of 2,587 records as
individual INSERT statements, with each one creating its own transaction.
This was extremely slow at ~11 seconds.
Now wrap all inserts in a single database transaction, which is the
standard approach for bulk data loading. This reduces import time from
11.2s to 0.076s (118x faster).
Verified with:
- Before: real 0m11.193s
- After: real 0m0.076s
Amp-Thread-ID: https://ampcode.com/threads/T-019c7c73-58f9-7516-958d-f30eb17a3bff
Co-authored-by: Amp <amp@ampcode.com>
|
|
Major improvements:
- Apply Go best practices (reorganized types, constructors, methods)
- Remove obsolete files (guprecords.raku, compare-with-raku.sh)
- Extract processRecordsFile helper function
- Fix word-wrapping bug
- Support database import/query workflow
- Add database-backed uprecords Makefile target
Amp-Thread-ID: https://ampcode.com/threads/T-019c7c73-58f9-7516-958d-f30eb17a3bff
Co-authored-by: Amp <amp@ampcode.com>
|
|
- Reorganize types.go: place types and constructors before methods
- Simplify main.go: improve flag handling and reduce code complexity
- Extract processRecordsFile() in aggregate.go: reduce function size, ensure immediate defer
- Change Reporter receivers to value semantics for read-only operations
- Fix wordWrap() function: properly account for line length with leading space
- Remove guprecords.raku: Go implementation is the primary version now
- Remove compare-with-raku.sh: no longer needed
- Update README.md and .gitignore accordingly
All tests pass: go test ./... and ./goprecords test
Amp-Thread-ID: https://ampcode.com/threads/T-019c7c73-58f9-7516-958d-f30eb17a3bff
Co-authored-by: Amp <amp@ampcode.com>
|
|
- cmd/goprecords: CLI with import, query, report-from-files, test
- internal/goprecords: types, order, aggregate, db, report
- internal/version: version constant (0.1.0)
- SQLite import (repeatable: clears record table then inserts)
- Magefile: Build, Test, Install, Uninstall
- Table-driven unit tests; comparison script vs Raku guprecords
- .gitignore: *.db, /goprecords binary
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
|
|
Allow custom section ordering for --all reports while keeping defaults and tests in place.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|