fix(desktop): keep shared-compute consumers admitted (WIP: multi-workspace publishing)#2000
Merged
Conversation
Co-authored-by: Mat Balez <60949391+matbalez@users.noreply.github.com> Signed-off-by: Mat Balez <60949391+matbalez@users.noreply.github.com>
michaelneale
marked this pull request as ready for review
July 16, 2026 22:30
Admission previously required a member's mesh status to be fresh (<=120s), so any member whose app went offline dropped out of every serving node's allowlist and reappeared on return, triggering a full stop/model-reload/ start of the mesh node each time. On a busy community serving nodes would churn constantly and freeze the desktop UI during each reload. Membership is the trust boundary; freshness is a liveness signal: - owner_ids_from_events ignores status age: the latest valid owner binding from each current NIP-43 roster member is admitted regardless of how long that member has been offline - mesh_status_filter drops its since bound so the admission query sees an offline member's latest (replaceable) status event - availability_from_events unchanged: routing still requires fresh status - revocation unchanged: a member removed from the roster leaves the allowlist at the next poll regardless of status freshness Tests: stale member stays admitted but excluded from routing; fresh reporter absent from the roster is denied admission.
* origin/main: Fix policy receipts for cold-launch invite links (#2005) Preserve persistent agent audience order (#1989) feat(desktop): create channels in sections (#1996) feat(desktop): graduate community rail (#1995) chore(release): release Buzz Desktop version 0.4.10 (#1997) feat(desktop): onboarding step dots, identity/key page restyle, overflow scroll (#1993) chore(desktop): add AppShell.tsx file-size override to unblock main CI (#1992) feat: add invite QR and mobile direct join (#1957)
The picker previously surfaced mesh-llm's compiled auto_model_pack recommendation, which could suggest sub-4B models and reasoning models that burn hidden thinking tokens under the agent harness. Replace it with Buzz-curated tiers: - 64GB+ rated memory: gemma-4-26B-A4B-it (UD-Q4_K_M), resolved via mesh-llm's remote catalog (entry synthesized locally) - below 64GB: Gemma-4-E4B-it-Q4_K_M Both are non-reasoning instruction models known to survive the harness. The UI now shows the curated picks above the fold and collapses the rest of the catalog behind an 'Advanced' toggle, in a scrollable list.
tlongwell-block
approved these changes
Jul 17, 2026
tlongwell-block
left a comment
Collaborator
There was a problem hiding this comment.
Reviewed at exact head 5f4a420.
Validated the changed catalog picker locally with Playwright (curated recommendations, advanced collapse/expand, and selection), ran the targeted desktop mesh-llm Rust suite (35 passed, 1 ignored), and confirmed required CI is green. No blocking findings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Continuation of #1991 (
fix(desktop): keep shared-compute consumers admitted) — same two commits, pushed to an in-repo branch for direct iteration and testing.until+before_idcursor with stall detection) so admission rosters aren't built from a truncated 100-event status listsincefreshness bound + current-memberauthorsapply_workspacerestores MeshLLM sharing before managed agents and republishes status off the command pathVerification
cargo fmt/clippy --features mesh-llmclean; 33 mesh unit tests pass (incl. new heartbeat-interval and pagination-cursor tests)just mesh-e2e-admissionpasses 3/3 on this branch: trusted member admitted + sees routed model; trusted member inference routed over mesh; non-member sees gossip but inference is rejected (allowlist gates membership and inference)Notes
Membership propagation delay on a freshly joined member-gated relay produces transient
403 You must be a relay memberstatus-publish failures until the roster settles; heartbeats recover automatically once membership lands. Unrelated agent-harness issues observed during testing will be filed separately.