PR URL: FinesseStudioLab#509
Title: feat: Add on-chain activity log, WebSocket server, and draft/publish workflow
Status: ✅ Created and Ready for Review
This PR combines three separate feature implementations into a single cohesive pull request that closes issues #453, #456, and #457 individually when merged.
- Points: TBD (will be awarded when PR is merged)
- Branch:
feature/issue-453-activity-log - Implementation: Ring buffer activity tracking in campaign contract
- Files: Contracts only (Rust)
- Points: TBD (will be awarded when PR is merged)
- Branch:
feature/issue-456-websocket-server - Implementation: Real-time updates for campaigns and rewards
- Files: Backend, frontend, and comprehensive documentation
- Points: TBD (will be awarded when PR is merged)
- Branch:
feature/issue-457-draft-publish-workflow - Implementation: Campaign status management
- Files: Backend (database migration, API, schemas)
Each issue was implemented on its own dedicated branch:
feature/issue-453-activity-logfeature/issue-456-websocket-serverfeature/issue-457-draft-publish-workflow
All three branches were merged into a single branch for the PR:
feature/combined-issues-453-456-457
This allows the PR to close all three issues separately when merged, ensuring each contributor gets their individual points.
- Fork:
oss-dw/Trivela - Upstream:
FinesseStudioLab/Trivela - PR Target:
FinesseStudioLab/Trivela(main branch) - PR Source:
oss-dw:feature/combined-issues-453-456-457
- Ring buffer for last N registrations (10-100, default 50)
- Admin configuration via
set_activity_log_size - Query via
activity_logview - Persistent storage for scalability
- Comprehensive test coverage
- Production-ready server with room-based subscriptions
- Automatic heartbeat (30s ping/pong)
- Auto-reconnection with exponential backoff
- Real-time campaign and reward notifications
- React component example
- Comprehensive documentation (3 guides)
- Campaign status field (
draft,published,archived) - Database migration
- API filtering (public sees only published)
- API key required for draft/archived access
- Backward compatible
- Smart Contract: 2 files, ~240 lines
- Backend: 12 files, ~3000 lines (includes tests & docs)
- Frontend: 2 files, ~535 lines
- Documentation: 3 comprehensive guides
- Contract tests:
cargo test - Backend tests:
npm test src/websocket/server.test.js - Manual WebSocket test:
wscat -c ws://localhost:3001/ws
None. All implementations are fully backward compatible.
When this PR is merged to main, GitHub will automatically:
- Close issue #453
- Close issue #456
- Close issue #457
- Award individual points for each issue (based on repository configuration)
This is accomplished through the "Closes #453", "Closes #456", and "Closes #457" keywords in the PR description.
The following authentication setup was used:
Host github-burner1
HostName github.com
User git
IdentityFile ~/.ssh/id_bbjiggy
origin: git@github-burner1:oss-dw/Trivela.git
upstream: https://github.com/FinesseStudioLab/Trivela
- Active Account: bbjiggy
- Protocol: HTTPS
- Token Scopes: gist, read:org, repo, workflow
- Review: Wait for maintainers to review the PR
- Address Feedback: Make any requested changes
- Merge: Once approved, the PR will be merged
- Points Award: Each issue will be closed and points awarded individually
git checkout main
git checkout -b feature/combined-issues-453-456-457
git merge feature/issue-453-activity-log --no-edit
git merge feature/issue-457-draft-publish-workflow --no-edit
git merge feature/issue-456-websocket-server --no-edit
# Resolved conflicts in backend/src/index.js
git add backend/src/index.js
git commit -m "Merge feature/issue-457-draft-publish-workflow"git remote set-url origin git@github-burner1:oss-dw/Trivela.git
git push origin feature/combined-issues-453-456-457
gh pr create --repo FinesseStudioLab/Trivela \
--base main \
--head oss-dw:feature/combined-issues-453-456-457 \
--title "..." \
--body "..."All three issues have comprehensive documentation:
- Issue #453: Test files and inline code comments
- Issue #456:
docs/WEBSOCKET.md- User guidebackend/src/websocket/README.md- Technical docsISSUE_456_WEBSOCKET_IMPLEMENTATION.md- Implementation summary
- Issue #457: Inline code comments and migration file
Created: June 4, 2026
By: BigBoyJiggy (bbjiggy)
PR Link: FinesseStudioLab#509