The model settings claimed a saved key and asked the node to reuse it whatever provider or address was now chosen. They now track the service the key was saved for. Job event streams resume after the last event shown, so reopening them repeats nothing. Image previews made from blob URLs are allowed by the page's content policy. The docs no longer speak of a Rust daemon.
1.3 KiB
1.3 KiB
Repository implementation rules
Cross-platform support
- Treat cross-platform behavior as a design requirement for daemon code. Keep domain logic independent of operating-system-specific paths and APIs.
- The daemon is
apps/sisyphusd, written in Go. Build it withmake build; runbin/sisyphusd run. The earlier Rust implementation was retired; do not restore it as the development runtime. - Never hardcode home-directory paths, path separators, or assumptions about a writable current directory. Use Go's
path/filepathand the existing daemon data-directory helpers. - Put persistent node data in the OS-appropriate application data directory. The node's private key is the file
node.keyin that directory, and the SQLite database beside it holds its pool's members and jobs, so protect the directory and both files with restrictive permissions where the platform supports them; rely on the user's inherited ACL on Windows unless a dedicated ACL implementation is introduced. - Isolate unavoidable OS-specific behavior behind small helpers and Go build tags. Keep a portable fallback where possible.
- Add tests for path handling and platform-specific behavior. Verify supported targets in CI before claiming support; the Nix dev shell currently targets Linux and macOS.