Skip to content

OpenFace v0.3.0 release header

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.

scenariobaseline p50 / p95candidate p50 / p95
cold Space detail358 / 372 ms67 / 358 ms
warm Space detail359 / 368 ms67 / 368 ms

Operator impact

  • No repository or database migration is required.
  • KNOWLEDGE_CACHE_TTL_SECONDS controls the public knowledge metadata cache and defaults to 60 seconds. Private and authenticated repository content is excluded.
  • Set OPENFACE_PERFORMANCE_LOG=1 only while diagnosing API, database, Forgejo, or Markdown phases.
  • GET /api/performance/navigation exposes 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.

Released under the MIT License. Third-party components retain their own licenses.