Repository navigation
Releases: WizisCool/oh-my-cpa
Release list
v0.1.4
Docker Hub: wiziscool/oh-my-cpa:v0.1.4
Multi-platform digest: wiziscool/oh-my-cpa@sha256:fd14c0e9d3234dc6fc0ec4d5384e8d4181e0b8ca6e55e583cfe8fa22025888a0
Docker platforms: linux/amd64, linux/arm64.
Native executables: Darwin, Windows, Linux and FreeBSD, each on amd64 and arm64. Archives embed the console; verify downloads with checksums.txt.
See installation and the agent guide.
What's Changed
- fix(plugin-host): align native routing and authentication by @WizisCool in #153
- ci(testing): strengthen verification and parallelize release gates by @WizisCool in #152
- fix(plugin-host): verify page management credentials before CPA by @WizisCool in #154
- chore(release): prepare v0.1.4 by @WizisCool in #155
Full Changelog: v0.1.3...v0.1.4
v0.1.3
Docker Hub: wiziscool/oh-my-cpa:v0.1.3
Multi-platform digest: wiziscool/oh-my-cpa@sha256:1cbbbb45528189f02e37507d3dd7291b7545eb3c0649f123907d2fded61193a9
Docker platforms: linux/amd64, linux/arm64.
Native executables: Darwin, Windows, Linux and FreeBSD, each on amd64 and arm64. Archives embed the console; verify downloads with checksums.txt.
See installation and the agent guide.
What's Changed
- chore(coderabbit): skip generated screenshots and the demo dataset by @WizisCool in #139
- chore(github): add issue forms and a pull request template by @WizisCool in #140
- feat(pricing): bill time-of-day tiers on their own time zone and widen the agent's pricing surface by @WizisCool in #141
- feat(management): align provider, credential, quota and log controls by @WizisCool in #142
- fix(config): preserve Codex behavior settings after save by @WizisCool in #144
- fix(console): repair cooldown feedback and popup interactions by @WizisCool in #146
- feat(release): publish cross-platform executable archives by @WizisCool in #145
- feat(requests): select and export requests, pattern filter and lighter scrolling by @WizisCool in #147
- style(model-square): draw model cards on the surface layer by @WizisCool in #148
- fix(security): resolve three Dependabot dependency alerts by @WizisCool in #149
- chore(release): prepare v0.1.3 by @WizisCool in #150
Full Changelog: v0.1.2...v0.1.3
v0.1.2
Model Square
- Model Square replaces Quick Start with a read-only directory of the Call Points
advertised by CPA's live model list, grouped by manufacturer. - The directory shows model prices and provides model details, 24-hour request
counts and bundled reference metadata where an exact identity is known.
Missing facts remain unknown; advertised availability does not guarantee that
an inference request will succeed.
Plugin pages and management
- Plugin-registered pages appear in the sidebar and open inside the console
through an authenticated, same-origin host. The management key stays on the
server and the host restricts the routes it forwards. - Plugin navigation separates installed plugins, the store and plugin pages.
Settings are edited directly, with empty values falling back to the plugin's
declared defaults. - Plugin row actions use consistent controls, and authentication-provider
connections use the plugin-declared provider identity.
Permanent dashboard statistics
- Dashboard statistics are retained permanently, independently of request records
and captured payloads. Existing retained records are folded into usage facts by
the background maintenance loop; totals remain available while it catches up. - The dashboard adds an All time range. Opening request details from that range
uses the request list's longest preset, 90 days, rather than implying that
individual records are kept forever. - Request records default to 90 days of retention, and decoded captured payloads
default to 7 days. Cleanup does not remove a request record before its statistics
have been folded into permanent facts.
OAuth model rules and development
- The OAuth workspace groups model aliases and exclusions under the same provider
identity. Providers declared by authentication plugins use their canonical
identities for these rules as well as their connections. - Exclusions apply before aliases, so an alias cannot restore an excluded upstream
model. Empty exclusions remove that provider's rules. - The development server redirects the bare
/omcpath to/omc/, preserving
sub-path asset loading.
Upgrade notes
- Review retention settings before upgrading. The default
OMCPA_USAGE_RETENTION_DAYSchanges from 400 to 90. The new
OMCPA_USAGE_INBOX_RETENTION_DAYSdefaults to 7; a value of0makes decoded
payloads follow request-record retention. With neither variable set, maintenance
removes request records older than 90 days once their statistics are folded,
and decoded payloads older than 7 days. - To retain the previous policy, set
OMCPA_USAGE_RETENTION_DAYS=400and
OMCPA_USAGE_INBOX_RETENTION_DAYS=0before upgrading. Dashboard statistics
survive subsequent request-record cleanup, but statistics for records deleted
before this upgrade cannot be recovered. Deleted records and payloads cannot
be recovered without a backup. - Back up the persistent database and preserve its master key before upgrading.
Migrationmigrations/035_usage_facts.sqlruns through the normal startup
migration and backup gates. Existing request records are folded into the new
tables after startup; do not rewind migration history when recovering an
installation. Followdocs/ops/sqlite-operations.mdfor backup and recovery. - Cleanup frees SQLite pages for reuse but does not shrink the database file.
Compaction remains an explicit operator action. - Compose continues to default to
latest. For a version-pinned deployment, use
wiziscool/oh-my-cpa:v0.1.2orwiziscool/oh-my-cpa:0.1.2after publication.
Bothlinux/amd64andlinux/arm64are distributed through Docker Hub.
Docker Hub: wiziscool/oh-my-cpa:v0.1.2
Multi-platform digest: wiziscool/oh-my-cpa@sha256:d1a9aeaf94b62557f135a46a6a9959ef26e28f625bba9e4a6023ae6afb81fdab
Platforms: linux/amd64, linux/arm64.
See installation and the agent guide.
What's Changed
- feat(plugins): host plugin-registered pages and rework plugin navigation and settings by @WizisCool in #132
- fix(plugins): unify row actions and correct auth-provider connections by @WizisCool in #133
- feat(models): replace Quick Start with Model Square by @WizisCool in #134
- feat(usage): keep dashboard statistics permanently and roll request records by @WizisCool in #135
- fix(dev): redirect the bare /omc to /omc/ on the dev server by @WizisCool in #136
- feat(oauth): unify provider model aliases and exclusions by @WizisCool in #137
- chore(release): prepare v0.1.2 by @WizisCool in #138
Full Changelog: v0.1.1...v0.1.2
v0.1.1
Docker Hub: wiziscool/oh-my-cpa:v0.1.1
Multi-platform digest: wiziscool/oh-my-cpa@sha256:0ac250cefc62ac3a4ecacfc833a0b96b39d99b670dbf655b16ef81dde96609fc
Platforms: linux/amd64, linux/arm64.
See installation and the agent guide.
What's Changed
- fix(ci): provision Chromium before release verification by @WizisCool in #126
- feat(usage): record the model an upstream actually served by @WizisCool in #127
- docs(install): organise installation by what the reader already runs by @WizisCool in #128
- docs(install): add OMC as a service in CPA's own Compose file by @WizisCool in #129
- feat(quota): estimate scoped window capacity with previous-cycle references by @WizisCool in #130
- chore(release): prepare v0.1.1 by @WizisCool in #131
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Docker Hub: wiziscool/oh-my-cpa:v0.1.0
Multi-platform digest: wiziscool/oh-my-cpa@sha256:9e15e6d5273b3212b45b6673426c8ab8111494087fc7fadfba6c8a2ceb91e69f
Platforms: linux/amd64, linux/arm64.
See installation and the agent guide.
What's Changed
- fix(pricing): stamp manual price update time from the server clock by @WizisCool in #2
- test(pricing): fail the stamp assertion when no price row was stored by @WizisCool in #5
- fix(web): render icon picker marks on its first open by @WizisCool in #4
- build(deps): bump github.com/go-chi/chi/v5 from 5.2.3 to 5.2.4 by @dependabot[bot] in #1
- feat(dashboard): adopt @ant-design/charts, and plot each KPI tile's own metric by @WizisCool in #6
- fix(dashboard): keep the distribution when the grid is finer than the rollup by @WizisCool in #7
- feat(dashboard): token activity heatmap, and a per-theme accent the brand follows by @WizisCool in #8
- feat(dashboard): model usage panels, and a neutral console palette by @WizisCool in #9
- feat(dashboard): call-point grouping, per-group costs, token unit style, and an OMC settings page by @WizisCool in #10
- fix(settings): keep the Chinese token units out of an English console by @WizisCool in #11
- fix(dashboard): centre both model marks in the card at a phone width by @WizisCool in #12
- fix(settings): fit the unit-style picker on a phone in both themes by @WizisCool in #14
- fix(dashboard): align model usage columns and state ring hover by @WizisCool in #15
- fix(dashboard): read the token activity tooltip's volume in the console's unit style by @WizisCool in #13
- fix(acceptance): make a port collision and a picker-shape race fail loudly by @WizisCool in #16
- feat(usage): surface stream mode and stabilize TPS by @WizisCool in #17
- Harden request records, OAuth parity, console UX, themes, and CI by @WizisCool in #18
- feat(providers): Devin OAuth and quota, Meta Muse OAuth and API keys by @WizisCool in #19
- feat(motion): dashboard revision motion and an enforced budget by @WizisCool in #20
- fix(providers): keep a provider icon with the provider it was chosen for by @WizisCool in #21
- feat(shell): header preference menus and fixed-width actions by @WizisCool in #22
- fix(dashboard): paint the token trend's chrome in the console's ink by @WizisCool in #23
- feat(i18n): add Traditional Chinese and Malay localization by @WizisCool in #24
- feat(dashboard): add provider metadata and windowed traffic by @WizisCool in #25
- feat(keys): redesign key management and add dashboard filtering by @WizisCool in #26
- feat(keys): model client keys as CPA does, on one list surface by @WizisCool in #27
- fix(console): copy on plain-HTTP origins through one fallback path by @WizisCool in #28
- fix(console): copy inside a dialog by joining its focus trap by @WizisCool in #29
- fix(config): save payload rules when the config has no payload map by @WizisCool in #30
- feat(theme): two theme modes with derived, authorable palettes by @WizisCool in #31
- fix(dashboard): order provider rows by state before volume by @WizisCool in #32
- test(acceptance): reach the toolbar the way the console folds it away by @WizisCool in #33
- refactor: split the twelve god files by responsibility by @WizisCool in #34
- fix(providers): prevent model-list pull credential leaks by @WizisCool in #39
- fix(dashboard): centre model usage row in stretched card by @WizisCool in #40
- feat(console): make the web console usable from a phone by @WizisCool in #41
- fix(oauth): draw each provider's own brand mark, inlined by the server by @WizisCool in #42
- fix(providers): write the name overlay only after the gateway accepted the update by @WizisCool in #43
- fix(cpa): keep the model catalog's per-source failures typeable by @WizisCool in #44
- fix(plugins): keep a plugin's mark when the plugin is switched off by @WizisCool in #47
- chore: drop the scratch files a squash merge carried onto master by @WizisCool in #48
- fix(keys): keep caller keys out of the responses that do not edit them by @WizisCool in #46
- feat(demo): a public live demo that is the real console with no gateway behind it by @WizisCool in #50
- feat(providers): name the provider key that answered a request by @WizisCool in #51
- fix(providers): keep overlay writes inside the admission gate by @WizisCool in #52
- fix(api): audit credential-bearing list reveals fail closed by @WizisCool in #53
- fix: remediate verified review findings across security, data, and CI by @WizisCool in #54
- fix(dashboard): draw the provider rate on one fixed band by @WizisCool in #55
- fix(quota): read the Codex renewal time live instead of from a stale token by @WizisCool in #56
- feat(system): report versions, storage and maintenance on a trimmed system page by @WizisCool in #57
- fix(demo): repair the token trend, the provider icons and the model catalogue by @WizisCool in #58
- docs(ops): record that the Vercel retirement is complete by @WizisCool in #59
- feat(system): show observed maintenance results in a 2x2 grid by @WizisCool in #60
- fix(demo): keep a dashboard tail's mark with the window it describes by @WizisCool in #61
- feat(oauth): unify credential management workspace by @WizisCool in #62
- fix(web): report a quota refresh once and stop naming files in menu labels by @WizisCool in #63
- fix(demo): report a refusal once, and make the fixture read like real traffic by @WizisCool in #64
- feat(web): add the model playground and the OMC agent by @WizisCool in #65
- feat(cpa): serve CPA v7 and v8 gateways from one build by @WizisCool in #68
- build(deps): bump go-sdk and x/image, build on Go 1.27.1 by @WizisCool in #69
- fix(usage): let the server resolve the request list's window end by @WizisCool in #70
- feat(web): unify the console's page chrome, rebuild key management by @WizisCool in #72
- feat(logs): split logs into gateway, service and audit sources by @WizisCool in #73
- feat(plugin-management): consolidate store and management into tabs by @WizisCool in #74
- feat(pricing): price from openrouter with tiers and channel multipliers by @WizisCool in #75
- feat(web): give the audit trail its own page and unify the console's lists by @WizisCool in #76
- fix(quota): Codex limit_reached no longer zeroes the weekly window by @WizisCool in #77
- feat(providers): manage xAI, Vertex and Interactions API keys by @WizisCool in #79
- docs(architecture): document per-window quota exhaustion rule by @WizisCool in #78
- ci(verification): move the probe catalog into PR CI and scope local checks by @WizisCool in #82
- feat(web): give the AI provider list an overview, filters and 24h traffic by @WizisCool in #81
- fix(workspace): send on Enter and click as soon as the gate opens by @WizisCool in #83
- feat(web): rebuild th...