- Rename abbreviated locals: origLen→originalLength, hasOp→hasOperationKey,
hasStack→hasStackKey, kvStr→keyValueString, logErr→typedError (errors.go, log.go)
- Add usage example comments to all exported functions lacking them:
New, Username, SetLevel, SetRedactKeys, Debug, Info, Warn, Error, Security,
Is, As, NewError, Join, Message (AX principle 2)
- Rewrite both test files to TestFilename_Function_{Good,Bad,Ugly} convention;
all three categories mandatory per AX spec — every exported function now covered
- New test cases exercise edge paths: odd keyvals, injection with \r\n and null bytes,
redaction of numeric values and duplicate keys, AllOps on nil, Must panic value type,
LogWarn suppression at LevelError, NewCode as sentinel, rotation/output precedence
Co-Authored-By: Virgil <virgil@lethean.io>
Add SetRedactKeys() for masking sensitive values in log output.
Quote string values with %q to prevent log injection attacks.
Add AllOps iterator and improve error stack formatting.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>