Skip to content

devfolio v0.3.0 Release Notes

Release Date: 2026-08-02

Overview

DevFolio's third release adds a fourth command group — quarterly report — joining GitHub stats, git commit analytics, changelog highlights, and OmniDevX token spend into one self-contained HTML report. devx dashboard gains weekly/monthly/quarterly period reports, the contributor profile picks up per-model AI stats, and the underlying dashboard-IR dependency is renamed from dashforge to uiforge.

This is a non-breaking, additive release for CLI users. There is one internal-only breaking change: contributor/client.go's unexported GitHub-fetching methods now take *gogithub.Repository instead of *github.Repository — not visible outside the package.

Highlights

devfolio quarterly report

devfolio quarterly report \
  --username grokify \
  --since 2026-04-01 --until 2026-06-30 \
  --repos ~/go/src/github.com/grokify \
  --events ~/.plexusone/omnidevx/data/events \
  --output Q2-2026.html

Composes four independent, optional data sources into one report:

  • Git history (--repos) — commit counts, LOC, conventional-commit categories, AI-assisted commits
  • GitHub stats (--stats/--stats-file) — pre-generated via gogithub profile stats
  • Changelog highlights — auto-detected from CHANGELOG.md/CHANGELOG.json under --repos
  • Token spend (--events) — Claude Code telemetry from the local OmniDevX store

Three output formats: self-contained HTML (--format html, the default, with svg or CDN-hosted echarts chart engines), uiforge Dashboard IR JSON (--format dashboard), or the raw report data (--format json).

See Quarterly Commands.

DevX period dashboards

output/devxdashboard gains PeriodReport/ExportPeriod for weekly/monthly/quarterly dashboards, with model-breakdown donut charts (tokens, cost) and stacked bar charts by model.

Contributor profile: per-model AI stats and PRISM datasource

AICollabStats/AIToolStat gain per-model tracking — a new AIModelStat type for model-level commit counts (e.g., "Sonnet 4", "Opus 4") and a MostUsedModel field (e.g., "Claude Code/Sonnet 4") — bridged from gogit.AIStats via the new AICollabStatsFromGogit(). A new datasource/prism package loads PRISM Control JSONL exports.

Migrated off go-github onto gogithub/clientv1.Client

contributor/client.go now wraps gogithub's version-isolated clientv1.Client and stable gogithub.* types instead of a raw *github.Client, including a new ListUserEvents wrapper (from gogithub v0.16.0) for the contribution activity heatmap. github.com/google/go-github is now only a transitive dependency. This mirrors the same migration already done in assistantkit and versionconductor.

dashforge renamed to uiforge

All internal references and the dashboard-IR dependency itself were renamed from dashforge to uiforge — a pure import-path swap, no functional change. README, MkDocs site, and CLI help text now say uiforge throughout.

Installation

go install github.com/plexusone/devfolio/cmd/devfolio@v0.3.0

Dependencies

  • Add github.com/plexusone/uiforge v0.4.0 (dashboard-IR types, replacing dashforge)
  • Bump github.com/plexusone/omnidevx-core to v0.3.0 (embedded pricing)
  • Bump github.com/grokify/gogithub to v0.16.0, dropping github.com/google/go-github to a transitive dependency
  • Add github.com/grokify/gogit v0.8.0 (git history parsing for quarterly/AI stats)
  • Bump github.com/grokify/structured-changelog to v0.15.1
  • Routine go mod dependency updates

Migration

No breaking changes for CLI users or importers of the public API. quarterly report, devx dashboard's period reports, and the contributor profile's per-model AI stats are purely additive. If you imported contributor/client.go's unexported helpers directly (not possible outside the package), note they now take *gogithub.Repository instead of *github.Repository.

What's Next

Per the OmniDevX ecosystem plan, next up is the DoltDB analytics store (spec in docs/specs/doltdb/) for SQL-based aggregation of OmniDevX events, and continuing to rebase team velocity onto rollups of individual period reports per Phase 9.

See CHANGELOG.md for the categorized commit list.