Skip to content

feat: per-channel message list for Solid Cable#60

Merged
eclectic-coding merged 4 commits into
mainfrom
feat/cable-channel-messages
May 26, 2026
Merged

feat: per-channel message list for Solid Cable#60
eclectic-coding merged 4 commits into
mainfrom
feat/cable-channel-messages

Conversation

@eclectic-coding
Copy link
Copy Markdown
Owner

@eclectic-coding eclectic-coding commented May 26, 2026

Closes #33

Summary

  • Adds GET /cable/channels/:channel_hash — paginated, reverse-chronological list of SolidCable::Message records for a specific channel
  • Each row shows message ID, payload preview (truncated to 120 chars), and relative sent time with exact timestamp on hover
  • Channel names in the channel browser (GET /cable) are now links using channel_hash as the URL-safe identifier, avoiding encoding issues with JSON-style channel strings
  • ROADMAP updated to remove shipped "Channel browser" item; README Solid Cable section updated to reflect current feature set

Test plan

  • Seed cable messages (bundle exec rake dev:seed) and visit /cable — channel names should be clickable links
  • Click a channel — should open the message list with paginated rows
  • Verify payload preview truncates long payloads at 120 chars with ellipsis
  • Verify hover on sent-time cell shows exact timestamp
  • Visit /cable/channels/<unknown_hash> — should render empty state
  • bundle exec rake passes clean

🤖 Generated with Claude Code

GET /cable/channels/:channel_hash shows a paginated reverse-chronological
list of SolidCable::Message records for a specific channel, with payload
preview (120 chars) and relative sent time. Channel names in the channel
browser are now links using channel_hash as the URL-safe identifier.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented May 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.29%. Comparing base (c24e34f) to head (62ae75e).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main      #60      +/-   ##
==========================================
+ Coverage   99.10%   99.29%   +0.18%     
==========================================
  Files          32       33       +1     
  Lines         559      565       +6     
==========================================
+ Hits          554      561       +7     
+ Misses          5        4       -1     
Files with missing lines Coverage Δ
...pp/controllers/solid_stack_web/cable_controller.rb 100.00% <100.00%> (ø)
...llers/solid_stack_web/cable_messages_controller.rb 100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

eclectic-coding and others added 3 commits May 26, 2026 12:14
Covers index action: 200 response, channel isolation, newest-first ordering,
channel name as page title, payload truncation, back link, and empty state
for unknown channel_hash.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Covers the JSON happy path (label + pretty-print), the plain-text fallback,
and invalid-byte replacement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
README Solid Cable section gains a proper ### Features list matching
the Solid Queue and Solid Cache sections. ROADMAP removes the
now-shipped per-channel message list item from v0.6.0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@eclectic-coding eclectic-coding merged commit 5687fbe into main May 26, 2026
4 checks passed
@eclectic-coding eclectic-coding deleted the feat/cable-channel-messages branch May 26, 2026 16:20
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.

[v0.6.0] Cable: per-channel message list

2 participants