Skip to content

feat: add stable JSON output and logging contracts - #84

Merged
codeforester merged 1 commit into
mainfrom
enhancement/63-20260804-json-contracts
Aug 4, 2026
Merged

codeforester merged 1 commit into
mainfrom
enhancement/63-20260804-json-contracts

Conversation

@codeforester

Copy link
Copy Markdown
Contributor

Summary

  • add versioned success and error envelopes with stable code, type, message, details, and run_id fields
  • add opt-in LifecycleOptions.json machine mode that captures command stdout into one JSON record and keeps human defaults unchanged
  • add bounded, redacted JSON logs with UTC timestamps, level, logger, message, schema version, and run ID
  • add recursive secret redaction, JSON-mode log retention defaults, docs, API exports, and contract/security tests

Closes #63

Verification

  • python -m pytest (full suite)
  • python -m mypy --strict examples/typed_consumer.py
  • ./tests/validate.sh
  • uv build --out-dir /private/tmp/base-cli-build-63

Depends on the merged #52, #58, and #59 work.

@codeforester
codeforester merged commit 7dba5ed into main Aug 4, 2026
17 checks passed
@codeforester
codeforester deleted the enhancement/63-20260804-json-contracts branch August 4, 2026 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define stable structured-log, JSON output, and JSON error contracts

1 participant