feat: number every record with a meta sequenceId - #6
Merged
Conversation
Contributor
Author
|
@coderabbitai pause |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Note Reviews pausedUse the following commands to manage reviews:
Use the checkboxes below for quick actions:
Comment |
✅ Action performedReviews paused. |
DavidCozens
force-pushed
the
stage-05-header-fields
branch
from
August 16, 2026 21:47
8dc0e61 to
4ed519b
Compare
<134>1 ... solid-syslog-example - BOOT [meta sequenceId="1"] device started Flash +6,052 B (+944 on the previous stage) RAM +1,972 B (+64) The counter increments once per record *formatted*, not per record delivered. A record that never reaches the collector therefore leaves a gap in the sequence rather than no trace at all — which is the whole value of the field, and the reason it lands before the circular buffer rather than after it. Instrument first, then introduce the failure mode; the other order means asserting a drop you already caused. The first SD-ELEMENT also introduces the rule that governs the rest: unlike a header field, an SD PARAM has no NILVALUE, so an unset one is omitted entirely rather than written as "-". StdAtomic joins the platform list, and here that is all it is. Naming it compiles its two sources exactly as naming LwipRaw compiles its eleven, because the fragment hands back sources rather than link targets. The counter is the real one rather than the Null fallback that reports 1 forever — the image retains its StdAtomicCounter symbols. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
DavidCozens
force-pushed
the
stage-06-sequence-id
branch
from
August 16, 2026 21:47
2dbd29b to
87039e5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add the first structured-data element,
SolidSyslogMetaSd, carrying a sequence number. Elementsare supplied to the logger as an array and read on every record, so they must outlive the call that
creates the logger.
The sequence number is incremented once per record formatted, not once per record delivered. A
record that never arrives therefore leaves a gap in the sequence rather than no trace at all, which
is why it is worth adding before any buffering or storage that could drop one. Instrument first,
then introduce the failure mode.
Unlike a header field, an SD PARAM has no nil value: one that is unset is omitted entirely rather
than written as
-.The counter comes from
SolidSyslogStdAtomicCounter. If your toolchain has no atomics, supply yourown to the contract
SolidSyslogAtomicCounter_Incrementstates — and note that logging from morethan one task is what makes the atomic part of it necessary.
StdAtomicjoins the platform list, and here that is all it is: naming it compiles its two sourcesexactly as naming
LwipRawcompiles its eleven.When you need it. If anyone needs to know that records have gone missing.