Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions .wolf/anatomy.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# anatomy.md

> Auto-maintained by OpenWolf. Last scanned: 2026-04-06T12:56:30.133Z
> Files: 504 tracked | Anatomy hits: 0 | Misses: 0
> Auto-maintained by OpenWolf. Last scanned: 2026-04-06T14:36:32.857Z
> Files: 505 tracked | Anatomy hits: 0 | Misses: 0

## ./

- `.coverage` (~14200 tok)
- `.gitignore` — Git ignore rules (~175 tok)
- `AGENTS.md` — Agent Instructions for DevAIFlow (~20993 tok)
- `AGENTS.md` — Agent Instructions for DevAIFlow (~21192 tok)
- `CHANGELOG.md` — Change log (~4649 tok)
- `CLAUDE.md` — OpenWolf (~139 tok)
- `config.schema.json` (~9891 tok)
Expand Down Expand Up @@ -100,7 +100,7 @@

- `__init__.py` — CLI commands for DevAIFlow. (~10 tok)
- `completion.py` — Shell completion support for DevAIFlow. (~1235 tok)
- `main.py` — Main CLI entry point for DevAIFlow. (~47109 tok)
- `main.py` — Main CLI entry point for DevAIFlow. (~47322 tok)
- `signal_handler.py` — Unified signal handler for CLI commands that launch Claude sessions. (~2578 tok)
- `skills_discovery.py` — Utility for discovering skills from all hierarchical locations. (~1331 tok)
- `utils.py` — Common utility functions for CLI commands. (~15760 tok)
Expand Down Expand Up @@ -134,7 +134,7 @@
- `import_command.py` — Implementation of 'daf import' command. (~3262 tok)
- `import_session_command.py` — Implementation of 'daf import-session' command. (~2195 tok)
- `info_command.py` — Implementation of 'daf info' command. (~6561 tok)
- `investigate_command.py` — Command for daf investigate - create investigation-only session without ticket creation. (~10149 tok)
- `investigate_command.py` — Command for daf investigate - create investigation-only session without ticket creation. (~12343 tok)
- `jira_add_comment_command.py` — Implementation of 'daf jira add-comment' command. (~1756 tok)
- `jira_create_commands.py` — Implementation of 'daf jira create' command. (~18107 tok)
- `jira_create_dynamic.py` — Dynamic command builder for daf jira create with field discovery. (~3074 tok)
Expand Down Expand Up @@ -230,7 +230,7 @@

## devflow/cli_skills/daf-workflow/

- `SKILL.md` — DevAIFlow Workflow Guide (~3274 tok)
- `SKILL.md` — DevAIFlow Workflow Guide (~3832 tok)

## devflow/cli_skills/daf-workspace/

Expand Down Expand Up @@ -709,6 +709,7 @@
- `test_cleanup_sessions_command.py` — Tests for daf cleanup-sessions command. (~3720 tok)
- `test_cli_utils_extended.py` — Extended tests for CLI utility functions. (~3673 tok)
- `test_cli_utils.py` — Tests for CLI utility functions. (~8996 tok)
- `test_investigate_command.py` — Tests for daf investigate command. (~10764 tok)
- `test_release_manager_pyproject.py` — Tests for ReleaseManager with pyproject.toml support. (~1968 tok)

## tests/cli/commands/
Expand Down
26 changes: 25 additions & 1 deletion .wolf/buglog.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,34 @@
"file": "devflow/release/manager.py, devflow/cli/commands/release_command.py",
"root_cause": "ReleaseManager was hardcoded to read/write version from setup.py, but project migrated to pyproject.toml (PEP 517/518/621) format where setup.py is just an empty setup() call with no version field",
"fix": "Modified ReleaseManager to: (1) Check pyproject.toml first for version field, fall back to setup.py for backward compatibility; (2) Update version in pyproject.toml when it exists; (3) Skip empty setup.py files during updates; (4) Show correct package file names (pyproject.toml vs setup.py) in error messages and commit messages; (5) Added comprehensive test coverage (8 new tests)",
"tags": ["release", "pyproject.toml", "packaging", "version-management", "pep-517", "pep-518", "pep-621"],
"tags": [
"release",
"pyproject.toml",
"packaging",
"version-management",
"pep-517",
"pep-518",
"pep-621"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-04-06T01:50:00Z"
},
{
"id": "bug-002",
"timestamp": "2026-04-06T14:34:09.151Z",
"error_message": "Incorrect value in code",
"file": "tests/test_investigate_command.py",
"root_cause": "Had \"devflow.cli.commands.investigate_command.JiraClie",
"fix": "Changed to \"devflow.jira.JiraClient\"",
"tags": [
"auto-detected",
"wrong-value",
"py"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-04-06T14:34:09.151Z"
}
]
}
4 changes: 2 additions & 2 deletions .wolf/hooks/_session.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"session_id": "session-2026-04-06-0913",
"started": "2026-04-06T13:13:57.895Z",
"session_id": "session-2026-04-06-1049",
"started": "2026-04-06T14:49:18.559Z",
"files_read": {},
"files_written": [],
"edit_counts": {},
Expand Down
26 changes: 26 additions & 0 deletions .wolf/memory.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,29 @@

| Time | Action | File(s) | Outcome | ~Tokens |
|------|--------|---------|---------|--------|

## Session: 2026-04-06 09:44

| Time | Action | File(s) | Outcome | ~Tokens |
|------|--------|---------|---------|--------|
| 09:48 | Edited devflow/cli/main.py | modified investigate() | ~920 |
| 09:49 | Edited devflow/cli/commands/investigate_command.py | added 4 import(s) | ~323 |
| 10:01 | Edited devflow/cli/commands/investigate_command.py | modified create_investigation_from_issue() | ~1539 |
| 10:03 | Edited devflow/cli/commands/investigate_command.py | modified create_investigation_session() | ~454 |
| 10:32 | Edited devflow/cli/commands/investigate_command.py | modified Investigate() | ~329 |
| 10:32 | Edited devflow/cli/commands/investigate_command.py | expanded (+6 lines) | ~123 |
| 10:32 | Edited devflow/cli/commands/investigate_command.py | modified _build_investigation_prompt() | ~676 |
| 10:33 | Edited tests/test_investigate_command.py | modified test_investigate_from_jira_issue() | ~4198 |
| 10:34 | Edited tests/test_investigate_command.py | 2→2 lines | ~26 |
| 10:34 | Edited tests/test_investigate_command.py | 6→6 lines | ~112 |
| 10:34 | Edited tests/test_investigate_command.py | 6→6 lines | ~107 |
| 10:35 | Edited tests/test_investigate_command.py | modified test_investigate_from_issue_with_goal_override() | ~421 |
| 10:35 | Edited tests/test_investigate_command.py | modified test_investigate_from_issue_custom_name() | ~420 |
| 10:35 | Edited AGENTS.md | expanded (+11 lines) | ~333 |
| 10:36 | Edited devflow/cli_skills/daf-workflow/SKILL.md | modified scratch() | ~625 |
| 10:38 | Session end: 15 writes across 5 files (main.py, investigate_command.py, test_investigate_command.py, AGENTS.md, SKILL.md) | 7 reads | ~108651 tok |

## Session: 2026-04-06 10:49

| Time | Action | File(s) | Outcome | ~Tokens |
|------|--------|---------|---------|--------|
153 changes: 144 additions & 9 deletions .wolf/token-ledger.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,151 @@
"version": 1,
"created_at": "2026-04-06T12:35:01.489Z",
"lifetime": {
"total_tokens_estimated": 0,
"total_reads": 0,
"total_writes": 0,
"total_sessions": 7,
"anatomy_hits": 0,
"anatomy_misses": 0,
"repeated_reads_blocked": 0,
"estimated_savings_vs_bare_cli": 0
"total_tokens_estimated": 108651,
"total_reads": 7,
"total_writes": 15,
"total_sessions": 9,
"anatomy_hits": 5,
"anatomy_misses": 1,
"repeated_reads_blocked": 14,
"estimated_savings_vs_bare_cli": 190705
},
"sessions": [],
"sessions": [
{
"id": "session-2026-04-06-0944",
"started": "2026-04-06T13:44:19.889Z",
"ended": "2026-04-06T14:38:25.390Z",
"reads": [
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/AGENTS.md",
"tokens_estimated": 20993,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/investigate_command.py",
"tokens_estimated": 11917,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/main.py",
"tokens_estimated": 47109,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/utils/backend_detection.py",
"tokens_estimated": 1809,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/git_open_command.py",
"tokens_estimated": 2094,
"was_repeated": false,
"anatomy_had_description": false
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/tests/test_investigate_command.py",
"tokens_estimated": 10780,
"was_repeated": true,
"anatomy_had_description": false
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli_skills/daf-workflow/SKILL.md",
"tokens_estimated": 3274,
"was_repeated": true,
"anatomy_had_description": false
}
],
"writes": [
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/main.py",
"tokens_estimated": 920,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/investigate_command.py",
"tokens_estimated": 323,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/investigate_command.py",
"tokens_estimated": 1539,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/investigate_command.py",
"tokens_estimated": 454,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/investigate_command.py",
"tokens_estimated": 329,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/investigate_command.py",
"tokens_estimated": 123,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli/commands/investigate_command.py",
"tokens_estimated": 676,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/tests/test_investigate_command.py",
"tokens_estimated": 4198,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/tests/test_investigate_command.py",
"tokens_estimated": 26,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/tests/test_investigate_command.py",
"tokens_estimated": 112,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/tests/test_investigate_command.py",
"tokens_estimated": 107,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/tests/test_investigate_command.py",
"tokens_estimated": 421,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/tests/test_investigate_command.py",
"tokens_estimated": 420,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/AGENTS.md",
"tokens_estimated": 357,
"action": "edit"
},
{
"file": "/Users/dvernier/development/devaiflow/devaiflow/devflow/cli_skills/daf-workflow/SKILL.md",
"tokens_estimated": 670,
"action": "edit"
}
],
"totals": {
"input_tokens_estimated": 97976,
"output_tokens_estimated": 10675,
"reads_count": 7,
"writes_count": 15,
"repeated_reads_blocked": 14,
"anatomy_lookups": 5
}
}
],
"daemon_usage": [],
"waste_flags": [],
"optimization_report": {
Expand Down
11 changes: 11 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -1706,6 +1706,17 @@ class Session(BaseModel):
- Prevents session name collisions during sync
- Comprehensive test coverage (2 new tests)
- All 3631 tests pass
- ✓ Issue key support for daf investigate command (itdove/devaiflow#363)
- Added optional issue_key positional argument to daf investigate command
- Supports JIRA (PROJ-12345), GitHub (#123, owner/repo#123), and GitLab issue keys
- Automatically fetches issue details and uses summary as investigation goal
- Auto-generates session name from issue key (e.g., investigate-PROJ-12345)
- --goal flag still works and overrides issue summary when both provided
- Investigation prompt includes issue details (summary, description, link)
- Comprehensive error handling (issue not found, auth errors, API failures)
- Examples: daf investigate PROJ-12345, daf investigate owner/repo#123, daf investigate #123
- Comprehensive test coverage (7 new tests)
- All 22 investigate tests pass

## Release Management

Expand Down
Loading
Loading