Skip to content

release: devloop 0.10.0#10

Merged
pasunboneleve merged 3 commits into
mainfrom
feat-ykbt-session-logs
Jul 22, 2026
Merged

release: devloop 0.10.0#10
pasunboneleve merged 3 commits into
mainfrom
feat-ykbt-session-logs

Conversation

@pasunboneleve

Copy link
Copy Markdown
Owner

Release summary

Release 0.10.0 adds durable per-session logs under the state-file directory’s logs/ subdirectory.

Included

  • Persist engine, process, and hook output even when terminal inheritance is disabled.
  • Document session-log location, capture scope, watch suppression, failure behavior, and retention in devloop docs and repository docs.
  • Bump the Cargo package and release changelog to 0.10.0.

Validation

  • cargo fmt --check
  • cargo test
  • cargo clippy --all-targets --all-features -- -D warnings
  • Roborev job 591: no findings.

Context:
Devloop had supervised output and runtime tracing, but no durable per-run
record. When terminal inheritance was disabled or an agent shell lost scrollback,
there was no stable artifact for diagnosing engine, hook, or process behavior.

Decision:
Add a per-session log under the state-file parent, defaulting to
.devloop/logs/. Devloop creates and verifies the log before runtime startup,
tees tracing output into it, persists managed process and hook output even when
terminal inheritance is disabled, ignores only the active log file in watcher
classification, and flushes output at lifecycle boundaries. Retired process
output now carries a generation token so cleanup can drain logs without
publishing stale output-rule state into a replacement process.

Alternatives considered:
Writing logs directly from producers was simpler, but it reordered records and
let filesystem stalls leak into runtime tasks. Ignoring the whole log directory
was also simpler, but it hid user-owned files under broad watch patterns.

Tradeoffs:
Session-log producers use bounded backpressure, so a badly stalled log writer
can slow producers instead of dropping durable records. Inherited terminal
output remains backpressured by terminal behavior, while the outer output-drain
deadline remains the truncation boundary.

Architectural impact:
The runtime now has an explicit session-log adapter at the edge of the engine.
Process output forwarding separates durable persistence, terminal rendering,
and output-rule state mutation, with generation-scoped state writes to keep
restart behavior deterministic.
Context: Persistent session logs add a backwards-compatible user-visible capability, but their location and retention rules were not yet prominent in the durable references or embedded CLI documentation.

Decision: Release version 0.10.0, move the session-log entry into its dated changelog section, and add explicit state-and-log and behavior sections that `devloop docs` renders and tests.

Alternatives considered: Leaving the release notes under Unreleased or documenting logs only in the README would hide the shipped contract from CLI users, so both were rejected.

Tradeoffs: Logs still have no rotation policy; clients retain ownership of retention and `.devloop/` ignore rules.

Architectural impact: No runtime boundary changes. The embedded documentation boundary now has regression coverage for configuration and behavior session-log sections.
@pasunboneleve
pasunboneleve merged commit 7ee7d58 into main Jul 22, 2026
2 checks passed
@pasunboneleve
pasunboneleve deleted the feat-ykbt-session-logs branch July 22, 2026 22:22
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.

1 participant