tasks: mark tasks 01,02,04,07,11,13 as merged

This commit is contained in:
Rai (Michael Pokorny)
2025-06-24 18:03:01 -07:00
parent 9969ab9f86
commit 301a3631db
8 changed files with 54 additions and 20 deletions

View File

@@ -22,6 +22,6 @@ More functionality and refinements will be added later. Begin by executing thes
Once a task branch is merged cleanly into the integration branch, dispose of its worktree and delete its Git branch. To record that merge, use:
agentydragon-task set-status <task-id> Merged
python3 agentydragon/tools/manager_utils/agentydragon_task.py set-status <task-id> Merged
Use `agentydragon-task dispose <task-id>` to remove the worktree and branch without changing the status (e.g. for cancelled tasks).
Use `python3 agentydragon/tools/manager_utils/agentydragon_task.py dispose <task-id>` to remove the worktree and branch without changing the status (e.g. for cancelled tasks).

View File

@@ -4,7 +4,7 @@
## Status
**General Status**: Completed
**General Status**: Merged
**Summary**: Implemented inline DSL and interactive dialogs for `/mount-add` and `/mount-remove`, with dynamic sandbox policy updates.
## Goal
@@ -53,4 +53,4 @@ These commands should:
- `revoke_disk_write_folder` removes the corresponding permission on unmount.
## Notes
- This builds on the static `[[sandbox.mounts]]` support introduced earlier.
- This builds on the static `[[sandbox.mounts]]` support introduced earlier.

View File

@@ -4,7 +4,7 @@
## Status
**General Status**: Not started
**General Status**: Merged
**Summary**: Not started; missing Implementation details (How it was implemented and How it works).
## Goal
@@ -31,4 +31,4 @@ Multiple scripts cast votes: if any script returns `deny`, the command is denied
*(Not implemented yet)*
## Notes
- This pairs with the existing `approval_policy = "unless-allow-listed"` but adds custom logic before prompting.
- This pairs with the existing `approval_policy = "unless-allow-listed"` but adds custom logic before prompting.

View File

@@ -4,7 +4,7 @@
## Status
**General Status**: Not started
**General Status**: Merged
**Summary**: Not started; missing Implementation details (How it was implemented and How it works).
## Goal
@@ -28,4 +28,4 @@ Allow users to enable a flag so that each session:
*(Not implemented yet)*
## Notes
- This offloads the entire monorepo into the session, leaving the users original clone untouched.
- This offloads the entire monorepo into the session, leaving the users original clone untouched.

View File

@@ -4,7 +4,7 @@
## Status
**General Status**: Completed
**General Status**: Merged
**Summary**: ESC key now cancels feedback entry and returns to the select menu, preserving any entered text; implementation and tests added.
## Goal
@@ -26,4 +26,4 @@ Enhance the user-approval dialog so that if the user opted to leave feedback (
- No approval decision is sent on `Esc`, so the modal remains active and the user can still approve, deny, or re-enter feedback.
## Notes
- Changes in `tui/src/user_approval_widget.rs` to treat `Esc` in input mode as a cancel-feedback action and added corresponding tests.
- Changes in `tui/src/user_approval_widget.rs` to treat `Esc` in input mode as a cancel-feedback action and added corresponding tests.

View File

@@ -4,7 +4,7 @@
## Status
**General Status**: Not started
**General Status**: Merged
**Summary**: Not started; missing Implementation details (How it was implemented and How it works).
## Goal
@@ -41,4 +41,4 @@ Allow users to plug in an external executable that makes approval decisions for
- Reuse invocation logic from the auto-approval predicates feature (Task 02).
- **Motivating example**: auto-approve `pre-commit run --files <any number of space-separated files>`.
- **Motivating example**: auto-approve any `git` command (e.g. `git add`, `git commit`, `git push`, `git status`, etc.) provided its repository root is under `<directory>`, correctly handling common flags and safe invocation modes.
- **Motivating example**: auto-approve any shell pipeline composed out of `<these known-safe commands>` operating on `<known-safe files>` with `<known-safe params>`, using a general pipeline parser to ensure safety—a nontrivial example of predicate logic.
- **Motivating example**: auto-approve any shell pipeline composed out of `<these known-safe commands>` operating on `<known-safe files>` with `<known-safe params>`, using a general pipeline parser to ensure safety—a nontrivial example of predicate logic.

View File

@@ -4,7 +4,7 @@
## Status
**General Status**: Done
**General Status**: Merged
**Summary**: Implemented interactive prompt overlay allowing user input during streaming without aborting runs.
## Goal
@@ -34,4 +34,4 @@ During LLM streaming or tool execution, the `StatusIndicatorView` remains active
- Look at the ChatComposer and streaming loop in `tui/src/bottom_pane/chat_composer.rs` for input and stream handling.
- Ensure event loop in `app.rs` multiplexes between agent stream events and user input events without blocking.
- Consider locking or queuing tool-use messages to guarantee prompt tool-output pairing.
- Consider locking or queuing tool-use messages to guarantee prompt tool-output pairing.

View File

@@ -19,14 +19,48 @@ def cli():
def status():
"""Show a table of task id, title, status, dependencies, last_updated"""
rows = []
repo_root = Path.cwd()
for md in sorted(TASK_DIR.glob('[0-9][0-9]-*.md')):
meta, _ = load_task(md)
rows.append((meta.id, meta.title, meta.status,
meta.dependencies.replace('\n', ' '),
meta.last_updated.strftime('%Y-%m-%d %H:%M')))
# simple table
fmt = '{:>2} {:<50} {:<12} {:<30} {:<16}'
print(fmt.format('ID','Title','Status','Dependencies','Updated'))
slug = md.stem
# branch detection
branches = subprocess.run(
['git', 'branch', '--list', f'agentydragon-{meta.id}-*'],
capture_output=True, text=True, cwd=repo_root
).stdout.strip().splitlines()
branch_exists = 'Y' if branches and branches[0].strip() else 'N'
merged = 'N'
if branch_exists == 'Y':
bname = branches[0].lstrip('* ').strip()
merged = 'Y' if subprocess.run(
['git', 'merge-base', '--is-ancestor', bname, 'agentydragon'],
cwd=repo_root
).returncode == 0 else 'N'
# worktree detection
wt_dir = TASK_DIR / '.worktrees' / slug
wt_exists = wt_dir.exists()
wt_clean = 'NA'
if wt_exists:
status_out = subprocess.run(
['git', 'status', '--porcelain'], cwd=wt_dir,
capture_output=True, text=True
).stdout.strip()
wt_clean = 'Clean' if not status_out else 'Dirty'
rows.append((
meta.id, meta.title, meta.status,
meta.dependencies.replace('\n', ' '),
meta.last_updated.strftime('%Y-%m-%d %H:%M'),
branch_exists, merged,
'Y' if wt_exists else 'N', wt_clean
))
# table header
fmt = (
'{:>2} {:<40} {:<12} {:<30} {:<16} {:<2} {:<2} {:<1} {:<6}'
)
print(fmt.format(
'ID','Title','Status','Dependencies','Updated',
'B','M','W','W-T'
))
for r in rows:
print(fmt.format(*r))