-
Notifications
You must be signed in to change notification settings - Fork 597
[Draft] [recompose] New experimental task-execution framework #12283
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
jleibs
wants to merge
242
commits into
main
Choose a base branch
from
jleibs/recompose
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- CLI console is now created lazily via _get_console() so it respects NO_COLOR/FORCE_COLOR set after import - Test fixture resets the console after setting env vars - This keeps pytest's own colored output while disabling colors in CLI invocations during tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use output_mgr.print_prefixed() instead of plain print() for nested task output, so the │ prefix is styled consistently. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The CLI registers commands with kebab-case (e.g., lint-all) but the GHA generator was using the raw function names with underscores (lint_all). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Without this, the step() tests fail in CI because they detect GITHUB_ACTIONS and switch to ::group:: format instead of [Step]. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
./run ci --status now shows recent GitHub Actions runs for the automation, filtered by current branch. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Each task now captures its own body output and prefixes it: - Direct output gets │ prefix (2 chars) - Subtask headers get ├──▶ prefix (4 chars) - Nested content gets │ continuation (4 chars) The depth is implicit from the recursion - each layer applies the same logic regardless of nesting level. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Task name printed in bold - Prefix symbols (│, ├──▶) printed in cyan - Success status (✓) in green, failure (✗) in red - Colors only applied at top level; nested output is plain so parent can add colors when prefixing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Parse each line character by character to apply styles to individual components rather than entire prefix regions. Tree symbols get cyan, success/failure symbols get their own colors, content gets default color. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When styling tree characters, look ahead past ALL consecutive spaces to determine if more tree/status chars follow. This fixes styling for deeply nested output like "│ │ text" where the spaces between tree chars were breaking the scan. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tasks now print with marker when run as subprocess (RECOMPOSE_SUBPROCESS=1), consistent with nested task behavior. The automation executor strips the marker line since it already printed the header. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Bare top-level task: bold - Automation headers: symbol cyan, name bold - Job headers: symbol cyan, name bold - Subtask headers in output: symbol cyan, name bold Uses default foreground color so it works on both light and dark terminals. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove bold from cyan tree structure styling for better visibility on light-mode terminals. Bold cyan can be too intense on light backgrounds. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
All color values now use logical names from COLORS dict: - tree: Tree structure symbols - name: Task/automation names - success: Success status - failure: Failure status - success_bold: Top-level success messages - failure_bold: Top-level failure/error messages - warning: Warnings - dim: Dimmed/secondary text 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Major simplification: - Use Console(force_terminal=True) so ANSI codes are always output - Remove existing_ctx branching - always print with colors - Simplify prefix_task_output - only check SUBTASK_MARKER - Simplify print_task_output_styled - just color tree prefixes - Remove unused OUTPUT_PREFIX, TREE_CHARS, STATUS_CHARS constants Now all output uses consistent styling: - Tree prefixes (│, ├──▶) in cyan - Task names in bold - Status lines in bold green/red (same style everywhere) ANSI codes from nested tasks pass through when captured and re-printed, preserving colors naturally. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add level_1/2a/2b/3a/3b demo tasks showing 3-level nesting - Fix blank line detection to ignore ANSI escape codes - Only add blank after status lines that aren't already prefixed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When running inside a task, stdout is redirected to a capture buffer, so colors_enabled returns False. Since tasks use force_terminal=True, we should enable colors for any subprocesses spawned within a task. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add task nesting depth tracking in context - Emit ::group::/::endgroup:: for first-level subtasks only (depth == 2) - Pass GHA markers through prefix_task_output without prefixing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This eliminates the annotation-unchecked warning while catching real type errors. Fixed two None-checking issues revealed by the stricter checking. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
105a50f to
e2cb4a6
Compare
|
Latest documentation preview deployed successfully.
Note: This comment is updated whenever you push a commit. |
|
Web viewer built successfully.
View image diff on kitdiff. Note: This comment is updated whenever you push a commit. |
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.
Related
What