feat(settings): stream location discovery settings #752
No Reviewers
Dismiss Review
Are you sure you want to dismiss this review?
Labels
Clear labels
accessibility
all-platforms
area:agents
area:ai
area:chain
area:ci
area:client
area:daemon
area:p2p
area:project
area:protocol
area:runtime
area:storage
bug
chore
community
dependencies
discussion
discussion/Announcements
discussion/General
discussion/Ideas
discussion/Q&A
discussion/Show and tell
discussion/answered
documentation
duplicate
enhancement
good first issue
help wanted
i18n
infra
invalid
needs:decision
needs:hardware
paired
question
research
security
status:in-review
test
testing
tracking
wontfix
Barrier affecting people with disabilities
Run every platform's packaging and checks on this pull request, not only the three main ones
MCP server, skill, and thinking on the pool
Planner and model providers
Blockchain, SISY, verification
Continuous integration and build workflows
Desktop and web clients
sisyphusd coordinator, worker, scheduler
libp2p hosts, relays, discovery, connections between nodes
Project planning, roadmap, and governance
Protobuf schemas and RPC contracts
Workload execution and environments
Content-addressed storage, IPFS, Kubo, Cluster, S3, names, pinning
Something isn't working
Repository health, templates, Discussions, contributor experience
Updates to actions, Go modules or npm packages
Migrated from GitHub Discussions
GitHub Discussions category: Announcements
GitHub Discussions category: General
GitHub Discussions category: Ideas
GitHub Discussions category: Q&A
GitHub Discussions category: Show and tell
Q&A discussion with an accepted answer
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
Translations and right-to-left layouts
Build, CI, releases
This doesn't seem right
Waits on a decision from both owners
Waits on a machine we do not have yet
Built together by both maintainers, with co-authored commits
Further information is requested
Needs investigation or a design decision
Sealing, keys, access control, tokens, the security model
Built and in an open pull request; closes when it merges
Tests, test harnesses and the rehearsal
Roadmap and meta issues
This will not be worked on
type
Feature
A request, idea, or new functionality (GitHub issue type)
type
Task
A specific piece of work (GitHub issue type)
Milestone
No items
No Milestone
V0: prove the loop
Projects
Clear projects
No projects
Sisyphus roadmap
Done
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Sisyphus/Sisyphus#752
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
The location-discovery stream slice for #741, now based directly on
devafter #751 was merged. Saved and running location-discovery settings are sent as an authenticated typed shared-state domain, and successful saves notify subscribers only after persistence.The This Node settings view follows the stream with bounded reconnect backoff, preserves unsaved edits when another client changes settings, and makes a one-shot fallback read when the stream is initially unavailable. Missing Electron-only management metadata is retried on the first healthy stream event; reconnect failures stay silent. No polling or secrets are added to the payload.
Verification
go test ./apps/sisyphusd/apinpm --prefix apps/sisyphus run typechecknpm --prefix apps/sisyphus test(235 passed)git diff --check/cc @rvnminers-A-and-N
Refreshed this PR onto the current #751 head, so it no longer carries stale model-profile/lending/files ancestry. The focused API tests, all 235 client tests, typecheck, production build,
make lint,actionlint, gofmt and diff checks pass locally. The existing Austin review request is preserved; fresh CI is starting./cc @rvnminers-A-and-N
Branch maintenance: GitHub reported a real merge conflict because this branch still carried the pre-refresh #751 history. I transplanted the two Location Discovery commits onto the current #751 head, preserving the location controls and E2E coverage. Local focused API tests, race tests, all 235 renderer tests, typecheck, production build and diff checks pass. The Austin reviewer request is preserved; fresh CI is running. /cc @rvnminers-A-and-N
Thanks Lior. The daemon side looks good: the notify comes after the store write, the auth is the same, and the two-subscriber test reads well.
CI's coverage gate is red on aa7c87c. The uncovered lines are local.go:555-556, the LOCATION_DISCOVERY snapshot error branch. #751 got its own failing-store case, but this domain only gets one in #762, which sits above #753. Could you add that case here so 752 is green on its own?
I think the card can also get stuck read-only. Without metadata,
applysetsconfigurable: false, and the metadata read only retries on a disconnect or a domain error, never once the stream is healthy. If Settings opens while the daemon is still starting, the initial read fails, the reads at reconnect time fail too, and then the stream connects. The controls stay disabled until the next drop. Retrying the metadata read on the first good stream event, while it's still missing, would fix that.Related: every disconnect now makes a fresh read that toasts on failure, so a node restart toasts at each backoff step. Was that intended, or should reconnect-time failures be silent the way model lending handles them?
Addressed both review points. The LOCATION_DISCOVERY unavailable-snapshot branch now has a direct test in this PR. If the initial management-metadata request fails during startup, the first healthy stream event triggers a one-shot retry; reconnect retries are silent, and known metadata is not fetched repeatedly. No periodic polling was added. The renderer tests, typecheck, production build, and focused API coverage check pass locally; fresh CI is running.
/cc @rvnminers-A-and-N