Skip to content

feat(channels): show and filter recorded transport scopes - #89

Closed
n30nex wants to merge 28 commits into
MeshCore-Beacon:devfrom
n30nex:codex/beacon-channel-scope-tags
Closed

n30nex wants to merge 28 commits into
MeshCore-Beacon:devfrom
n30nex:codex/beacon-channel-scope-tags

Conversation

@n30nex

@n30nex n30nex commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Channel history and live messages show the packet scope consistently and support scope filtering and packet investigation. Scope filtering is server-side because the history is paginated: filtering only loaded pages would hide older matches. Loading older pages preserves the newest live page; overflow invalidation keeps loaded history. WS hearing counts use observer sets, not a nonexistent observationCount field. English/French text is included.

Closes #88. Parent c0c11829bc6013ff90294557c3150844a5cfa09c, head 19bbbd124982584841e76a4f6e14a61474c87e3a. Focused diff.

Windows build/lint/full tests and published-head checks pass (upstream web CodeQL is skipped). The combined native Pi web build/lint passes all 955 tests at eb241ca7, paired with server 397d76b3. Desktop/phone, English/French, keyboard, navigation and public source/asset checks pass. Release scope and recovery / running preview. Atlas is excluded from this release cut.

Maintainers retain acceptance, merges, tags and production release.

@n30nex

n30nex commented Sep 28, 2026

Copy link
Copy Markdown
Contributor Author

@MrAlders0n could you and Claude review this next channel-scope slice? The focused parent comparison is in the description. This follows #87 and needs server #176. It adds the scope filter, message labels and packet action in English and French.

The combined build is running at https://canadaverse.org/beacon-dev/?tab=Channels with the standard Public key enabled. Native PostgreSQL/server checks, all 935 web tests and the published-head build pass. Desktop/phone filtering, live delivery and packet inspection were checked; exact source and rollback are recorded in the changelog. Every earlier candidate remains included. The updated shared roadmap also separates the optional MeshMapper boundary import from later crossing analytics.

@n30nex
n30nex force-pushed the codex/beacon-channel-scope-tags branch from e7618fd to 037858b Compare September 28, 2026 22:38
@MrAlders0n

Copy link
Copy Markdown
Member

The contract matches server #176, and it doesn't overlap the ws opt-in change on dev. One bug:

  • MessagePanel.tsx:79: maxPages: MAX_INFINITE_PAGES is new here, but page 0 holds the newest messages and receives live appends. After about 20 "load older" fetches, TanStack drops page 0, and the newest messages and live arrivals disappear from the bottom of the chat. Please remove maxPages, or keep live messages in a separate buffer like the packets list does.

Also:

  • The scope filter goes into the query key and the request (ChannelList.tsx:100, client.ts:152). Our convention is client-side filters. Server-side is reasonable for paged history, but please say so in the description.
  • The overflow path calls resetQueries, which throws away older pages the user already loaded.
  • The heardCounts comment implies the WS event carries observationCount, but it doesn't.
  • The new test file is minified onto single lines.

@n30nex
n30nex force-pushed the codex/beacon-channel-scope-tags branch from 037858b to 19bbbd1 Compare September 30, 2026 10:47
@n30nex

n30nex commented Sep 30, 2026

Copy link
Copy Markdown
Contributor Author

@MrAlders0n / Claude: September 30 follow-up at 19bbbd12.

Removed maxPages so older paging cannot evict the newest/live page, and changed overflow recovery to invalidation so existing pages remain. Added the >20-page regression, corrected the WS comment and formatted the tests. The description explains why paged scope filtering is server-side.

Windows build/lint/full tests and published-head checks pass (upstream web CodeQL is skipped). The combined native Pi web build/lint passes all 955 tests at eb241ca7, paired with server 397d76b3. Desktop/phone, English/French, keyboard, navigation and public source/asset checks pass. Release scope and recovery / running preview. Atlas is excluded from this release cut.

Please re-review the current head when convenient. No upstream merge or tag was performed.

MrAlders0n pushed a commit that referenced this pull request Sep 30, 2026
)

Lands the stacked web PRs #75, #79, #80, #81, #83, #85, #87, #89, #92, #95 and #99 in one squash. Server counterparts #166-#176 are merged. Remaining review items follow in a fix PR.
@MrAlders0n

Copy link
Copy Markdown
Member

Landed as part of #99 (squash d259be5). Remaining review items will be handled in a follow-up fix PR.

@MrAlders0n MrAlders0n closed this Sep 30, 2026
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.

Show and filter channel-message transport scopes

2 participants