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
5 changes: 0 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ updates:
cooldown:
default-days: 7
groups:
ccusage-runtime:
patterns:
- ccusage
- '@ccusage/*'
# react and react-dom assert at runtime that they resolve to the exact
# same version, so they have to move in one PR. Bumping react alone
# leaves react-dom behind in the lockfile and every desktop test dies
Expand All @@ -39,5 +35,4 @@ updates:
- version-update:semver-major
labels:
- dependencies
- ccusage
open-pull-requests-limit: 5
3 changes: 1 addition & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,10 @@ jobs:
pnpm test:corpus-contracts
pnpm test:retrieval
pnpm test:core-tools
- name: Prepare CLI, MCP, and ccusage companions
- name: Prepare CLI and MCP companions
run: |
pnpm core:prepare-mcp
pnpm core:prepare-cli
pnpm core:prepare-ccusage
pnpm core:qualify-cli
- name: Rust core, CLI, and MCP contracts
run: |
Expand Down
8 changes: 7 additions & 1 deletion PROJECT_STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,20 @@ separately approved safety design justify renewed investment.
- v1.14.3 includes the post-v1.14.2 code-health and native qualification
repairs. Subsequent documentation-only bookkeeping does not imply a newer
desktop release; release truth remains the published `v1.14.3` tag.
- Unreleased source proposes retiring the general Usage workspace, provider
allowance checks, `codevetter usage`/`quota`, and the bundled `ccusage`
sidecar. ContextDaddy owns general agent usage. Per-verification token and
cost receipts and CodeVetter's History recovery remain. This proposal has
not been published in a desktop release.
- Maintenance is limited to core verification reliability, regressions,
security, dependency hygiene, and evidence requested by real users. New
product surfaces require an explicit change in the investment decision.

## Dependencies

External:
- Bundled `ccusage` 20.0.20 sidecar — local, offline Claude/Codex/Grok usage accounting; exact updates are opened weekly and remain qualification-gated.
- Published v1.14.3 bundles `ccusage` 20.0.20 for local Claude/Codex/Grok usage
accounting; the unreleased source proposal above removes that sidecar.
- Installed and authenticated Codex or Claude CLI for Work conversations; provider account policy remains external to CodeVetter.
- GitHub Releases + GitHub Actions — `auto-release.yml` cuts a `v<version>` release on native `Shared.xcconfig` version bumps; `release.yml` signs, notarizes, qualifies, and uploads the SwiftUI app, DMG, ZIP, and Sparkle `appcast.xml`.
- Cloudflare Pages — hosts the landing page (`codevetter` project, codevetter.com).
Expand Down
2 changes: 1 addition & 1 deletion agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ node scripts/check-docs.mjs # Validate docs (links, frontmatter, structure)
- **Three synchronized surfaces**: SwiftUI, CLI, and MCP consume the same versioned Rust-owned receipt schemas. Do not fork business rules into the UI.
- **DB is `rusqlite`, not `@tauri-apps/plugin-sql`.** Do not re-add `plugin-sql` (removed in the 2026-07-11 desloppification sweep). See `docs/architecture/data-model.md`.
- **Single package manager: pnpm.** Do not reintroduce `package-lock.json` — dual-lockfile drift broke Cloudflare Pages in May 2026. See `docs/knowledge/failed-approaches.md`.
- **Nav (6 sections)**: Usage, Repo Unpack, Review, Testing, Performance, Settings. Full surface map in `docs/product/surfaces.md`.
- **Nav (6 sections)**: Explore, Review, Testing, Performance, Runs, Settings. Full surface map in `docs/product/surfaces.md`.
- **GH Actions**: `ci.yml` (native + Rust + automation), `auto-release.yml` → `release.yml` (signed/notarized native app), `deploy-landing.yml`, `weekly.yml`, and `docs.yml`. See `docs/operations/`.
- Husky pre-commit runs the staged secret scan when available; pre-push runs lint + secret scan.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,53 +167,6 @@
],
"next_step": "Refresh launch, settled RSS, responsiveness, energy, and long-session evidence on the exact current package with owner-approved foreground qualification."
},
{
"id": "evidence.local_usage",
"name": "Local agent usage",
"purpose": "Inspect local token, cache, cost, model, and session evidence without conflating it with cloud quota telemetry.",
"stage": "current",
"surfaces": {
"ui": {
"availability": "available",
"authority": "read",
"entrypoints": [
"Native Usage (ccusage plus separate indexed Devin history)"
]
},
"cli": {
"availability": "available",
"authority": "read",
"entrypoints": [
"codevetter usage"
]
},
"agent": {
"availability": "planned",
"authority": "none",
"entrypoints": []
}
},
"underlying_tools": [
{
"name": "ccusage 20.0.20",
"role": "Normalizes offline Claude, Codex, and Grok local usage logs",
"requirement": "bundled pinned sidecar"
},
{
"name": "CodeVetter Rust core",
"role": "Owns provider boundaries, ccusage normalization, separate SQLite Devin history, caching, and stale/unavailable states",
"requirement": "bundled"
}
],
"data_boundary": "Local agent logs, optional read-only imported Codex roots, and indexed Devin sessions from the existing SQLite database; no provider credential or network access.",
"qualification": "partial",
"limitations": [
"Indexed Devin sessions, generated/cache tokens, cost, and model rows follow 1w, 30d, 90d, and all-time windows through a separate Rust projection and are never included in ccusage totals.",
"Live provider quotas remain separate telemetry and are never inferred from local spend.",
"Native 1w, 30d, 90d, and all-time selection keeps ccusage chart, totals, models, and sessions aligned while the separate Devin desk follows the same selected window."
],
"next_step": "Migrate live provider telemetry as a credential-safe separate projection, then expose the bounded report through scoped MCP."
},
{
"id": "usage.history_roots",
"name": "Additional Codex history roots",
Expand All @@ -224,7 +177,7 @@
"availability": "available",
"authority": "read_execute",
"entrypoints": [
"Native Usage settings"
"Native History settings"
]
},
"cli": {
Expand Down Expand Up @@ -252,10 +205,10 @@
"limitations": [
"The active CODEX_HOME remains automatic and is not duplicated in the additional-root receipt.",
"A selected sessions or archived_sessions directory is normalized to its containing Codex home.",
"Reconciliation remains a separate explicit Usage action.",
"Root configuration does not run a transcript reconciliation or general usage scan.",
"Agent and MCP surfaces receive no local history-root authority."
],
"next_step": "Keep local history-root mutation out of agent authority and preserve the bounded receipt as usage importers evolve."
"next_step": "Keep local history-root mutation out of agent authority and preserve the bounded archive receipt."
},
{
"id": "configuration.native_settings",
Expand Down Expand Up @@ -441,7 +394,7 @@
"availability": "available",
"authority": "read_execute",
"entrypoints": [
"Native Usage settings"
"Native History settings"
]
},
"cli": {
Expand Down
Loading
Loading