Commit Graph

57 Commits

Author SHA1 Message Date
StepFun Agent
8374ec937e fix(perf-bottleneck): make find_slow_tests_pytest functional; unblock pytest collection
Some checks failed
Test / pytest (pull_request) Failing after 8s
- find_slow_tests_pytest: actually run pytest with --durations and parse stdout
  instead of reading stale cache file. Now measures real test durations.
- test_pr_complexity_scorer.py: wrap module-level sys.exit() in
  if __name__ == "__main__" guard. This was crashing pytest collection
  entirely, making the repo un-testable and masking all other performance
  analysis.

Both issues were blocking the Performance Bottleneck Finder (#171) from
working. The script now successfully runs pytest, collects duration data,
and produces accurate reports.

Closes #171
2026-04-26 09:59:00 -04:00
Rockachopa
4b5a675355 feat: add PR complexity scorer — estimate review effort\n\nImplements issue #135: a script that analyzes open PRs and computes\na complexity score (1-10) based on files changed, lines added/removed,\ndependency changes, and test coverage delta. Also estimates review time.\n\nThe scorer can be run with --dry-run to preview or --apply to post\nscore comments directly on PRs.\n\nOutput: metrics/pr_complexity.json with full analysis.\n\nCloses #135
Some checks failed
Test / pytest (push) Failing after 10s
2026-04-26 09:34:57 -04:00
345d2451d0 Merge pull request 'feat: knowledge deduplication — content hash + token similarity (#196)' (#228) from burn/196-1776306000 into main
Some checks failed
Test / pytest (push) Failing after 33s
2026-04-21 15:28:50 +00:00
277f9e3a2b Merge pull request 'feat: Knowledge freshness cron — detect stale entries from code changes (#200)' (#227) from feat/200-knowledge-freshness-cron into main
Some checks failed
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
Some checks failed
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
Some checks failed
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
Some checks failed
Test / pytest (push) Has been cancelled
2026-04-21 15:21:14 +00:00
cc215e3ed7 feat: knowledge deduplication — content hash + token similarity (#196)
Some checks failed
Test / pytest (pull_request) Failing after 21s
Dedup module for knowledge entries with:
- SHA256 content hashing for exact duplicates
- Token Jaccard similarity for near-duplicates (default 0.95)
- Quality-based merge: keeps higher confidence/source_count
- Metadata merging: tags, related, source_count
- Dry-run mode
- 30 tests passing
- Built-in --test mode with generated duplicates

Usage:
  python scripts/dedup.py --input knowledge/index.json
  python scripts/dedup.py --input knowledge/index.json --dry-run
  python scripts/dedup.py --test

Closes #196.
2026-04-21 07:58:09 -04:00
6dd354385f feat: Add freshness.py (#200) 2026-04-21 11:57:53 +00:00
Timmy
55adcb31dc fix: implement refactoring_opportunity_finder API (#210)
Some checks failed
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
Some checks failed
Test / pytest (pull_request) Failing after 20s
2026-04-21 11:21:58 +00:00
f7c479c4eb fix: escape quotes in DOT renderer (#212)
Some checks failed
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
Some checks failed
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