* 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
* 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
- Rename iot-dc3-architecture-{lang}.svg → architecture-{lang}.svg
- Move all architecture SVGs and screenshots to docs/public/images/
- Update 16 references across all 4 README language variants
- Remove now-empty dc3/images/ directory
Replace inline zh/en pairs scattered across PILLARS, COMMUNITY, and
uiLabels() with a single t(lang, key) lookup backed by locale JSON files.
- Entry type simplified from [code, zh, en] to [code] (code == i18n key)
- Group/Pillar types use key-based lookup instead of zh/en fields
- uiLabels() now reads all 17 strings via t() from locale files
- Adding a language: create locales/<lang>.json + one line in i18n.ts
- Add Gitee and Twitter/X social links to navigation bar
- Rename nav "Connectivity" to "Drivers" for consistency
- Reorder nav menu: Overview → Architecture → Drivers → Foundations → Develop → Ops
- Add comprehensive FAQ community page covering license, pricing, tech choices
- Add frontend development guide and integrate into Development sidebar
- Add JetBrains IDEA setup section to quickstart (EnvFile, run configs, common issues)
- Add Maven command reference and debugging tips to development guide
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>
Source-checked corrections from the verification pass that were not captured
in the prior commit: mqtt default broker (dc3-rabbitmq:1883), snmp/can/http/
ble/zigbee command vs point attribute read sources and honest capability
labels, opc-ua/opc-da/modbus-rtu/fins/listening-virtual wording, and the
fieldbus/iot-protocols foundations chapters. Bilingual, all within drivers/
and foundations/, no scope creep.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply source-checked corrections across driver and foundations pages:
- mqtt/snmp/can/http/ble/zigbee/listening-virtual: command-attribute vs
point-attribute read sources, default broker (dc3-rabbitmq:1883, not EMQX
localhost:31883), dead driver-level properties, capability matrix alignment
(CAN write ✓→—), and honest skeleton/partial labels.
- aiot: MCP catalog refresh is manual (POST /mcp/tool/catalog/refresh), not
scheduled PT5M; AGENTIC_MEMORY_ENABLED dual default clarified.
- edge-cloud: connection/state management sits on the data center, not the
manager center; soften the four-centers ↔ four-capabilities 1:1 wording.
- security: salt is stateless (no server-enforced 5-min timeout);
DC3_SECURITY_KEY has a "must exist" startup check but no weak-value rejection.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Convert all Chinese code comments under docs/.vitepress (config + theme +
components) to English; UI string literals (zh DICT values, nav labels,
uiLabels) are kept verbatim. Soften the home hero motion for a calmer feel:
slower logo wave (omega 1.0→0.6, sway 6→4.5), gentler particle convergence
(inward 120-200→70-120 px/s, fewer/slower dots), slower wave plane (0.5→0.3).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add foundations back-links (data-plane → time-series, auth-rbac → security,
ai → aiot) to complete the theory-to-implementation loop across both locales.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rewrite every protocol driver page (zh+en) into a four-section structure
— protocol background, attribute config, troubleshooting, and how it lands
in DC3 — cross-linked to the foundations network-layer chapters and the
driver capability matrix. Implementation status is verified against each
driver's source and labeled honestly (skeleton: ethernet-ip, iec104, dlms,
can, zigbee; partial: fins, mqtt, lwm2m, virtual). Add foundations
back-links from the concepts and drivers hubs to close the theory↔practice
loop.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add the Foundations pillar (nav position 2) as a structured IoT primer
organized by the classic four-layer reference architecture (perception,
network, platform, application) plus cross-cutting security. One overview
(2.0) with a bespoke FourLayers SVG mapping each layer to its DC3
implementation, and eight chapters (sensing, identification, fieldbus,
iot-protocols, edge-cloud, data-pipeline, aiot, security), bilingual and
fully original. Every chapter closes with a verified "in IoT DC3" section
and cross-links into the product docs. Add the sixth homepage card.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Drop the gate "Languages" locale so the switcher shows only zh/en; keep the
/ redirect gate for no-JS fallback. Deepen the global mermaid theme (softer
on-brand palette, rounded nodes, cleaner edges) so all 156 diagrams read
cleaner. Add a reusable .dc3-diagram palette and three hand-built SVG
components (DataPlane, CommandPlane, AuthFlow) replacing the keystone
diagrams on the data-plane, command-plane and auth-rbac pages, bilingual
and theme-aware.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collapse the flat 10-section navigation into five pillars (Overview,
Architecture, Connectivity, Operations, Develop) plus a Community dropdown,
via a pillar model in config.mts. Legacy dirs (modules, guide, ai,
automation, device-onboarding) aggregate into pillars through multi-path
sidebars and longest-prefix matching, with zero file moves and zero dead
links. Adds a bilingual glossary and driver capability matrix, and aligns
the homepage feature cards.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Design and task breakdown for collapsing the flat 10-section nav into
professional pillars and adding an IoT foundations knowledge pillar.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- title: add config `title: 'IoT DC3'` so the browser tab reads "IoT DC3"
(inner pages ":title | IoT DC3") instead of the default "VitePress".
- hero: full-bleed background particle field that converges clockwise toward the
logo from all directions (HeroParticles), plus a pseudo-perspective wave
point-grid underlay (HeroWaves); both pure 2D canvas, layered under the hero
content (waves z0 < particles z1 < content z2).
- hero: rebuild the homepage logo as a live canvas particle system faithfully
reconstructed from logo.svg (54 dots, solid #1296db) instead of a static image;
the dots animate with a clockwise, inward-converging wave along the three spiral
arms — no whole-image rotation, no extra particles or glow haze.
- architecture: render the homepage/architecture diagram via a single
theme-reactive Architecture.vue component (renamed from Dc3Architecture.vue);
drop the static SVG/HTML drawings.
- cleanup: remove ~23MB of unused images (legacy/ 167 files, architecture-cn.png,
iot-dc3-architecture-{zh,en}.svg, diagrams/iot-dc3-architecture.html).
- sidebar: group drivers/concepts/architecture into collapsible sections;
fix a pre-existing dead-link bug in cross-section link generation.
- nav: brand-blue site title.
- chore: bump packageManager to pnpm@11.9.0.
Device, Driver, Profile (thing model), Point, PointValue, Command, Event, Tenant, Attribute&Config — each grounded in source BOs + maintainer design docs, beginner-friendly with analogies, cross-linked. Field tables/enums/table names/APIs verified against source (adversarial pass caught & fixed design-doc drift: dc3_event_history not _record, EventLevelEnum LOW/MEDIUM/HIGH/CRITICAL, tenant isolation is controller-layer not a DB interceptor).
Remove the misleading hand-built model segment that adds extensions then asserts
the serialized JSON. That pattern proves nothing about swagger-core's annotation
pipeline (you're asserting a map you just inserted by hand).
Keep the focused test: read @Operation annotation via reflection, call
AnnotationsUtils.getExtensions(...) which IS swagger-core's real annotation→map
conversion, and assert both the x-dc3-ai key and its riskLevel=HIGH content.
End-to-end emission into /v3/api-docs is verified separately (Task 8).
Generate <op>-<stack>[-<registry>] compose shortcuts and test/coverage
targets in the Makefile, remove the install-hooks target and the
.githooks commit-msg linter, and document the design.
Update auth, gateway, architecture, quickstart, changelog, and superpowers design documents for the Principal identity model and OAuth-backed MCP server.