* chore(docs): move docs site to standalone pnoker/iot-dc3-docs repo
The VitePress docs site now lives in pnoker/iot-dc3-docs and serves docs.dc3.site from there. Remove the in-repo docs/ and all docs-only build/deploy wiring so nothing dangles.
- delete docs/ (source moved to pnoker/iot-dc3-docs)
- delete .github/workflows/docs.yml (deploy owned by iot-dc3-docs)
- drop npm /docs dependabot block; clean codeql/.gitignore docs paths
- remove Makefile docs-* targets
- relocate AI testing policy into dc3-web/tests/ so the required Web guardrail test is self-contained (was reading ../docs/...)
- rewire README image refs (7 READMEs) and in-repo doc links (README.ai.md, AGENTS.md, dc3/doc/README.md) to https://docs.dc3.site / the new repo
dc3/doc/{TITLE,CHANGE,USAGE}.md STAY - release tooling (make changelog, docker-ci) regenerates them; the docs repo snapshots them.
* fix(docs): repair pre-existing broken doc links found during migration
- 8 READMEs: /en|zh/introduction/technology-stack -> /en|zh/development/technology-stack (page lives under development/, not introduction/)
- dc3-web/tests/README.md: ../docs/test-debugging.md (missing) -> https://docs.dc3.site/en/frontend/test-debugging
Update auth, gateway, architecture, quickstart, changelog, and superpowers design documents for the Principal identity model and OAuth-backed MCP server.
The MkDocs Material site felt visually dated. Switch to VitePress to
get a fresher default theme (the same one Vue, Vite, Pinia and
Element Plus use) and align the docs toolchain with the project's
Node ecosystem.
- Replace mkdocs.yml/requirements-docs.txt with package.json
(pnpm scripts), pinned vitepress 1.5+, and pnpm-lock.yaml.
- Add docs/.vitepress/config.mts: zh-CN, /iot-dc3/ base, cleanUrls,
per-section sidebars, local search with Chinese UI strings, edit
link, light/dark theme labels in Chinese.
- Rewrite docs/index.md as layout: home with hero, six feature
cards, and platform/architecture/license blocks underneath.
- docs/assets/ -> docs/public/ rename (VitePress static-asset
convention). This rename was already absorbed by an unrelated
upstream commit; only the architecture page reference is updated
to /images/architecture-cn.png.
- Convert MkDocs snippets to VitePress <!--@include:-->:
- community/{contributing,code-of-conduct,security} pull repo-root
governance files,
- development/changelog and guide/usage pull the docker-ci-
referenced dc3/doc/{CHANGE,USAGE}.md.
- Wrap R<T> in inline code in architecture/modules.md so the Vue
parser does not treat it as an unclosed HTML tag.
- Rewrite .github/workflows/docs.yml: pnpm/action-setup@v4 +
setup-node@v4 (pnpm cache) + pnpm install --frozen-lockfile +
pnpm docs:build + upload-pages-artifact (docs/.vitepress/dist)
+ deploy-pages. Trigger paths include docs/, package.json,
pnpm-lock.yaml, governance files, and the two dc3/doc/ files
referenced via include.
- Update .gitignore: drop /site/ and the Python-only venv entries,
add docs/.vitepress/{cache,dist}/ and a Node/pnpm section.
- Adjust dc3/doc/README.md wording to mention VitePress include
syntax instead of MkDocs snippets.
Verification: pnpm install + pnpm docs:build pass locally (5.44s);
the include-based pages (community/contributing, development/
changelog, guide/usage) render content from their source files; all
per-section sidebars resolve.
The release-note source TITLE.md still carried outdated wording
("project development", "device integration and management") and
omitted the "AI-ready" positioning that README.md and the four
localized READMEs (zh/ja/vi) all promote as a core value proposition.
docker-ci.yml inlines this file into the GitHub Release body, so the
inconsistency surfaces every time we cut a release.
Realign the second paragraph with README.md:16-19 while keeping the
${SERVICE_VERSION} placeholder and the relative architecture image
path so docker-ci.yml's perl-based assembly continues to work.
Set up an end-to-end documentation site so contributors and users have
a unified, searchable, and publishable entry point for project docs.
- Add mkdocs.yml: Chinese-first language, light/dark palette, tabbed
navigation, indexed sections, glightbox for diagrams, and
pymdownx.snippets so community pages can pull from root governance
files (CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md) without
duplicating content.
- Add requirements-docs.txt pinning mkdocs-material and
mkdocs-glightbox.
- Build the docs/ skeleton: index, quickstart, guide, architecture,
development, modules, community. Migrate the seven generic manuals
from dc3/doc/ (QUICKSTART, ENVIRONMENT, LOGGING, TROUBLESHOOTING,
MODULES, DRIVER-AUTHORING, TESTING) and rewire their cross-doc
links. CHANGE.md, TITLE.md, and USAGE.md stay in dc3/doc/ because
docker-ci.yml depends on them; the docs site references them via
mkdocs snippets to keep a single source of truth.
- Add .github/workflows/docs.yml that builds with --strict on push to
release and deploys via actions/deploy-pages.
- Rewrite dc3/doc/README.md as a migration pointer to the new site
and to the three retained release-flow files.
Verification: mkdocs build --strict passes locally; snippets render
correctly; GitHub Pages already enabled in workflow mode via gh api.
Align all READMEs, AGENTS.md, CONTRIBUTING.md and dc3/doc/* with the
new Makefile interface (SERVICES/GROUP selectors, REGISTRY=cn, podman
default) and updated Dockerfile structure.
Refresh module READMEs, AGENTS.md, CONTRIBUTING.md, and dc3/doc/
guides to reflect the unified Dockerfile, consolidated compose stacks,
and updated build instructions.
Driver SPI used the cryptic RValue/WValue names for read/write payload
envelopes. Rename them to ReadPointValue/WritePointValue so the public
contract reads naturally, add a sibling CalculatedPointValue for values
that need their derived/scaled form to flow alongside the raw sample,
and pull the value-type conversion utility into a dedicated
support/TypedValueConverter helper instead of leaving it inline.
DriverCustomService.read/write signatures and the seven driver
implementations (modbus-tcp, mqtt, opc-da, opc-ua, plcs7, virtual,
listening-virtual) move to the new types in lockstep so every consumer
of the SDK keeps compiling. Tests are renamed and resequenced to match,
and the driver authoring guide reflects the new identifiers.
Introduce dc3/doc/TESTING.md as the canonical reference for the iot-dc3
test pyramid, naming conventions, time/randomness isolation rules,
Testcontainers conventions pinned to the production timescaledb-ha:pg18
image, fixture data strategy, contract base classes shipped by
dc3-common-test, the make commands developers run locally and the
ci.yml/test.yml/e2e.yml workflow contract.
Update AGENTS.md so:
- The Validation Checklist references make test, make test-it,
make coverage and proto contract tests; coverage regressions over 1%
block PRs.
- The Documentation Rules section now lists TESTING.md alongside the
other domain-specific docs to keep the guide current as the harness
evolves.
This closes the S0 stage of the test build-out: every subsequent stage
(S1..S8) will deliver business test cases under the layout defined here.
Rename the generic DriverCustomServiceImpl in each driver module to a
protocol-specific name (e.g., ModbusTcpDriverCustomServiceImpl) so
that static analysis tools can scan every driver module without
filtering duplicate fully-qualified class names. Update
DRIVER-AUTHORING.md to reflect the new convention.
The HMAC signing feature was dormant because no deployment config
set the shared secret. Add AUTH_HMAC_SECRET to .env.example, dev
env files, both compose stacks (all 12 services), and document it
in ENVIRONMENT.md.