secret list gives each secret's own creation and last-update times (closes #142)
check / check (push) Canceled after 0s
check / check (push) Canceled after 0s
secret list and secret list --json gave the time of the listing as every secret's creation and last-update time, because Secret.LoadMetadata set both to the current time. It now reads file modification times, so listing still needs no passphrase: the last update is when the secret's current file was written, and the creation is when its oldest version's value.age was written. GetSecretObject no longer loads the times, so secret get reads no more files than before and keeps its error for a missing current file; secret list calls LoadMetadata itself. Judgement call: the creation time comes from value.age, not from the oldest version's directory, whose time changes when the next add rewrites that version's metadata.age. Model: opus-5-5
This commit is contained in:
@@ -18,6 +18,15 @@ https://git.eeqj.de/sneak/secret/milestone/12
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-10-14: `secret list` gives each secret's own creation and last-update
|
||||
times (https://git.eeqj.de/sneak/secret/issues/142). It gave the time of the
|
||||
listing for both, which `Secret.LoadMetadata` set to the current time.
|
||||
`LoadMetadata` now reads file modification times, so listing still needs no
|
||||
passphrase: the last update is when the secret's `current` file was written,
|
||||
and the creation is when its oldest version's `value.age` was written. That
|
||||
version's directory would be wrong, because the next add rewrites the
|
||||
version's `metadata.age` in it. `GetSecretObject`, which `secret get` also
|
||||
uses, no longer loads the times; `secret list` loads them itself.
|
||||
- 2026-10-14: A `secret add --force` that cannot unlock the vault, given a wrong
|
||||
passphrase or mnemonic, leaves the secret as it was
|
||||
(https://git.eeqj.de/sneak/secret/issues/136). The new version used to be
|
||||
|
||||
Reference in New Issue
Block a user