smcli: login-item support + convert command (notes -> username/password/apikey)
ci / vet (push) Successful in 36s

Founder follow-up: lifted items restructured to proper login items
(first-class username/password/URIs, remainder as named custom fields).
Classified from the env-key semantics; zero data loss.
Ticket: https://projects.knownelement.com/issues/829
This commit is contained in:
2026-09-06 16:53:22 -05:00
parent ee52682499
commit 0dcf41a839
5 changed files with 177 additions and 28 deletions
+4 -6
View File
@@ -85,10 +85,10 @@ func truncate(s string, n int) string {
}
type preloginResp struct {
KDF int `json:"kdf"`
KDFIterations uint32 `json:"kdfIterations"`
KDFMemory uint32 `json:"kdfMemory"`
KDFParallelism uint32 `json:"kdfParallelism"`
KDF int `json:"kdf"`
KDFIterations uint32 `json:"kdfIterations"`
KDFMemory uint32 `json:"kdfMemory"`
KDFParallelism uint32 `json:"kdfParallelism"`
}
func (c *Client) Prelogin() error {
@@ -225,8 +225,6 @@ func (c *Client) EditCipher(id string, cipherJSON any) ([]byte, error) {
return c.api("PUT", "/api/ciphers/"+id, cipherJSON, true)
}
func deviceID() string {
// stable per machine: hash of hostname (no secrets involved)
hn := hostnameSafe()