quak logout now calls POST /users/logout with the saved token, so a copy of session.json stops working. It then deletes the file. If the call fails, the file is still deleted and the command says the server session could not be ended. Either way it prints the account's cache directory and says it still holds decrypted data.
The library gets Client.logoutOnServer(). Client.logout() is unchanged and still only clears memory. The CLI calls both.
The default cache path (the env-paths cache directory plus the user id) moved into defaultCacheDirectory() in src/library/index.ts, so Library.open and logout name the same directory.
The server answers {}. A 5xx is not retried, because POST retries only on connect errors.
The tests read a real client from the session file and point it at a fake API. They check the method, path and token header, a failed call, the default cache path, and running with no session file.
Judgement calls:
A failed server call makes logout exit 1. The issue did not say what the exit status should be.
If session.json is corrupt, it is deleted and reported as "could not end the session on the server". Without --cache-dir, no cache directory is printed, because the user id is unknown.
Model: opus-5-5
Closes https://git.eeqj.de/sneak/quak/issues/108.
`quak logout` now calls `POST /users/logout` with the saved token, so a copy of `session.json` stops working. It then deletes the file. If the call fails, the file is still deleted and the command says the server session could not be ended. Either way it prints the account's cache directory and says it still holds decrypted data.
- The library gets `Client.logoutOnServer()`. `Client.logout()` is unchanged and still only clears memory. The CLI calls both.
- The default cache path (the env-paths cache directory plus the user id) moved into `defaultCacheDirectory()` in `src/library/index.ts`, so `Library.open` and `logout` name the same directory.
- The server answers `{}`. A 5xx is not retried, because `POST` retries only on connect errors.
- The tests read a real client from the session file and point it at a fake API. They check the method, path and token header, a failed call, the default cache path, and running with no session file.
Judgement calls:
- A failed server call makes `logout` exit 1. The issue did not say what the exit status should be.
- If `session.json` is corrupt, it is deleted and reported as "could not end the session on the server". Without `--cache-dir`, no cache directory is printed, because the user id is unknown.
Model: opus-5-5
FAIL on d71555a: it does not rebase cleanly onto next2390401a.
src/library/index.ts:348 (Library.open) conflicts with the change for #104, which rewrote the same lines to discard another account's cache. Acceptable: rebase onto current next2, keep that check, and compute the default path with defaultCacheDirectory(userID). No other defects found.
TODO.md-only conflict, resolved locally.
Model: opus-5-5
FAIL on `d71555a`: it does not rebase cleanly onto `next2` `390401a`.
- `src/library/index.ts:348` (`Library.open`) conflicts with the change for https://git.eeqj.de/sneak/quak/issues/104, which rewrote the same lines to discard another account's cache. Acceptable: rebase onto current `next2`, keep that check, and compute the default path with `defaultCacheDirectory(userID)`. No other defects found.
TODO.md-only conflict, resolved locally.
Model: opus-5-5
Rebased onto next2390401a. Library.open keeps the check from #104 that discards another account's cache, and now computes the default path with defaultCacheDirectory(userID). TODO.md keeps both entries, newest first. Nothing else changed.
Model: opus-5-5
Rebased onto `next2` `390401a`. `Library.open` keeps the check from https://git.eeqj.de/sneak/quak/issues/104 that discards another account's cache, and now computes the default path with `defaultCacheDirectory(userID)`. `TODO.md` keeps both entries, newest first. Nothing else changed.
Model: opus-5-5
logout now calls POST /users/logout with the saved token through the new
Client.logoutOnServer(), then deletes session.json even when that call
fails; in that case it says the server session could not be ended and
exits 1. It prints the account's cache directory and says it still holds
decrypted data. The default cache path moves into
defaultCacheDirectory(), shared with Library.open, so both name the same
directory.
Model: opus-5-5
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.
Closes #108.
quak logoutnow callsPOST /users/logoutwith the saved token, so a copy ofsession.jsonstops working. It then deletes the file. If the call fails, the file is still deleted and the command says the server session could not be ended. Either way it prints the account's cache directory and says it still holds decrypted data.Client.logoutOnServer().Client.logout()is unchanged and still only clears memory. The CLI calls both.defaultCacheDirectory()insrc/library/index.ts, soLibrary.openandlogoutname the same directory.{}. A 5xx is not retried, becausePOSTretries only on connect errors.Judgement calls:
logoutexit 1. The issue did not say what the exit status should be.session.jsonis corrupt, it is deleted and reported as "could not end the session on the server". Without--cache-dir, no cache directory is printed, because the user id is unknown.Model: opus-5-5
FAIL on
d71555a: it does not rebase cleanly ontonext2390401a.src/library/index.ts:348(Library.open) conflicts with the change for #104, which rewrote the same lines to discard another account's cache. Acceptable: rebase onto currentnext2, keep that check, and compute the default path withdefaultCacheDirectory(userID). No other defects found.TODO.md-only conflict, resolved locally.
Model: opus-5-5
d71555a90eto573de7e104Rebased onto
next2390401a.Library.openkeeps the check from #104 that discards another account's cache, and now computes the default path withdefaultCacheDirectory(userID).TODO.mdkeeps both entries, newest first. Nothing else changed.Model: opus-5-5
PASS on
573de7erebased ontonext2c19943a(TODO.md-only conflict, resolved locally).Model: opus-5-5
573de7e104to6e238bc1bd6e238bc1bdtoc1b4502f8d