2ed3eaac9e
pkg/logger: io.Writer injection, Flush(), -log-dump flag
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 19:31:20 +00:00
5ec8e6999a
pkg/logger: human handler UX— colon format- debug mode- dedup counter
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 18:48:51 +00:00
7bc91b0890
pkg/logger: replace NewDevelopment with NewCLI(level, debugFile)
...
Two modes for interactive CLI use — driven by debugFile presence:
- Normal (debugFile=""): human text on screen, INFO and above.
- Debug (debugFile set): same screen + full JSON trace to file.
Auto-detects TTY; falls back to 12-factor JSON when piped/redirected.
IsInteractive() exposes TTY detection for call sites that need it.
Terminal format: INFO has no prefix (program's normal voice);
WARN prints "warning: …"; ERROR prints "error: …"; DEBUG "debug: …".
Breaking: NewDevelopment removed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 16:48:34 +00:00
5055d69685
pkg/logger and pkg/testutil
2026-05-14 21:45:17 +00:00
81f5a49cea
result: Errw with caller info
...
- wrap existing errors with context + file:line, newline-separated for readable error chains
- dual mode philosophy: panics + if err != nil
- unify Expect for goexit and panic cases
2026-05-06 23:36:14 +00:00
390ffa19a4
result.Errf
2026-05-05 00:12:54 +00:00
ea38cf5a5a
better tests
2026-05-04 22:45:33 +00:00
c737e7d6be
slides
2026-05-04 19:15:11 +00:00
e204e43e6e
use panics as a default error reporting mechanism
...
- runtime.Goexit() has too much performance overhead, and should be used only under special conditions
- introduce build tags
2026-04-23 21:05:18 +00:00
974fed55d3
happy path perf optimization
...
move goroutineID() inside the defer, guarded by !finished. It's safe — Goexit runs defers in the same goroutine, so the ID is stable.
2026-04-23 20:02:34 +00:00
9599b8c0a3
performance benchmark
...
+ Switching debug.Stack() → runtime.Callers() saved ~900 ns and ~1 KB per error — the formatted string is gone, just raw program counters stored
2026-04-23 19:50:02 +00:00
e2b7e94847
runtime.Goexit() instead of panic
...
- usage policy: application code vs pkg
2026-04-23 18:48:31 +00:00
dbd513f7b4
pkg/result: Expectf()
2026-04-08 20:20:39 +00:00
8e7100a427
init: go/template v0.1.1
2026-04-07 20:32:27 +00:00