docs: bring README, RFC/IEC62443/BDD docs back in line with code#450
Conversation
Several months of feature work (S08.03-S08.08 FreeRTOS bring-up, S12.17 TCP/TLS timeout tunables, S13/S26 Windows + FreeRTOS BDD wiring, E11 pool migration) had moved past what the docs described. This pass is docs-only, no functional changes: - README: senders are pool-backed now (E11), not singletons; Windows BDD target wires TLS/mTLS + file-backed store; FreeRTOS BDD target wires TLS/mTLS via MbedTls over FreeRTOS-Plus-TCP; SolidSyslogFreeRtosAddress added to the adapter list. - rfc-compliance.md + iec62443.md: drop the obsolete "SO_SNDTIMEO 5s hard-coded" claim — the TCP socket is non-blocking from open, with bounded connect via SOLIDSYSLOG_TCP_CONNECT_TIMEOUT_MS (default 200 ms) or per-Stream GetConnectTimeoutMs accessor; analogous handshake pair for TLS (S12.17 #282). Add SolidSyslogFreeRtosMutex to the injected-mutex list in iec62443.md. - docs/bdd.md: fix all three runner tag filters against the canonical source (ci/docker-compose.bdd.yml + ci.yml); add @store, @rtc, @no_rtc, @requires_message_size_1500 to the tags table; drop the stale "STRUCTURED_DATA only in syslog-ng oracle" note now that the OTel parser re-renders SDATA. - Bdd/README.md + Bdd/Targets/FreeRtos/README.md: align the local-run tag filter and switch-command list with the four-transport reality. - integrating-mbedtls.md: add GetHandshakeTimeoutMs / HandshakeTimeoutContext to the MbedTlsStreamConfig surface (S12.17). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughThis pull request updates project documentation across seven files to reflect expanded FreeRTOS transport support (UDP, TCP, TLS, mTLS), corresponding BDD test infrastructure changes, timeout/non-blocking behavior guarantees, and public API documentation. ChangesFreeRTOS and BDD Documentation Updates
🎯 2 (Simple) | ⏱️ ~10 minutes Possibly Related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/bdd.md`:
- Around line 149-155: The Windows runner filter in the docs is inconsistent:
the canonical filter string "not `@wip` and not `@windows_wip` and not `@no_rtc`"
(used in the Runner table) conflicts with the local command example that uses
"not `@buffered`"; update the local command example to use the canonical Windows
filter string so both references match, or alternatively change the table entry
to "not `@buffered`" if you intend that as canonical—ensure you update the
occurrences of the unique filter strings ("not `@wip` and not `@windows_wip` and not
`@no_rtc`" and "not `@buffered`") and any local command examples that reference the
Windows filter so they are identical.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 0a16efe5-1189-49f8-9e33-adca0308528c
📒 Files selected for processing (7)
Bdd/README.mdBdd/Targets/FreeRtos/README.mdREADME.mddocs/bdd.mddocs/iec62443.mddocs/integrating-mbedtls.mddocs/rfc-compliance.md
| Runner tag filters (canonical source: `ci/docker-compose.bdd.yml` for Linux + FreeRTOS, `.github/workflows/ci.yml` for Windows): | ||
|
|
||
| | Runner | Filter | | ||
| | --- | --- | | ||
| | Linux (syslog-ng) | `not @wip` | | ||
| | FreeRTOS (syslog-ng-freertos via QEMU) | `not @wip and not @freertoswip and not @rtc and not @windows_wip and (@udp or @tcp)` | | ||
| | Windows (OTel Collector) | `not @wip and not @windows_wip and not @buffered` | | ||
| | Linux (syslog-ng) | `not @wip and not @no_rtc` | | ||
| | FreeRTOS (syslog-ng-freertos via QEMU) | `not @wip and not @freertoswip and not @rtc and not @windows_wip and (@udp or @tcp or @tls or @mtls)` | | ||
| | Windows (OTel Collector) | `not @wip and not @windows_wip and not @no_rtc` | |
There was a problem hiding this comment.
Windows filter docs now conflict with the local Windows command example.
Line 155 updates Windows to not @wipand not@windows_wipand not@no_rtc, but the local command later in this file still uses `not `@buffered (Line 200). Please align both to one canonical filter to avoid running the wrong scenario set locally.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~149-~149: The official name of this software platform is spelled with a capital “H”.
Context: ...-compose.bdd.ymlfor Linux + FreeRTOS,.github/workflows/ci.yml` for Windows): | Runn...
(GITHUB)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/bdd.md` around lines 149 - 155, The Windows runner filter in the docs is
inconsistent: the canonical filter string "not `@wip` and not `@windows_wip` and not
`@no_rtc`" (used in the Runner table) conflicts with the local command example
that uses "not `@buffered`"; update the local command example to use the canonical
Windows filter string so both references match, or alternatively change the
table entry to "not `@buffered`" if you intend that as canonical—ensure you update
the occurrences of the unique filter strings ("not `@wip` and not `@windows_wip` and
not `@no_rtc`" and "not `@buffered`") and any local command examples that reference
the Windows filter so they are identical.
☀️ Quality Summary 🚦 build-linux-gcc: 100% successful (✔️ 1338 passed) Created by Quality Monitor v1.14.0 (#f3859fd). More details are shown in the GitHub Checks Result. |
Summary
Documentation drift had accumulated over the last several months of feature work — this PR re-aligns the docs with the actual codebase. No functional changes.
SOLIDSYSLOG_*_SENDER_POOL_SIZE), not singletons; Windows and FreeRTOS BDD targets both wire all four transports now (UDP/TCP/TLS/mTLS); Windows BDD target has file-backedSolidSyslogBlockStore; addedSolidSyslogFreeRtosAddressto the FreeRTOS adapter list.SO_SNDTIMEO5 s hard-coded" claim is obsolete. The TCP socket is non-blocking from open; bounded connect usesSOLIDSYSLOG_TCP_CONNECT_TIMEOUT_MS(default 200 ms) or per-StreamGetConnectTimeoutMs(ctx); analogous handshake pair for TLS (S12.17 S12.17: Tunable + runtime-overridable TCP connect and TLS handshake timeouts #282). Long-term wedge detected viaTCP_KEEPALIVE+TCP_USER_TIMEOUT. AddedSolidSyslogFreeRtosMutexto the injected-mutex list in iec62443.md.ci/docker-compose.bdd.ymland.github/workflows/ci.yml:not @wip→not @wip and not @no_rtc@tls or @mtlsin the OR groupnot @buffered→not @no_rtc(Windows target gained buffered + store wirings)@store,@rtc,@no_rtc,@requires_message_size_1500to the tags table._render_otel_structured_data.switch tls/switch mtls; added the missing tag rows.SolidSyslogMbedTlsStreamConfiglisting was missing the S12.17GetHandshakeTimeoutMs/HandshakeTimeoutContextfields. Added to the "what you provide" table and the worked example.Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit