The config file only carried two paths-ignore entries, which the init action accepts directly as inputs; folding them into codeql.yml removes the separate .github/codeql directory without behavior change.
- dc3-common-auth imports com.baomidou.mybatisplus.spring.service
directly since the 3.5.17 split but never declared the artifact;
out-of-reactor consumers hit FileNotFoundException at boot. Manage
it in the root BOM alongside the existing entry.
- ci-cli.yml gates dc3-cli (lint, test, build, help smoke) on PRs
touching dc3-cli/**
- adapt AuthenticGatewayFilterTest to the extended constructor
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).
- 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>
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.
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.
Remove host-side JDK setup and Maven build step from the CI workflow.
The unified Dockerfile now handles Maven build internally via BuildKit
caching, so the runner only needs Docker.
Wire the test toolchain into developer-facing entry points and CI:
- Makefile gains test, test-it, test-e2e and coverage targets; the help
banner advertises them alongside the existing build commands so
contributors do not need to memorise the underlying mvn invocations.
- A new Test workflow runs three sequenced jobs: unit (mvn test, skipping
the integration phase), integration (mvn verify, skipping unit phase,
running with TESTCONTAINERS_REUSE_ENABLE=true), and a final coverage
job that downloads both jacoco .exec artifacts and rebuilds the
aggregate report from dc3-coverage.
- A new E2E workflow runs make test-e2e on develop/release/main pushes
and on manual dispatch, with a 90 minute timeout that accommodates
cold compose start-up plus the full critical path battery.
- The existing CI workflow keeps its fast-fail compile job unchanged so
PR feedback latency stays low; tests are now owned exclusively by
the new Test workflow.
The repository has default CodeQL enabled in GitHub settings, which
conflicts with an advanced configuration workflow and causes SARIF
upload failures.