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
26 changes: 2 additions & 24 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ jobs:
.config.yaml.template \
docker-compose.yml.template \
compose.all-in-one.yml \
compose.local.override.yml \
mkdocs.yml
compose.local.override.yml

compose-validate:
name: Compose Validate
Expand Down Expand Up @@ -113,27 +112,6 @@ jobs:
working-directory: dotty-pi-ext
run: npm test

frontmatter-check:
name: Frontmatter Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Verify YAML frontmatter in docs
run: |
fail=0
for f in docs/*.md; do
# Skip symlinks — root-level files (README, ROADMAP, SETUP, etc.)
# are symlinked into docs/ for the mkdocs nav but are primarily
# consumed as plain GitHub markdown; YAML frontmatter would clutter
# their on-GitHub rendering.
[ -L "$f" ] && continue
if ! head -1 "$f" | grep -q '^---$'; then
echo "FAIL: $f missing YAML frontmatter"
fail=1
fi
done
exit $fail

docs-links:
name: Docs Link Check
runs-on: ubuntu-latest
Expand All @@ -153,7 +131,7 @@ jobs:
notify-failure:
name: Notify on Failure
runs-on: ubuntu-latest
needs: [yaml-lint, compose-validate, config-parse, lint, python-tests, pi-ext-tests, frontmatter-check, docs-links]
needs: [yaml-lint, compose-validate, config-parse, lint, python-tests, pi-ext-tests, docs-links]
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
Expand Down
110 changes: 0 additions & 110 deletions .github/workflows/docs-deploy.yml

This file was deleted.

5 changes: 2 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@ repos:
- id: end-of-file-fixer
exclude: '^firmware/'
- id: check-yaml
exclude: '^(mkdocs\.yml|\.github/workflows/.*\.yml|firmware/)'
# mkdocs.yml uses python tags (!!python/name:...) that PyYAML
# safe_load can't resolve; GHA workflows use the same. yamllint
exclude: '^(\.github/workflows/.*\.yml|firmware/)'
# GHA workflows use tags PyYAML safe_load can't resolve; yamllint
# already lints them in CI.
Comment on lines 24 to 27
- id: check-json
exclude: '^firmware/'
Expand Down
1 change: 0 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ First git-tagged public release. Covers all server + firmware work shipped to `m
- **Wake-word options doc** (`docs/wake-word.md`) — current architecture, 21 prebuilt English wake words, three paths to "Hey Dotty" (Path A interim shipped, Path B microWakeWord roadmap, Path C wakenet9 custom). Sample collection guide.
- **SBOM scaffold** (`scripts/generate-sbom.sh`, `docs/sbom.md`) — CycloneDX-ish component+license inventory. `make sbom`.
- **Signed releases scaffold** (`docs/signed-releases.md`, `KEYS.txt`) — GPG signing walkthrough + CI integration snippet (commented-out signing step ready to enable).
- **Versioned docs via mike** (`mkdocs.yml`, `.github/workflows/docs-deploy.yml`, `docs/requirements.txt`, `docs/versioning.md`) — `/latest/`, `/v0.1/`, `/dev/` URL structure.

### Added — firmware (StackChan/dotty fork, 2026-04-25 sprint)
- **Layer 1 privacy LEDs scaffold** — `PrivacyLeds` singleton drives right-ring index 6 (mic) + index 7 (camera). RAII `MicPeripheralGuard` + `CameraPeripheralGuard` tie LED state to peripheral enable codepath. New `self.robot.get_privacy_state` MCP tool. `set_led_multi` rejects indices 6/7.
Expand Down
15 changes: 6 additions & 9 deletions COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ server-side components: xiaozhi-esp32-server, the `dotty-pi` agent container,
dotty-behaviour, and the `bridge.py` dashboard service. It describes what each
component exposes, what counts as a breaking change, and how to upgrade safely.

For protocol wire formats see [protocols.md](https://brettkinny.github.io/dotty-stackchan/latest/protocols/).
For protocol wire formats see `docs/protocols.md`.

## Compatibility matrix

Expand Down Expand Up @@ -92,14 +92,11 @@ Server and firmware are versioned independently:
3. Commit with message: `release: server-vX.Y.Z` (or `release: fw-vX.Y.Z`).
4. Create an annotated tag: `git tag -a server-vX.Y.Z -m "server-vX.Y.Z"`
5. Push the tag: `git push origin server-vX.Y.Z`
6. Deploy versioned docs (handled automatically by `.github/workflows/docs-deploy.yml`
on tag push; if you need to deploy manually, run
`mike deploy --push --update-aliases X.Y latest` from the repo root after
`pip install -r docs/requirements.txt`). See
[`versioning.md`](https://brettkinny.github.io/dotty-stackchan/latest/versioning/) for the full URL/alias model.

GitHub Actions handles image builds, artifact publishing, and versioned doc
deploys from the tag.

The docs live as plain markdown under `docs/` and render on GitHub directly —
there is no separate docs-site build to deploy.

GitHub Actions handles image builds and artifact publishing from the tag.

### Compatibility matrix updates

Expand Down
14 changes: 0 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,6 @@ deployments must use a placeholder:
Port numbers (`8000`, `8003`, `8080`, `18789`, `42617`) are product-generic
and do not need placeholders.

## Documentation versioning

The docs site is published per-version using
[`mike`](https://github.com/jimporter/mike). Pushes to `main` update the
`/dev/` alias automatically; tag pushes (`server-vX.Y.Z`, `fw-vX.Y.Z`) publish
a versioned tree at `/vX.Y/` and bump the `/latest/` alias. See
[`versioning.md`](https://brettkinny.github.io/dotty-stackchan/latest/versioning/) for the URL structure, version
dropdown behavior, and maintainer commands (`mike deploy ... --push`,
`mike list`, `mike delete`).

When you add or rename a doc, prefer edits that work cleanly across versions
(don't break links from older versions to ones that still exist). If a doc is
only relevant for a future version, note that in the PR description.

## AI-assisted contributions

This project is openly AI-assisted, and your contributions can be too — using a
Expand Down
39 changes: 0 additions & 39 deletions docs/assets/dotty-hero.svg

This file was deleted.

3 changes: 0 additions & 3 deletions docs/requirements.txt

This file was deleted.

7 changes: 4 additions & 3 deletions docs/style.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ description: One-line summary of what this page covers.
---
```

MkDocs Material uses these for the HTML `<title>` and search index.
It's a concise, machine-readable summary of the page — handy for tooling and
for readers skimming the raw file.

## Headings

Expand All @@ -40,7 +41,7 @@ MkDocs Material uses these for the HTML `<title>` and search index.

1. Create the file in `docs/cookbook/` (e.g. `docs/cookbook/do-the-thing.md`).
2. Add frontmatter (`title` + `description`).
3. Add a nav entry in `mkdocs.yml` under the `Cookbook:` section.
3. Link it from `docs/README.md` so it's discoverable.
4. Keep it short — one task, one page. Link to reference docs for background.

## Decay annotations
Expand Down Expand Up @@ -87,4 +88,4 @@ IPs, hostnames, or API keys.
## Keep it short

If a page is getting long, split it. One concept per page, one task per
cookbook entry. The nav is cheap — use it.
cookbook entry — then link the pieces together.
113 changes: 0 additions & 113 deletions docs/versioning.md

This file was deleted.

Loading
Loading