Commit Graph
9 Commits
Author SHA1 Message Date
james.maesandClaude Opus 4.7 439e1ee2f5 ci: build hygiene — webview cleanup + OpenSSF Scorecard (#46, #178) (#194)
* ci(build-webview): sweep stale hashed chunks before rsync (#46)

Vite emits content-hashed asset names (e.g. `index-CXPb0I5z.js`), so the
active bundle filename rotates on every source/dependency edit. The
existing rsync runs without `--delete` (to preserve `bus-harness.html`
and `.gitignore`), so old chunks accumulated in
`App/Resources/webview/assets/` — observed 9 stale `index-*.js` /
`.js.map` pairs locally before this fix.

Add an explicit `rm -f` of the asset glob (JS + JS map + CSS + CSS map)
before the rsync drops the fresh bundle. The preserved files
(`bus-harness.html`, `index.html`, `.gitignore`) live one level up in
`$DEST`, not in `$DEST/assets`, so the rm cannot reach them.

Verified locally: `bash scripts/build-webview.sh` now leaves exactly one
`index-*.js` + `.js.map` in `assets/` (matching the reference in
`index.html`).

Refs #46

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* ci(scorecard): add OpenSSF Scorecard workflow + README badge (#178)

Adds `.github/workflows/scorecard.yml` running `ossf/scorecard-action@v2.4.0`
on:
- Weekly cron (Mondays 06:00 UTC) for posture drift detection
- Push to develop for prompt regression visibility
- workflow_dispatch for ad-hoc runs

Permissions follow the canonical Scorecard set (`id-token: write`,
`contents: read`, `security-events: write`) with top-level `read-all` and
job-scoped writes. Results are published to the OpenSSF public dataset
(powers the README badge URL) and uploaded as SARIF to code-scanning.

The workflow consumes no untrusted user inputs in `run:` blocks, so it is
not exposed to workflow-injection patterns documented in
github.blog/security/.../how-to-catch-github-actions-workflow-injections.

README.md gains the standard Scorecard badge next to the existing
license/platform/swift badges.

Refs #178

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 09:29:48 -05:00
james.maes ba42b6918a docs: BUILDING.md + finalize README MIT license section (#149)
Extracts the long-form build reference (per-package SPM tests, app-target xcodebuild wrapper, webview workflow, 18 boundary-gate linters, real-hardware env-flag tests) into BUILDING.md so the README can stay first-screen weight. Finalizes the README License section against today's MIT decision (e1fcdc5), removing the stale TODO block.
2026-05-12 15:57:48 -05:00
james.maesandClaude Opus 4.7 0cc94c637a docs(branding): assets/branding/ + restore MIT license section
- Add assets/branding/README.md with shot list for the five high-impact
  brand assets (social preview, logo, hero shot, app icon, banner) and
  GitHub upload instructions for each.
- Add assets/branding/STYLE.md documenting the colour palette (cyan
  family + HUD navy/black + warning/critical), typography (Eurostile /
  Saira / Orbitron family for display, SF Pro for UI), and tone of
  voice ("terse, technical, dryly opinionated, slightly sardonic").
- Drop five .todo placeholder files so the directory tree shows intent
  without faking assets.
- Restore the README License section to a clean MIT pointer (a
  concurrent agent had reverted it to "decision still open"; that
  decision is now made and lives at .planning/decisions/license.md).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 15:09:14 -05:00
james.maesandClaude Opus 4.7 b2710eee48 docs(readme): branding pass — badges, MIT license, acknowledgments
- Add status badges (license, last commit, issues, platform, Swift) under
  the tagline so the GitHub card carries signal at a glance.
- Replace the "personal use only / no license granted" footer (which
  contradicted the actual MIT LICENSE file committed at 9b62db5) with a
  proper MIT pointer + link to the decision rationale.
- Reframe the scope paragraph: still single-user single-machine, but
  acknowledge the repo is open source and useful artifacts (agent loop,
  Bus, MCP, voice, HUD, boundary gates) are here for the lifting.
- Add Acknowledgments section calling out the major OSS dependencies
  (Anthropic, Ollama, MCP SDK, openWakeWord, Silero, ONNX Runtime,
  argmax-oss-swift, mlx-audio-swift, sqlite-vec, R3F, swift-log,
  swift-nio, Yams) so credit and discoverability are explicit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 15:05:33 -05:00
james.maesandClaude Opus 4.7 c4c32f7aae docs(readme): refresh — diagrams + architecture + culture + roadmap
Audit-and-rewrite of root README against current truth (2026-05-12).
The previous README was accurate but list-shaped and unillustrated;
the rewrite reorients around what a new reader (human or AI agent)
needs in 60 seconds.

New / changed sections:
- Tagline + two-paragraph intro (what / who / why)
- Status banner pointing at GitHub Issues + Milestones (canonical)
- Screenshots placeholder + shot list under assets/screenshots/
- "Architecture at a glance" with a top-level mermaid flowchart
  (Swift host + LLM providers + WKWebView, with 14 nodes)
- Subsystems table — eight first-class + supporting packages
- "Install order" section with a mermaid DAG of the AppDelegate
  install sequence (vision → agent → voice, plus parallel
  memory/MCP/replay), matching check-install-order.sh
- "Agent turn lifecycle" mermaid showing the orchestrator → single
  broadcaster fanout, with the strict-mode degradation preamble
  inject point called out
- "Boot-health probes" mermaid for the eight NOT FAKED probes →
  rollup → menu-bar icon / banner / agent preamble
- "Project culture" section codifying the in-code-docs philosophy,
  NOT FAKED probes, strict-mode escalation, 18 boundary gates, the
  three-name test-double taxonomy, audit-and-stabilize cadence,
  and the GitHub-Issues-is-canonical policy
- "Roadmap" reorganized around the v0.1 → v1.1 milestones from
  GitHub Milestones (user-outcome-focused, not subsystem-focused)
- Build & run cleaned up; boundary-gates one-liner; opt-in
  real-hardware test commands kept

Also adds assets/screenshots/README.md with a prioritized shot
list — eight screenshots in priority order — and a note on why
diagrams stay as inline mermaid (GitHub-native, no re-export).

Removed: the older "Status" subsystem-state table, which had
become a mix of v0.12.0 milestone audit terms (Track A/B/C/D,
B-8) that don't map cleanly to the new GitHub Issues taxonomy.
Status now points at GitHub Issues + Milestones as the source
of truth.

Gates: 17/18 pass. check-app-builds.sh fails on the in-flight
AppDelegate.swift rewrite (unstaged, owned by a parallel agent)
— unrelated to this markdown-only change. Confirmed only
README.md + assets/screenshots/README.md are staged here.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 15:00:21 -05:00
james.maesandClaude Opus 4.7 35330b3511 docs(readme): refresh status + MCP tool catalog post Phase 10 Wave 1
- Status line: nine planned phases shipped, Phase 10 mid-flight; cite 3974a15
- MCP tools row: split helpers vs in-process; add the four self-knowledge
  tools landed in 74b9ac2 (list_audio_devices, get_active_audio_route,
  get_self_state, list_camera_devices)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-06 16:11:21 -05:00
james.maesandClaude Opus 4.7 4e1c8a0e13 docs: write top-level README.md
Replaces the stale "Pre-implementation" stub with a current overview:
status table grounded in audit-2026-05-04 reality, repo layout, build/test
commands, and pointers to ARCHITECTURE/CONTRIBUTING/SESSION-STATE.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-04 16:59:43 -05:00
james.maes 995e960e8e chore: migrate pre-GSD source material to .planning/source-material/ and refresh top-level docs 2026-04-22 05:37:16 -05:00
james.maes d1047f4cf3 Initial commit 2026-04-17 09:21:59 -05:00