Skip to content

docs(triage): the line's wording dates a sample against a merged fix — the two routing rows - #5190

Merged
meshweaver-cloud[bot] merged 2 commits into
mainfrom
docs/log-wording-dates-a-sample-against-a-merged-fix
Sep 22, 2026
Merged

meshweaver-cloud[bot] merged 2 commits into
mainfrom
docs/log-wording-dates-a-sample-against-a-merged-fix

Conversation

@rbuergi

@rbuergi rbuergi commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Docs only. Conserves the work product of triaging the five newest core bugs (#5176, #5177, #5146, #5175, #2886) against the two routing fixes that merged overnight and are not yet rolled (#5151 for #5009, #5174 for #2299).

What it adds

Beside the existing image-attribution idiom in LogWatchTriage ("read the LINE for the image"), the two rows that the routing cluster produced — so the next reader of a RoutingGrain incident can date every sample against the fix from the sentence it prints, before reading Ops/Status and long before trusting the counter:

site pre-fix wording post-fix wording
[ROUTE] Routing back-pressure … stream destinations queued N, deepest per-destination queue D ordered channels queued N over M stream destination(s), deepest per-channel queue D
[ROUTE] Directed delivery to pod hub … failed on a DeactivateOnIdle rejection fail: + Failed info: + ShuttingDown

Plus the two traps the cluster produced: a closing keyword parses per issue number (PR #5174's Closes #2299's classification half closed #2299 against its own body's statement that the bounce half stays open — reopened, sev:H, now carrying #5177's evidence), and one episode can hold two fingerprints (#5146 / #5177: one address, one window, one set of senders).

What this measured (the dispositions this page now explains)

Verification

step signal
dotnet build test/MeshWeaver.Documentation.Test -c Release -warnaserror 0 Warning(s), 0 Error(s), Time Elapsed 00:00:24.40
DocumentationLinkIntegrityTest total: 1, failed: 0, succeeded: 1, skipped: 0
negative control — one new link deliberately broken total: 1, failed: 1, succeeded: 0, log names the broken target; restored to 0 occurrences

No What's New file (policy whatsnew-cadence). No hard-coded decision dates or names; the dates present are measurements. No addresses to recycle: doc content only.

Mirror-sync: none — no catalog key touched.
Pairs-with: none — no public surface touched.

🤖 Generated with Claude Code

…— the two routing rows

A rising counter on an auto-filed incident is not new evidence while the fix is merged and not
rolled, and the strongest test of each sample is the log line's own wording, not its timestamp:
a timestamp says "after the merge", the wording says which code emitted it. Adds the two rows
the routing cluster produced — the back-pressure line's field rename (per-destination →
per-channel) and the pod-hub leg's level+word flip (fail:/Failed → info:/ShuttingDown on a
DeactivateOnIdle rejection) — beside the existing image-attribution idiom, plus the two traps
the cluster produced: a closing keyword parses per issue number, and one episode can hold two
fingerprints.

DocumentationLinkIntegrityTest: passed 1 / failed 0 — and failed 1 with a link deliberately
broken, so the sweep demonstrably reads the page.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings September 22, 2026 06:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Review comments identify unresolved inaccuracies and overstatements in the documentation.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Docs-only update adding routing log triage guidance, measured examples, and fingerprinting/issue-closing pitfalls.

Changes:

  • Documents pre-/post-fix routing log wording.
  • Adds guidance for dating samples against fixes.
  • Explains issue-closing and multi-fingerprint traps.
File Summary
src/​MeshWeaver.Documentation/​Data/​Architecture/​LogWatchTriage.md Adds routing-specific triage procedures and examples.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +230 to +231
- **The same episode can hold two fingerprints.** The current identity keys on the exception type,
so one log site fills one fingerprint when the exception is captured and another when it is not;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed — the identity is hash(WHERE, WHAT, WHICH), and the exception type is one input among the call site and the masked message, not the key. Rewording to say that capturing the same site with and without the exception changes the inputs, so one episode can land on two fingerprints; the split is a property of the inputs differing, not of the type alone. Pushing the reword now.

@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

429 tests   - 14   429 ✅  - 14   54s ⏱️ -4s
  2 suites  -  1     0 💤 ± 0 
  2 files    -  1     0 ❌ ± 0 

Results for commit 8c602f3. ± Comparison against base commit e564d69.

♻️ This comment has been updated with latest results.

… is one input, not the key

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

533 tests   - 1 057   533 ✅  - 1 057   1m 0s ⏱️ - 1m 59s
  1 suites  -     1     0 💤 ±    0 
  1 files    -     1     0 ❌ ±    0 

Results for commit 8c602f3. ± Comparison against base commit e564d69.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

  1 files  ±0    1 suites  ±0   2m 54s ⏱️ -1s
318 tests ±0  318 ✅ ±0  0 💤 ±0  0 ❌ ±0 
322 runs  ±0  322 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 8c602f3. ± Comparison against base commit e564d69.

♻️ This comment has been updated with latest results.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

    2 files   -   1      2 suites   - 1   5m 49s ⏱️ -1s
2 529 tests +591  2 529 ✅ +591  0 💤 ±0  0 ❌ ±0 
2 530 runs  +591  2 530 ✅ +591  0 💤 ±0  0 ❌ ±0 

Results for commit 8c602f3. ± Comparison against base commit e564d69.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

1 553 tests  +830   1 553 ✅ +1 022   7m 34s ⏱️ + 1m 59s
    2 suites  -   1       0 💤  -   192 
    2 files    -   1       0 ❌ ±    0 

Results for commit 8c602f3. ± Comparison against base commit e564d69.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

    5 files  ±  0      5 suites  ±0   15m 10s ⏱️ -1s
3 273 tests  - 633  3 273 ✅  - 631  0 💤  - 2  0 ❌ ±0 
3 277 runs   - 633  3 277 ✅  - 631  0 💤  - 2  0 ❌ ±0 

Results for commit 8c602f3. ± Comparison against base commit e564d69.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

   13 files   -   4     13 suites   - 4   33m 23s ⏱️ -5s
8 635 tests  - 283  8 635 ✅  - 89  0 💤  - 194  0 ❌ ±0 
8 644 runs   - 283  8 644 ✅  - 89  0 💤  - 194  0 ❌ ±0 

Results for commit 8c602f3. ± Comparison against base commit e564d69.

@meshweaver-cloud
meshweaver-cloud Bot added this pull request to the merge queue Sep 22, 2026
Merged via the queue into main with commit 8bf6f6b Sep 22, 2026
37 checks passed
@rbuergi
rbuergi deleted the docs/log-wording-dates-a-sample-against-a-merged-fix branch October 10, 2026 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RoutingGrain turns a stale pod-hub route into a sender-visible DeliveryFailure instead of re-resolving it

2 participants