OpenFace v0.3.0
OpenFace v0.3.0 makes the path from finding a repository to seeing a running app easier to follow. These notes cover changes since v0.2.0: metric-backed catalog sorting, immediate navigation feedback, a staged Space readiness flow, shared portal and Forgejo navigation, theme-aware code rendering, and canonical platform branding.
Highlights
- Sort all major catalogs by real signals: 11 catalog surfaces support created, updated, likes, and views in ascending or descending order. OpenFace sorts the complete matching set before pagination and preserves the selection in the URL.
- Immediate navigation feedback: client-side transitions show a progress indicator, pressed state, route skeleton, bounded timeout, and retry path. Bounded p50/p95 telemetry records route classes rather than repository paths.
- Faster-feeling Space startup: the repository shell renders immediately, runtime state comes from one shared source, and the app panel waits for
/run/readiness before mounting the iframe. Public CPU Spaces can start anonymously while management remains protected. - One navigation and one identity: the portal and Forgejo consume a versioned navigation contract with a safe native fallback. The canonical cat mark now covers browser, PWA, maskable, monochrome, auth, error, and documentation surfaces.
- Readable code in every theme: server-side highlight.js rendering uses theme tokens, preserves sanitized Markdown features, and safely falls back for unknown languages.
Performance evidence
The Space detail change was measured locally over ten cold and ten warm samples for both baseline and candidate builds. Candidate p50 improved from about 358–359 ms to 67 ms (about 81%, or 5.3×), while occasional roughly 360 ms outliers kept p95 close to the baseline. Navigation feedback appeared within 28 ms at p95. These are reproducible local measurements from Pull Request #106, not a universal network or hardware guarantee.
| scenario | baseline p50 / p95 | candidate p50 / p95 |
|---|---|---|
| cold Space detail | 358 / 372 ms | 67 / 358 ms |
| warm Space detail | 359 / 368 ms | 67 / 368 ms |
Operator impact
- No repository or database migration is required.
KNOWLEDGE_CACHE_TTL_SECONDScontrols the public knowledge metadata cache and defaults to 60 seconds. Private and authenticated repository content is excluded.- Set
OPENFACE_PERFORMANCE_LOG=1only while diagnosing API, database, Forgejo, or Markdown phases. GET /api/performance/navigationexposes bounded aggregate p50/p95 data. Ingestion is same-origin constrained, rate limited, and does not accept arbitrary paths or metadata.- Space readiness has a 20-second budget and a retry path instead of leaving a stale iframe or transient JSON response visible.
Documentation
Read the v0.3.0 walkthrough, catalog metric sorting, navigation performance, and Docker Spaces.
Validation
The release candidate is checked with frontend type, automation, and production-build suites; bilingual documentation validation and VitePress build; repository Python tests; Docker Compose validation; SVG source and rendered-output validation; GitHub Actions; live documentation URLs; and the release QA inventory.
