- translate the banner template documentation and protocol-mesh comments in the eight localized banners, the template, and the social preview
- keep the localized tagline copy inside the comment blocks (it documents the LANGS table values)
- verified: all nine svg files parse as xml and the template placeholders remain intact
The first deploy after enabling the demo.dc3.site custom domain landed in
deployment_queued and was cancelled by the Pages backend. Bump error_count
(10→20) and timeout (10m→15m) so transient queue stalls can ride through
instead of aborting.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* feat(web): complete static mock demo for GitHub Pages
- register core/dashboard/dictionary handlers + seed data (driver/device/
profile/point, dictionaries, dashboard stats/topology/alerts)
- fix router-guard timing: pre-seed auth at main.ts top level before router
install, since the initial navigation runs as a microtask ahead of the
async mock-chunk import
- hide agentic assistant in mock mode (its chat streams over raw fetch and
bypasses the axios adapter)
- assetUrl helper for subpath-safe public assets
- GitHub Pages deploy workflow + public/CNAME (demo.dc3.site)
- unit tests covering the mock adapter
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(web): commit mock core handler skipped by core.* gitignore
The repo-root `core.*` rule (meant for JVM crash dumps) silently skipped
dc3-web/src/mock/handlers/core.ts during `git add`, so the PR build failed
type-check with "Cannot find module './handlers/core'". Force-add the file
and add a negation exception so it can't be dropped again.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* test(web): drop `as never` cast in mock-adapter test
The AI guardrail forbids double-assertion / never-cast type laundering.
Use the real AxiosRequestConfig type and a single boundary cast to R
(the interceptor unwraps the envelope) instead of `request(config as never)`.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
* 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
pnpm/action-setup was pinned to a commit running on the deprecated Node.js 20 runtime (GitHub forces Node 24 and emits a warning). Bump to v6.0.10 (0977fd9) which runs natively on Node 24, removing the deprecation warning. Updates docs.yml (1) + ci-web.yml (2).
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
ci-backend.yml ignored dc3-web paths on pull_request, so npm-only
dependabot PRs never triggered backend CI — but compile/Unit/Integration/
coverage are required status checks, leaving those PRs perpetually
BLOCKED (had to --admin merge). Drop the pull_request paths-ignore so
every PR runs backend CI; keep it on push (a dc3-web-only push still
skips backend CI, which is fine — the PR already ran it).
dependabot.yml had no target-branch, so updates targeted the default
branch (main). main is the release branch and was red — compiler fixes
lived only on develop — which left every open dependabot PR BLOCKED.
Set target-branch: develop on all five ecosystems so upgrades land on
the integration branch first, get validated, then promote to main.
Add inline zh/en to all issue templates, ISSUE_TEMPLATE/config.yml
contact links, and PULL_REQUEST_TEMPLATE.md using a "中文 / English"
per-line layout. good-first-issue.md was English-only; now consistent
with the others. Lowers the barrier for international contributors.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- codeql: add javascript-typescript scanning for dc3-web/docs frontend
- dependabot: fix docker directories (14 stale paths with no Dockerfile
-> 4 real ones: /, /dc3-web, /dc3/dependencies/{rabbitmq,postgres})
- remove orphan codeql-config.yml (never referenced by codeql.yml)
- merge docker-ci-web.yml into docker-ci.yml as build-web job with its
own gha cache scope; release now needs both backend and web builds
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* ci(dependabot): add cargo ecosystem, groups, and clean up stale docker directories
* docs(ai): add spring-ai-deep-dive cross-references in en and zh indexes
* docs(community): add english FAQ and frontend developer guide
* chore(issue-templates): translate all templates to english
* ci(docker): add 20 missing driver images to Dockerfile, compose, and Makefile
* fix(docs): remove Vue template syntax from panorama SVGs so they render
* docs(ai): add spring-ai-deep-dive pages in en and zh
Merge the standalone iot-dc3-web repository into iot-dc3 as dc3-web/,
creating a single monorepo with unified versioning, CI/CD, and release
process.
- subtree-add iot-dc3-web under dc3-web/ with full commit history
- relocate nginx configs and SSL certs to dc3/dependencies/
- merge CI workflows (ci-backend.yml, ci-web.yml, docker-ci-web.yml)
- merge Issue/PR templates and dependabot config
- host frontend docs under docs/zh/frontend/
- share .husky/ hooks via root-level package.json (pnpm)
- unify versioning: single dc3/bin/tag.sh (vYYYY.M.P) for the whole repo
- update Dockerfile, docker-compose.yml, Makefile for new paths
- remove redundant directories from dc3-web/ (.claude, .github, dc3, docs, bin)
Co-Authored-By: Claude <noreply@anthropic.com>
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.