test(chat): exercise encrypted attachments and planner jobs through the real daemon #144

Merged
admin merged 16 commits from test/private-chat-integration into dev 2026-10-09 15:41:47 +00:00
Owner

Refs #117, #82. Stacked on #142.

Add a real-daemon integration test using the existing API/worker harness and scripted Ollama model server. Upload a private file, ask a question with private attachment metadata, then ask a follow-up without repeating the metadata. The scripted model explicitly requests private=false in both turns. Verify both jobs are private and successful, streamed tool results finish correctly, and private outputs can be fetched through the authorized API.

Independently fetch raw input/output blobs from the pool, reject plaintext equality and authenticate/decrypt them with sealed.Open plus the persisted node key; recovered bytes must match the expected input and API result. Thus storage encryption checks do not rely only on absence of a word in ciphertext.

Validation: final focused integration test passed three consecutive runs (4.705s total) with pinned Go 1.27.1; gofmt and git diff --check passed. This covers a real local daemon, worker, storage and API, but not Electron UI interaction, an actual LLM or physically separate machines. Full daemon-suite green remains unproven; known baseline cancellation-test failure is documented in #141. Automatic attachment cleanup remains pending. No issues closed.

Refs #117, #82. Stacked on #142. Add a real-daemon integration test using the existing API/worker harness and scripted Ollama model server. Upload a private file, ask a question with private attachment metadata, then ask a follow-up without repeating the metadata. The scripted model explicitly requests private=false in both turns. Verify both jobs are private and successful, streamed tool results finish correctly, and private outputs can be fetched through the authorized API. Independently fetch raw input/output blobs from the pool, reject plaintext equality and authenticate/decrypt them with sealed.Open plus the persisted node key; recovered bytes must match the expected input and API result. Thus storage encryption checks do not rely only on absence of a word in ciphertext. Validation: final focused integration test passed three consecutive runs (4.705s total) with pinned Go 1.27.1; gofmt and git diff --check passed. This covers a real local daemon, worker, storage and API, but not Electron UI interaction, an actual LLM or physically separate machines. Full daemon-suite green remains unproven; known baseline cancellation-test failure is documented in #141. Automatic attachment cleanup remains pending. No issues closed.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Sisyphus/Sisyphus#144