feat(pipeline): centralize bounded process execution - #370
Merged
Conversation
Add one process execution port for wrapped tools and migrate command transforms, aggregation, dependency probes, doctor/plugin checks, and PDF probing onto it. Bound runtime and captured output, control child environments, classify explicit shell use, redact secret-bearing diagnostics, validate declared outputs, and terminate process trees on timeout or cancellation where supported. Document platform behavior and keep toolchain fingerprints scoped to #359. Closes #356
szmyty
force-pushed
the
feat/process-execution-356
branch
from
August 31, 2026 19:56
3b6e2bf to
f1b88a2
Compare
Pull Request Summary by devActivityMetricsAchievements
|
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.
Summary
Centralizes external tool execution behind one bounded, policy-aware process port and migrates the production wrapping paths tracked by #356.
Canonical process execution
Adds public
renderflow::processprimitives for:--versionprobesProcess-tree behavior
SIGTERM, waits a bounded grace period, then escalates toSIGKILL.taskkill /T /Fand falls back to direct-child termination.Migrated production paths
adapters::command::run_commandCommandTransformrenderflow doctortool probesExisting Pandoc, FFmpeg, HTML, DOCX, audio, and image rendering already flow through
run_command, so they inherit the canonical executor through the adapter migration.The historical repository-audit command still uses
date/gitonly for its own report metadata. It is not a transform/tool adapter and is documented as outside this reusable execution-provider boundary.Security and diagnostics
Debug, tracing, and checked-execution errorsDebug0but fails declared output validation is not considered successfulTests
The process module includes fixtures for:
docs/process-execution.mddocuments the execution/security contract and Linux/macOS/Windows behavior.Architecture boundaries
This PR intentionally does not:
Validation
Final head:
f1b88a267b3bb8c7fc96f58863bcca7d37c119daAll final-head workflows are green:
33433271956renderflow --versionsmoke test, and artifact upload3343327193533433271840and33433810986The final PR contains one Conventional Commit, contains no temporary validation workflow or lint suppression, and is mergeable.
Closes #356