277f9e3a2b
Merge pull request 'feat: Knowledge freshness cron — detect stale entries from code changes ( #200 )' ( #227 ) from feat/200-knowledge-freshness-cron into main
Test / pytest (push) Has been cancelled
2026-04-21 15:21:28 +00:00
21f654a159
Merge pull request 'fix: implement refactoring_opportunity_finder API ( #210 )' ( #221 ) from burn/210-1776305000 into main
Test / pytest (push) Has been cancelled
2026-04-21 15:21:20 +00:00
12abaad838
Merge pull request 'fix: syntax errors in perf_bottleneck_finder.py #211 ' ( #217 ) from fix/perf-bottleneck-syntax-211 into main
Test / pytest (push) Has been cancelled
2026-04-21 15:21:15 +00:00
c106db2e28
Merge pull request 'fix: escape quotes in DOT renderer ( #212 )' ( #216 ) from burn/212-fix-dot-quoting into main
Test / pytest (push) Has been cancelled
2026-04-21 15:21:14 +00:00
6dd354385f
feat: Add freshness.py ( #200 )
2026-04-21 11:57:53 +00:00
Timmy
55adcb31dc
fix: implement refactoring_opportunity_finder API ( #210 )
...
Test / pytest (pull_request) Failing after 30s
The test file expects compute_file_complexity(), calculate_refactoring_score(),
and FileMetrics from the script, but only a stub generate_proposals() existed.
Implemented:
- compute_file_complexity(): AST-based cyclomatic complexity analysis
- calculate_refactoring_score(): weighted scoring (complexity, size, churn, coverage)
- FileMetrics: dataclass with all required fields
- Full generate_proposals() that scans directories and produces scored proposals
All 10 tests pass. py_compile succeeds.
Closes #210
2026-04-21 07:29:44 -04:00
b732172dcc
fix: syntax errors in perf_bottleneck_finder.py #211
Test / pytest (pull_request) Failing after 20s
2026-04-21 11:21:58 +00:00
f7c479c4eb
fix: escape quotes in DOT renderer ( #212 )
...
Test / pytest (pull_request) Failing after 13s
Lines 152-153 used unescaped double quotes inside
Python double-quoted string literals. Switched to
single-quoted strings.
2026-04-21 11:20:25 +00:00
7a4677c752
fix( #201 ): rewrite comprehensive tests with proper pytest-compatible functions
Test / pytest (pull_request) Failing after 32s
2026-04-17 05:17:40 +00:00
229c327c9e
fix( #201 ): remove old comprehensive test file (rewriting)
2026-04-17 05:17:38 +00:00
537bb1b61b
fix( #201 ): convert helper test_* functions to check_*, add pytest-compatible tests
2026-04-17 05:09:55 +00:00
Alexander Whitestone
10096977bd
Merge remote-tracking branch 'origin/fix/8-harvester'
2026-04-15 22:12:31 -04:00
Alexander Whitestone
08c4237dca
Merge remote-tracking branch 'origin/fix/11-bootstrapper'
2026-04-15 22:12:28 -04:00
Alexander Whitestone
661f2730f2
Merge remote-tracking branch 'origin/fix/10-knowledge-format'
2026-04-15 22:12:21 -04:00
Alexander Whitestone
80cc656fc1
Merge remote-tracking branch 'origin/feat/session-metadata'
2026-04-15 22:12:17 -04:00
Alexander Whitestone
d0a422deef
Merge remote-tracking branch 'origin/burn/17-session-sampler'
2026-04-15 22:12:04 -04:00
Alexander Whitestone
4210a4ea9d
Merge remote-tracking branch 'origin/feat/91-session-pair-harvester'
2026-04-15 22:11:45 -04:00
Alexander Whitestone
bac0e0336b
Merge remote-tracking branch 'origin/feat/93-dependency-graph'
2026-04-15 22:11:41 -04:00
Alexander Whitestone
64b823c598
Merge remote-tracking branch 'origin/feat/94-dead-code-detector'
2026-04-15 22:11:35 -04:00
Alexander Whitestone
27459271ac
Merge remote-tracking branch 'origin/feat/177-issue-parser'
2026-04-15 22:11:32 -04:00
Alexander Whitestone
45cd835bd2
Merge remote-tracking branch 'origin/feat/176-diff-analyzer'
2026-04-15 22:11:30 -04:00
Alexander Whitestone
5e8a201a26
Merge remote-tracking branch 'origin/burn/172-1776263893'
2026-04-15 22:11:26 -04:00
Alexander Whitestone
fa43d82f79
Merge remote-tracking branch 'origin/burn/168-1776263899'
2026-04-15 22:11:25 -04:00
Alexander Whitestone
c7b7b38510
Merge remote-tracking branch 'origin/burn/171-1776263896'
2026-04-15 22:11:23 -04:00
Alexander Whitestone
908fbbb26c
Merge remote-tracking branch 'origin/burn/174-1776263883'
2026-04-15 22:11:21 -04:00
Alexander Whitestone
ea33c331f6
Merge remote-tracking branch 'origin/burn/169-1776263898'
2026-04-15 22:11:20 -04:00
93bc3fc18a
fix: add directory exclusions for scan performance ( #170 )
2026-04-15 15:06:09 +00:00
Alexander Whitestone
9668034ad6
feat: Add refactoring opportunity finder ( #169 )
...
Cross-references complexity, churn, and coverage to identify refactoring targets.
Acceptance criteria met:
- Cross-references: complexity x churn x coverage
- Identifies: refactor targets with priority scoring
- Output: prioritized refactor list (JSON or human-readable)
- Designed for monthly execution via cron
Scoring formula:
- Complexity (40%): Higher cyclomatic complexity = higher priority
- Churn (30%): Frequently changed files = high value to refactor
- Size (20%): Larger files = more to refactor
- Coverage (10%): Low coverage = higher risk but more need
Usage:
python3 scripts/refactoring_opportunity_finder.py --repo /path/to/repo
python3 scripts/refactoring_opportunity_finder.py --repo /path/to/repo --json
Closes #169
2026-04-15 10:54:58 -04:00
49365c64d2
test: automation opportunity finder tests ( #170 )
2026-04-15 14:53:43 +00:00
Alexander Whitestone
341abab2a0
feat: Priority Rebalancer — re-score issues from pipeline data ( #174 )
...
Monthly pipeline tool that:
- Reads knowledge store, metrics, and staleness data
- Scores all open issues across the org
- Suggests priority upgrades/downgrades based on accumulated signals
- Generates JSON + markdown reports
- Optional --apply mode to push changes via Gitea API
Signals detected:
- Stale/missing knowledge entries
- Empty knowledge store
- Missing metrics output
- Low repo coverage
- Issue age, activity, assignment status
- Keyword/label analysis
Usage:
python3 scripts/priority_rebalancer.py --org Timmy_Foundation
python3 scripts/priority_rebalancer.py --org Timmy_Foundation --apply
python3 scripts/priority_rebalancer.py --org Timmy_Foundation --json
23 tests, all passing.
2026-04-15 10:52:51 -04:00
e8359cf10a
feat: automation opportunity finder ( #170 )
...
Analyzes cron jobs, docs, scripts, session transcripts, and shell history to find manual processes that could be automated.
Outputs ranked proposals with confidence scores and impact ratings.
2026-04-15 14:51:29 +00:00
f1175df79d
test: add improvement proposal generator tests ( #168 )
2026-04-15 14:47:30 +00:00
be805a1b4c
feat: add Performance Bottleneck Finder ( #171 )
...
Analyzes: slow tests, build artifacts, CI workflows, heavy imports.
Outputs: markdown report or JSON. Designed for weekly cron.
Closes #171
2026-04-15 14:47:27 +00:00
1d47665dd4
feat: add improvement proposal generator ( #168 )
2026-04-15 14:47:26 +00:00
71dd801575
feat: knowledge gap identifier — Pipeline 10.7 ( #172 )
2026-04-15 14:42:28 +00:00
81c02f6709
feat: Add staleness detector tests ( closes #179 )
2026-04-15 04:00:46 +00:00
c2c3c6a3b9
feat: Add knowledge staleness detector ( closes #179 )
2026-04-15 04:00:12 +00:00
d664119b9c
feat: Add diff analyzer tests ( closes #176 )
2026-04-15 03:57:21 +00:00
764414d4d5
feat: Add diff analyzer ( closes #176 )
2026-04-15 03:56:27 +00:00
54f3bef7fc
feat: Add parser tests ( closes #177 )
2026-04-15 03:50:04 +00:00
4fcd372de4
feat: Add Gitea issue body parser ( closes #177 )
2026-04-15 03:49:00 +00:00
77a753f6f2
feat: dead code detector for Python codebases ( #94 )
2026-04-15 03:46:43 +00:00
cbebd93cbb
feat: cross-repo dependency graph builder ( #93 )
2026-04-15 03:44:12 +00:00
b36f617d4a
test: add tests for session pair harvester ( #91 )
2026-04-15 03:39:09 +00:00
b5466dc938
feat: session transcript → training pair harvester ( #91 )
2026-04-15 03:39:08 +00:00
55797c8a3e
feat: add sampler.py — session value scorer ( #17 )
2026-04-15 03:02:12 +00:00
160dfcf419
feat: add session_metadata.py — structured session metadata extractor ( #6 )
2026-04-14 19:06:16 +00:00
8d716ff03f
Add comprehensive test script for harvest prompt validation
2026-04-14 19:02:41 +00:00
Timmy
b32d316023
feat( #10 ): knowledge file format schema + example knowledge files
...
- SCHEMA.md: full specification for index.json and YAML knowledge files
- knowledge/global/pitfalls.yaml: 8 cross-repo pitfalls
- knowledge/global/tool-quirks.yaml: 7 environment quirk facts
- knowledge/repos/hermes-agent.yaml: 8 per-repo pitfalls (cron, paths, SSH)
- knowledge/repos/the-nexus.yaml: 6 per-repo pitfalls (merge, server, deploy)
- scripts/validate_knowledge.py: schema validator (29 facts, all passing)
- knowledge/index.json: populated with 29 seed facts from real fleet data
Design decisions:
- YAML for humans, index.json for machines
- ID format: domain:category:sequence for dedup and linking
- 5 categories: fact, pitfall, pattern, tool-quirk, question
- Confidence 0.0-1.0 with defined ranges
- Related facts by ID for graph traversal
- Tags for searchability
- Source count + dates for decay/expiry
Acceptance criteria:
- [x] Directory structure created
- [x] Schema documented (SCHEMA.md)
- [x] index.json with real facts (29 total)
- [x] Example knowledge files for 2 repos (hermes-agent, the-nexus)
- [x] Validation script passes
2026-04-14 14:21:21 -04:00
Timmy
b65256bf76
feat: build bootstrapper.py - pre-session context assembler
...
Assembles relevant knowledge from the store into a compact 2k-token
context block for session injection.
Features:
- Filter by repo, agent type, and global scope
- Sort by confidence (pitfalls first, patterns, facts)
- Per-repo and per-agent markdown knowledge files
- Graceful empty-store handling
- JSON output mode for programmatic use
- Token-count-aware truncation at line boundaries
Closes #11
2026-04-14 14:05:30 -04:00