Repository navigation
Conversation
- Resolver gets a Name, the secret as messages call it ("password"),
next to Label, the prompt's question ("Password to encrypt the
export"), which now defaults to Name with a capital first letter.
- Resolver errors read as messages for the user of the command, such
as "no password found in /run/secrets/pw" or "passwords do not
match", without a "secret:" prefix or a sentinel in front; they still
match ErrEmpty, ErrNoSource, ErrMismatch and ErrFixedSource with
errors.Is.
- The second question of a confirmed entry is "Repeat password: ".
- TTYPrompt writes its question to the console screen buffer on
Windows, since the console input buffer cannot be written to.
- WriteFile writes a file only its owner can read and replaces an
existing one atomically, so a credential such as a token cache is
never readable by others, not even while it is written. FileStore
uses it.
BREAKING CHANGE: Resolver messages change, Label no longer names the
secret in messages (set Name), and Request gains Name.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A feed that calendar clients already subscribe to has to keep its bytes. Calendar and Param gain options for that, all off by default: - Calendar.EventPropertyOrder writes the named event properties first, in that order. - Calendar.MissingEnd chooses how a zero End is written: omitted, derived from the start, or as given. - Calendar.VerbatimUIDs writes Event.UID as given, dropping only control characters. - Param.Quote always writes the value as a quoted string, and Param.LineBreak replaces line breaks in it instead of encoding them as RFC 6868 "^n". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The temporary name was built from the destination's name, so a name close to the usual 255-byte limit, such as a FileStore account of 240 bytes, failed with "file name too long". It is ".secret-*" again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes needed to move mittwald-outlook-bridge onto cli-kit.
secret (breaking)
ResolvergetsName, the secret as messages call it ("password"), next toLabel, the prompt's question ("Password to encrypt the export").Labelnow defaults toNamewith a capital first letter.Errors read as messages for the user, with no
secret:prefix and no sentinel in front, and still matchErrEmpty,ErrNoSource,ErrMismatchandErrFixedSourcewitherrors.Is:secret: read Password file: open …reading password file: open …secret: empty value: no Password in fno password found in f-with busy stdinsecret: --password-file - reads the Password from stdin, which carries the command's input; …--password-file - reads the password from stdin, which is already being read for the input; name a file insteadsecret: no secret available: no Password found; …, pipe it to stdin, …no password available: …, pipe one to stdin, or run this on a terminalsecret: empty value: no Password enteredempty passwordsecret: entries do not matchpasswords do not matchRepeat Password:Repeat password:TTYPromptwrites its question toCONOUT$on Windows; the console input buffer it reads from cannot be written to.New
secret.WriteFile: writes a file only its owner can read (0600 before any data reaches it) and replaces an existing one atomically, refusing a symbolic link at the path.FileStoreuses it.ics
Options, all off by default, so a feed that clients already subscribe to can keep its bytes when it moves onto
ics.Calendar:Calendar.EventPropertyOrder: named event properties first, in that order.Calendar.MissingEnd(EndDefault,EndOmit,EndDerive,EndAsGiven): how a zeroEndis written.Calendar.VerbatimUIDs:Event.UIDas given, dropping only control characters.Param.QuoteandParam.LineBreak: always quote a parameter value, and replace line breaks instead of RFC 6868^n.With the zero values, the package's output was compared with the previous version on 200,000 random calendars and 200,000 calls each to
EscapeText,Property.StringandOccurrenceUID: identical. The bridge's feed, rendered through these options, matched its old renderer byte for byte on about 1.2 million random events.Checks
go vet,go test -race, golangci-lint (linux, darwin, windows), cross-builds for linux, darwin, windows and freebsd,go mod tidy -diff.🤖 Generated with Claude Code