Repository navigation
feat: redact records at insert, a JSONL timeline sink, and cursor reads with --follow - #43
Conversation
… on the monotonic clock
…s, and --json and --follow on the CLI
…cursors without gaps
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. Insert-time redaction, the fail-closed sink and the name-matched file reads look sound. One data-loss path in the sink's file naming should be fixed before merge. Major
Minor
TestsThe change is well covered: there are new or extended tests for the store, redaction, the file sink, the handlers, cursor follow and the three commands. The same-second restart above is not covered. CI
I read the full source and the base diffs for the redaction, store, file sink, extensions, records, cursor_follow, tail command and CHANGELOG. I only spot-checked the doc and skill pages. I did not read |
…over the new paths
|
Thanks. Round 1, addressed in f27f435:
@kodizm please re-review. |
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. Both findings from the last round are fixed in f27f435, and I have nothing new to flag. This looks ready to merge. What changed since the last review: the fix commit touches only
Tests
CI
Not re-read this round: the doc and skill pages, |
What
TelescopeRedaction.redactoris a host-setString Function(String). The store runs it at insert over every string of log, event, exception and HTTP records, payload keys included, before the record reaches a queue or a stream.redactedis read-only and set only by redaction.TelescopeStore.setCapacity(int, {TelescopeKind? kind}).LogRecordEntry.atUsputs log lines on the same monotonic clock as events.TelescopeFileSinkwrites rotating JSONL, bounded by bytes and file count.ext.telescope.eventsandext.telescope.consoletakesince,typeandloggerand answer acursor; withsincethe page is the oldest records after it, so cursor paging is gapless. Newext.telescope.filesandext.telescope.file.telescope:eventsandtelescope:tailgain--since,--type/--logger,--jsonand--follow. Newtelescope:files.followCursoris exported fromcli.dart.Why
Watchools records its player timeline (events, mpv logs, faults, stats) into telescope so an agent can follow and replay it from the CLI. A stream URL carries the provider login in its path, so every record had to be masked before it is kept, and nothing unmasked may reach the file.
Testing
flutter test --exclude-tags=integration --timeout=30s: 497 pass; coverage 97.8%;dart analyzeanddart formatclean.Breaking:
TelescopeRedaction.redactHttpRecordnow returns a nullable record (null when the redactor rejects it), and the record constructors no longer takeredacted.