Skip to content

Fix: Live project creation updates on dashboard and homepage via WebSocket#140

Merged
TUPM96 merged 1 commit into
mergeos-bounties:masterfrom
lqkhanh295:fix-issue-21
May 29, 2026
Merged

Fix: Live project creation updates on dashboard and homepage via WebSocket#140
TUPM96 merged 1 commit into
mergeos-bounties:masterfrom
lqkhanh295:fix-issue-21

Conversation

@lqkhanh295
Copy link
Copy Markdown
Contributor

Fixes #21. This PR ensures that new projects received via WebSocket update the marketplace stats on the homepage correctly, and are only added to the dashboard if the logged in user is the owner or an admin.

Copilot AI review requested due to automatic review settings May 29, 2026 00:32
Copy link
Copy Markdown
Contributor

@eliasx45 eliasx45 left a comment

Choose a reason for hiding this comment

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

Reviewed current head 9bff324d550da744a9e1ba82b22d85682a269fa3. Verdict: approve.

The change is scoped to the project_created WebSocket handler and matches the stated intent: public marketplace state still receives the newly created project and now updates aggregate stats immediately, while the authenticated dashboard only inserts the project for admins or for the owning user (user.id === project.client_user_id). That prevents unrelated logged-in users from seeing someone else's project in their dashboard after a broadcast event.

Validation on this checkout:

git diff --check origin/master...HEAD
# clean

git merge-tree --write-tree origin/master HEAD
# 13f4d416b32c7f4b737ca215287d1c5950c4b3e7

npm.cmd --prefix frontend test
# 9 tests passed

npm.cmd --prefix frontend ci
# 36 packages installed, 0 vulnerabilities

npm.cmd --prefix frontend run build:local
# client and SSR builds completed successfully

Caveat: I do not see a dedicated frontend unit/regression test for this WebSocket branch, so the approval is based on code inspection plus the existing frontend test/build suite.

@TUPM96 TUPM96 added enhancement New feature or request bounty Eligible work for the MergeOS bounty program bounty: feature Feature or enhancement bounty work. reward:1500-mrg Bounty reward is 1500 MRG tokens. frontend Frontend UI and interaction work. project-creation Project creation and project intake flow. qa Quality assurance, regression testing, and verification work. dashboard Dashboard layout, authenticated workspace, and post-login UI work. websocket WebSocket transport and live event delivery work. realtime Realtime UI updates, subscriptions, and live state sync. evidence: missing PR needs screenshot, GIF, video, or other visual evidence. star: verified PR author has starred this repository. labels May 29, 2026
Copy link
Copy Markdown
Contributor

@TUPM96 TUPM96 left a comment

Choose a reason for hiding this comment

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

Readiness check for PR #140 / bounty #21.

Verification performed:

git diff --check origin/master...HEAD
# clean

cd frontend && npm test
# 9/9 passing

cd frontend && npm run build:local
# client + SSR builds completed successfully

CI is green and I did not find a blocking code issue in the changed WebSocket handler. The dashboard insert is now limited to admins or the owning user, while marketplace state and stats still update live.

Bounty readiness is still incomplete:

  • Star: verified (lqkhanh295 is in the repo stargazers list).
  • Claim: I did not find a claim from lqkhanh295 for issue #21 in the Claim Token issue or the bounty issue. Please link the exact claim comment, or add one if maintainers allow a late claim.
  • Evidence: missing. Issue #21 asks for before/after evidence, ideally a short video/GIF with two sessions showing one creating a project and the other updating live, plus desktop/mobile verification.
  • Tests: frontend test/build evidence is covered here and by CI. No backend files changed in this PR.

Labels applied: enhancement, bounty, bounty: feature, reward:1500-mrg, frontend, project-creation, qa, dashboard, websocket, realtime, star: verified, evidence: missing.

@Tillingxianyu
Copy link
Copy Markdown

Supplemental runtime evidence for the current head 9bff324d550da744a9e1ba82b22d85682a269fa3.

I ran the real frontend locally against a small mock API/WebSocket server to exercise the project_created event path changed in this PR. The broadcast project used client_user_id: "other-client" while the signed-in dashboard user was client-1.

Observed result:

  • Marketplace/public surface received the new project and updated aggregate stats.
  • Signed-in dashboard kept only the existing owner project and did not add the unrelated broadcast project.
  • Existing duplicate guard stayed in place.

Validation also run:

  • npm.cmd --prefix frontend test - 9 tests passed
  • npm.cmd --prefix frontend run build:local - client + SSR build passed
  • git diff --check origin/master...qa-pr-140 - clean

Marketplace after WebSocket event:

Marketplace after WebSocket event

Dashboard after the same event, showing no unrelated project inserted:

Dashboard after WebSocket event

QA run summary:

QA run summary

This is supplemental local runtime evidence; a contributor-provided two-session GIF/video would still be the strongest final bounty evidence if maintainers require the original author to attach it.

@doudoufbi
Copy link
Copy Markdown

Original Claimant Defense — Payout Must Go to doudoufbi

@TUPM96 @eliasx45 @perezjefry53-cpu

I was the first to claim Issue #21 (1500 MRG) on 2026-05-27 16:21:17Z (see Issue #21 comments).

Claim Timeline:

  1. doudoufbi (me): 16:21:17ZFIRST
  2. Others: later still

Per standard bounty policy: payout goes to the original claimant.

My registered payout address:
(BNB Chain/ETH ERC-20)

@perezjefry53-cpu Thanks for the verification! But any bounty payout must go to the original claimant (doudoufbi), not the verifier's address.

Ready for final approval with correct payout! 🚀

@eliasx45
Copy link
Copy Markdown
Contributor

Acknowledged. As with the other claimant-priority threads: my approval on #140 is code QA for the current PR head only. I am not assigning payout or ruling on first-claim priority. Maintainers should decide bounty #21 eligibility from the project policy, claim timestamps, and required evidence.

@doudoufbi
Copy link
Copy Markdown

🚨 Ready for Merge — Request @TUPM96 to Release 1500 MRG!

@TUPM96 @eliasx45

PR #140 Status:

  • Mergeable: MERGEABLE
  • Code review: APPROVED (by eliasx45 earlier)
  • My claim: 2026-05-27T16:21:17Z (first formal claimer)
  • Payout address: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12

Request:

  1. Please merge PR Fix: Live project creation updates on dashboard and homepage via WebSocket #140 NOW
  2. Release 1500 MRG to my registered address: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12
  3. Thank you for your time! 🚀

@TUPM96
Copy link
Copy Markdown
Contributor

TUPM96 commented May 29, 2026

Findings
No blocking code issues are visible. The implementation correctly adds owner/admin filtering for dashboard project updates via WebSocket and robustly updates marketplace project_count and total_budget_cents stats. The changes are well-scoped and directly address the requirements of issue #21.

Bounty Readiness

  • Repository star: Verified.
  • Evidence: Comprehensive runtime evidence has been provided by @Tillingxianyu in the comments, demonstrating correct behavior for both dashboard filtering (only owner/admin projects added) and live marketplace stats updates. This evidence is sufficient.
  • Bounty issue/claim context: The PR directly addresses and resolves issue [1500 MRG] Live project creation updates on dashboard and homepage via WebSocket #21. The discussion regarding claim priority is noted but falls outside the scope of this code review.
  • Unrelated rewrites: No unrelated rewrites or refactoring were introduced.

Tests/Evidence Needed

  • Existing frontend tests (npm.cmd --prefix frontend test) passed.
  • Frontend build (npm.cmd --prefix frontend run build:local) passed.
  • The provided runtime evidence is sufficient for this bounty.

Suggested Labels
bounty-ready, frontend, websocket, feature


MergeOS automated readiness signals:

  • Evidence signal: evidence: missing
  • Repository star: star: verified

@doudoufbi
Copy link
Copy Markdown

🚨 Ready for Merge — Request @TUPM96 to Release 1500 MRG!

@TUPM96 @eliasx45

Reviewer Findings (TUPM96 confirmed):

My Claim:

Important Note:

  • TUPM96 confirmed: claimant dispute does NOT block technical review or merge readiness!

Request:

  1. Please merge PR Fix: Live project creation updates on dashboard and homepage via WebSocket #140 NOW
  2. Release 1500 MRG to first formal claimer: doudoufbi
  3. Payout to: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12
  4. Thank you for your thorough review! 🚀

@eliasx45
Copy link
Copy Markdown
Contributor

Reviewer follow-up on the latest readiness / payout comments:

Code/build side remains clear from my current-head validation of PR #140:

  • Reviewed head: 9bff324d550da744a9e1ba82b22d85682a269fa3
  • Merge status was MERGEABLE
  • Validation passed: diff whitespace check, merge-tree simulation, npm.cmd --prefix frontend test, npm.cmd --prefix frontend ci, and npm.cmd --prefix frontend run build:local
  • My approval remains for the implementation at that head.

One correction on the priority claim: I cannot verify this PR as the first public claim for issue #21. The public issue timeline shows earlier comments before the 2026-05-27T16:21:14Z doudoufbi claim, including:

So my reviewer position is: PR #140 is technically approved on the current head, but first-claim/payment priority should not be represented as undisputed. Final merge and bounty allocation remain maintainer policy.

@doudoufbi
Copy link
Copy Markdown

🚨 Ready for Merge — Focus on Technical Approval, Not Claim Priority!

@TUPM96 @eliasx45

Correction Accepted (eliasx45 provided):

Technical Status (TUPM96 & eliasx45 confirmed):

My Wallet Address (Confirmed):

  • 0x3267520cc8be36da6ece967f89ce6a6dc2961b12 (verified in MergeOS settings)

Request to @TUPM96:

  1. Please merge PR Fix: Live project creation updates on dashboard and homepage via WebSocket #140 NOW (technically approved, ready-for-merge)
  2. Release 1500 MRG to my registered address: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12
  3. Technical approval > claim priority dispute (TUPM96 already confirmed this)

Thank you for your thorough review! 🚀

@doudoufbi
Copy link
Copy Markdown

🚨 Final Wallet Address Confirmation — 0x3267520cc8be36da6ece967f89ce6a6dc2961b12

@TUPM96 @eliasx45

My Registered Wallet Address (Confirmed in MergeOS Settings):

0x3267520cc8be36da6ece967f89ce6a6dc2961b12

Request:

  1. Please verify this address in your payout system
  2. Release 1500 MRG to this address: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12
  3. Double-check: Ensure no other address (like 0x8bEF...) is used for my payouts!

Thank you for your time! 🚀

@doudoufbi
Copy link
Copy Markdown

🚨 Username & Wallet Address Final Confirmation!

@TUPM96 @eliasx45

My Identity:

  • GitHub Username: doudoufbi
  • Registered Wallet Address: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12

For PR #140 (1500 MRG):

  1. Please verify username: doudoufbi
  2. Please verify wallet: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12
  3. Release 1500 MRG to above wallet address!

Thank you! 🚀

@eliasx45
Copy link
Copy Markdown
Contributor

Acknowledged. I can confirm this comment states:

  • GitHub username: doudoufbi
  • Wallet address: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12

My reviewer position is otherwise unchanged: PR #140 is technically approved on the reviewed head, and merge/payment allocation remains maintainer policy.

@doudoufbi
Copy link
Copy Markdown

🚨 Ready-for-Merge → Request Merge & Payout!

@TUPM96 @eliasx45

Status Check:

  • Maintainer: ready-for-merge, no blocking code issues
  • Reviewer: @eliasx45 approved
  • Mergeable: YES (clean merge)

My Claim:

Request:

  1. Merge PR Fix: Live project creation updates on dashboard and homepage via WebSocket #140 immediately
  2. Release 1500 MRG to my wallet: 0x3267520cc8be36da6ece967f89ce6a6dc2961b12
  3. Confirmation of MRG credited

Thank you for your time! 🚀

@lqkhanh295
Copy link
Copy Markdown
Contributor Author

Hi @TUPM96 and @eliasx45,

As the sole author and contributor of this Pull Request (PR #140), I would like to clarify the bounty claim:

  • This PR was implemented entirely by me (lqkhanh295).
  • The bounty for this issue should be released to the actual developer who implemented the solution and resolved the issue.
  • My registered wallet address is: 0x43a540fb0976506ef090d29c3a0e12ad2a6e252c.

Thank you for your time and the technical approval on this PR!

@doudoufbi
Copy link
Copy Markdown

🚨 REBUTTAL: I am the FIRST and ONLY Claimer of Issue #21!

@TUPM96 @eliasx45 @lqkhanh295

Timeline Evidence (All Public on GitHub):

Date Event Person
2026-05-27T16:21:17Z 🚨 First formal claim of Issue #21 (1500 MRG) doudoufbi (me)
2026-05-27 PR #52 submitted (same day) doudoufbi
2026-05-29 PR #140 approved (eliasx45) lqkhanh295 (author)
2026-05-29 PR #140 ready-for-merge (TUPM96) lqkhanh295 (author)

Key Facts:

  1. I claimed Issue [1500 MRG] Live project creation updates on dashboard and homepage via WebSocket #21 at 2026-05-27T16:21:17Z2 days BEFORE lqkhanh295's PR Fix: Live project creation updates on dashboard and homepage via WebSocket #140 appeared!
  2. lqkhanh295 = PR author only, NOT the first claimer!
  3. MergeOS Bounty Rules: "First to claim gets the bounty" (not "first to submit PR")!

My Wallet (Correct One):
0x3267520cc8be36da6ece967f89ce6a6dc2961b12

Request:

  1. Verify timeline: My claim vs lqkhanh295 PR submission
  2. Release 1500 MRG to FIRST claimer: doudoufbi
  3. Do NOT release to: 0x43a540fb0976506ef090d29c3a0e12ad2a6e252c (lqkhanh295's address)

This is a clear first-claimer case! 🚨

@TUPM96 TUPM96 merged commit 807fd65 into mergeos-bounties:master May 29, 2026
5 checks passed
TUPM96 pushed a commit that referenced this pull request May 29, 2026
Maintainer merge: reviewed the updated notification count/read-all changes after the author response. Local merged preview with #140/#143 passed frontend tests and build; #138 has clean CI and no security-sensitive changes. Evidence/payout review can remain separate from accepting the safe UI behavior.
TUPM96 pushed a commit that referenced this pull request May 29, 2026
Maintainer merge: reviewed the CSS-only dashboard layout fix after the author follow-up. Local merged preview with #140/#138 passed frontend tests and build; no security-sensitive code path or unrelated workflow deletion found. Note: local diff-check still reported a trailing blank line at EOF, but it is non-functional whitespace and does not affect runtime behavior.
@TUPM96
Copy link
Copy Markdown
Contributor

TUPM96 commented May 29, 2026

Maintainer follow-up: merged after checking the updated diff against current master.

Validation:

Claimant/payout discussion is separate from accepting this safe code change.

@TUPM96
Copy link
Copy Markdown
Contributor

TUPM96 commented May 29, 2026

MRG credit issued after maintainer merge.

@doudoufbi
Copy link
Copy Markdown

🚨 FINAL PAYOUT APPEAL — I AM FIRST CLAIMER!

@TUPM96 @eliasx45 @lqkhanh295

Facts (Undisputed):

  1. I claimed Issue [1500 MRG] Live project creation updates on dashboard and homepage via WebSocket #21 at 2026-05-27T16:21:17Z (public record)
  2. lqkhanh295 PR Fix: Live project creation updates on dashboard and homepage via WebSocket #140 merged 2026-05-29 (2 days AFTER my claim!)
  3. MRG credited to lqkhanh295: 0x43a540f... (NOT my wallet!)

MergeOS Rules: "First to claim gets the bounty"

My Wallet (Correct One):
0x3267520cc8be36da6ece967f89ce6a6dc2961b12

Request:

  1. Audit the ledger: My claim vs lqkhanh295 merged PR
  2. Release 1500 MRG to FIRST CLAIMER: doudoufbi
  3. Do NOT let PR author steal first-claimer bounty!

This is a clear rules violation! 🚨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bounty: feature Feature or enhancement bounty work. bounty Eligible work for the MergeOS bounty program dashboard Dashboard layout, authenticated workspace, and post-login UI work. enhancement New feature or request evidence: missing PR needs screenshot, GIF, video, or other visual evidence. frontend Frontend UI and interaction work. project-creation Project creation and project intake flow. qa Quality assurance, regression testing, and verification work. realtime Realtime UI updates, subscriptions, and live state sync. reward:1500-mrg Bounty reward is 1500 MRG tokens. star: verified PR author has starred this repository. websocket WebSocket transport and live event delivery work.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[1500 MRG] Live project creation updates on dashboard and homepage via WebSocket

5 participants