Repository navigation
An empty TERMINAL activity log says so — never "Running…" beside "✓ Done" - #928
Conversation
…one" Addresses #915 (direction 3 — the only direction that needs no product call). ActivityLayoutAreas.BuildLog's empty-log branch rendered the "Running…" row without consulting log.Status, though its own doc said "an empty log on a RUNNING activity". Since #876/#861 stopped writing control results to the activity log, empty terminal logs are a normal outcome for code cells whose script returns a control — and every such run showed "✓ Done" beside "Running…", which readers decoded as failure. The empty row now consults Status: Running keeps "Running…", any terminal status renders an explicit localized "This run produced no output." (new ui.activityNoOutput key, EN+DE). The label is extracted as the public pure builder BuildEmptyLogLabel, matching the file's unit-testable-builder pattern. The render-into-the-cell / hide-Run-where-it-cannot-show-anything directions (1/2) remain open on #915 — they change what Run means for embedded cells and need a product decision. Verified: ActivityProgressViewTest 11/11 (4 new terminal-status cases + the running row asserted by text), LocalizationTest 33/33 (EN/DE parity), Release -warnaserror builds clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the Activity log UI so empty logs reflect the activity’s actual status, preventing the contradictory “Running…” row from appearing alongside terminal “Done/Failed/…” states (Issue #915 direction 3: “say so”).
Changes:
- Update
ActivityLayoutAreas.BuildLogto render a status-aware empty-log label (Running → “Running…”, terminal → localized “This run produced no output.”). - Add the new localization key
ui.activityNoOutputto both English and German string catalogs. - Extend
ActivityProgressViewTestwith new assertions covering empty terminal logs, and add a What’s New entry documenting the user-visible change.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| test/MeshWeaver.Graph.Test/ActivityProgressViewTest.cs | Adds theory coverage for empty terminal activity logs and asserts the exact empty-log label text. |
| src/MeshWeaver.Messaging.Hub/Localization/strings.en.json | Adds ui.activityNoOutput English string. |
| src/MeshWeaver.Messaging.Hub/Localization/strings.de.json | Adds ui.activityNoOutput German string. |
| src/MeshWeaver.Graph/ActivityLayoutAreas.cs | Makes empty-log rendering status-aware via new BuildEmptyLogLabel builder. |
| src/MeshWeaver.Documentation/Data/WhatsNew/2026-08-08-activity-log-no-output.md | Documents the new empty-terminal-log messaging behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Test Results (shard 0)673 tests 673 ✅ 4m 55s ⏱️ Results for commit fe91cfb. |
Test Results (shard 4)1 207 tests 1 202 ✅ 4m 55s ⏱️ Results for commit fe91cfb. |
Test Results (shard 5)1 676 tests 1 485 ✅ 5m 44s ⏱️ Results for commit fe91cfb. |
Test Results (shard 2)1 775 tests 1 773 ✅ 6m 6s ⏱️ Results for commit fe91cfb. |
Test Results (shard 3) 11 files 11 suites 5m 0s ⏱️ Results for commit fe91cfb. |
Test Results (shard 1)1 185 tests 1 185 ✅ 8m 4s ⏱️ Results for commit fe91cfb. |
Test Results 65 files 65 suites 34m 47s ⏱️ Results for commit fe91cfb. |
Addresses #915 — direction 3 ("say so"), the only direction that needs no product decision. Deliberately does NOT close #915: directions 1/2 (render into the cell / hide Run where it cannot show anything) change what Run means for embedded cells and stay open for a product call.
The defect
ActivityLayoutAreas.BuildLog's empty-log branch rendered "Running…" without consultinglog.Status, though its own doc comment says "an empty log on a running activity". Empty terminal logs became a normal outcome after #876/#861 (control results are no longer written to the activity log), so a reader running a rendering cell saw "✓ Done" beside "Running…" and had to decode the contradiction as failure.The fix
Status: Running keeps "Running…"; any terminal status renders an explicit localized "This run produced no output."ui.activityNoOutputkey in bothstrings.en.jsonandstrings.de.json(LocalizationTest enforces parity — 33/33 green).BuildEmptyLogLabel, matching the file's unit-testable-builder pattern.Tests
ActivityProgressViewTest11/11 — 4 new terminal-status theory cases assert the exact rendered text; the running row is now asserted by text too. Release-warnaserrorbuilds clean.What's New entry included (user-visible copy change).
🤖 Generated with Claude Code