278 Commits
Author SHA1 Message Date
pnoker 2a328a252f feat(docs): add documentation versioning system
Add build-time version resolution from POM, runtime version switcher with
cached /versions.json fetch, and archived-version warning banner. Inject
version meta tags into HTML head and auto-switch robots to noindex for
archived builds via DC3_DOCS_IS_LATEST=false.
2026-07-24 12:07:56 +08:00
pnokerandClaude eb1f09593a docs(home): surface the AI pillar and add keyword home titles
Add a seventh feature card for AI Integration. It was reachable only
from the top nav despite being the platform's headline differentiator.
Also add locale keyword titles to the home pages and make the hero
image alt descriptive.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 00:20:51 +08:00
pnokerandClaude 799765d881 i18n(docs): translate frontend test-debugging FAQ to Chinese
zh/frontend/test-debugging.md was a byte-identical copy of the English
version, so the Chinese sidebar entry served English content. Translate
it so the entry serves Chinese readers.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 00:20:51 +08:00
pnokerandClaude d1f533bbc7 chore(docs): drop unused deps and stale diagrams-src html
Remove five devDependencies never imported in source (cytoscape,
cytoscape-cose-bilkent, dayjs, debug, @braintree/sanitize-url) and
delete 15 zero-reference hand-drawn HTML files under
.vitepress/diagrams-src/ that predate the Vue diagram components.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 00:20:51 +08:00
pnokerandClaude 242f03102e fix(docs): bind topology aria-label correctly and meet AA contrast
- TopologyDiagram: the SVG aria-label was bound to the RabbitMQ bus band
  name instead of describing the whole topology; add a dedicated aria
  string for both locales and bind to it
- HeroWaves/HeroParticles: mark the decorative canvases aria-hidden with
  role=presentation
- style.css: darken --dc3-arrow-label (#64748b -> #475569) and
  --vp-c-text-3 (#6b7a89 -> #5b6976) so small diagram labels and tertiary
  text clear WCAG AA 4.5:1 in light mode

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 00:20:36 +08:00
pnokerandClaude dd1ec97640 feat(docs): locale-aware SEO with per-section og images and JSON-LD dates
Rework transformHead in seo.mts:
- per-section Open Graph images reusing the existing screenshots and
  architecture panoramas, with width/height/alt (was a single logo)
- TechArticle.datePublished from each file's first git commit (cached,
  degrades to dateModified when git is unavailable)
- x-default now points at the English version (was Chinese)
- meta description length capped per locale (zh 80 / en 155) so CJK
  pages are not truncated in SERPs
- collapse stray spaces between CJK glyphs after inline-markdown stripping
- fix self-referential home breadcrumb in BreadcrumbList
- root language gate gains canonical and hreflang alternates
- license header added to match the rest of the codebase

Root index.md gains a frontmatter description to replace the VitePress
default "A VitePress site".

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 00:20:36 +08:00
pnokerandClaude 7aeece378b perf(docs): drop AdSense and preconnect analytics
Remove site-wide AdSense auto-ads injection. A technical docs site is
not a traffic site, and AdSense was the heaviest third-party script on
every one of the 188 pages plus a MutationObserver scanning the document.
Add preconnect hints for the retained GA4 and Baidu Tongji origins so
the first request is not blocked on a cold DNS/TLS handshake.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 00:20:36 +08:00
pnokerandClaude Fable 5 bd3405a302 fix(docs): unify navbar background and fix sidebar scrollbar overlap
Make the VitePress navbar visually consistent across home, sidebar doc,
and 404 layouts, and fix layout issues introduced by the frosted navbar:

- Force a single translucent frosted layer on .VPNavBar (overriding the
  theme's per-state opaque backgrounds) so the header looks identical on
  every page and scroll state.
- Reserve the scrollbar gutter (scrollbar-gutter + overflow-y: scroll) so
  the right-aligned menu no longer shifts between scrolling and short pages.
- Align the sidebar-page menu right edge to the home page across all widths,
  fixing the +32px jump at 1440px caused by the theme's hard-coded breakpoint
  vs the custom --vp-layout-max-width (1504px).
- Move the sidebar scroll from the fixed aside to its inner .nav so the
  scrollbar starts below the header instead of showing through the frosted
  navbar; keep it in the padding band so it doesn't shrink content width.
- Restyle the active/hover sidebar item as an aligned rounded pill with a
  clean gap from the scrollbar; trim excess bottom padding.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 01:25:13 +08:00
pnoker 261af5721c docs(site): consolidate top-level nav pillars and rehome technology-stack
This consolidates the docs site nav into 5 pillars and aligns the
technology-stack page URL with its new home inside the develop pillar.

Pillar restructure (docs/.vitepress/config.mts + locales):
  * architecture absorbs the previous Overview pillar — its pages now
    live under a '项目总览' group, with the existing architecture
    detail groups following.
  * AI is extracted out of Develop into a top-level pillar between
    Drivers and Foundations. The previously orphaned
    ai/spring-ai-deep-dive page is now reachable from the sidebar.
  * Operations is merged into Develop. The Develop sidebar runs 6
    groups ordered by reader workflow:
    快速开始 → 部署与运维 → 开发 → 前端 → 自动化 → 运营.

File move:
  * introduction/technology-stack.md -> development/technology-stack.md
    (zh + en) so the page URL matches its sidebar home.

The zh / en locale files keep identical key sets (141 keys, no diff).
2026-07-20 22:31:28 +08:00
pnokerandClaude Fable 5 ef70a279c2 docs(seo): move meta into dynamic transformHead and add llms.txt
Replace the static SEO/social meta tags in the config head with a
transformHead hook (seo.mts) that emits per-page, per-locale description,
Open Graph, Twitter card, hreflang alternates, and JSON-LD structured
data (Organization / WebSite / WebPage / BreadcrumbList). Add llms.txt
to describe the site for LLM crawlers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 22:56:18 +08:00
pnokerandClaude Fable 5 829e82fe28 fix(web): restore frontend testing guardrails doc and fix test path
The doc was moved from dc3-web/docs/ to docs/zh/frontend/ then deleted
as an "orphan", but ai-guardrails.test.ts still read the old path,
breaking the quality gate on every frontend PR. Restore the doc and
point the test at its current location.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 20:35:43 +08:00
pnoker f2554b10ff feat: configure docs AdSense auto ads 2026-07-19 20:20:44 +08:00
pnokerandClaude c702b2a9a1 docs(seo): add sitemap, robots.txt and social sharing meta
Enable the vitepress sitemap (hostname https://docs.dc3.site), add robots.txt, and add description + Open Graph/Twitter card meta so search engines and social shares get proper previews. Sitemap auto-emits en/zh URLs with hreflang alternates.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-17 12:44:01 +08:00
pnokerandClaude d3b636f49b docs: add Baidu Tongji analytics to the vitepress site
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-16 21:17:11 +08:00
pnokerandClaude ff4a54d45d docs: add Google Analytics (GA4) to the vitepress site
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-16 20:04:00 +08:00
pnokerandClaude d5ffa87956 docs: update pnpm-lock.yaml after removing mermaid dependencies
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-16 13:09:23 +08:00
pnokerandClaude 7596fd2e15 docs: convert all 107 mermaid diagrams to self-contained SVG components
- Replace all mermaid blocks (zh+en) with 112 Vue SVG diagram components
  covering flowchart/sequence/ER/class/state diagram types
- Remove mermaid + vitepress-plugin-mermaid dependencies (config.mts, package.json)
  Build time drops from ~10s to ~6.4s; per-page eager JS ~528KB→~160KB gzip
- Fix 4 undefined CSS variables (--dc3-divider, --dc3-fe-text,
  --dc3-region-amber, --dc3-region-be) that caused invisible lifelines
- Unify terminology: 物模型→模板 with comparison table + Badge
- Fix factual errors: MQTT batch 5ms→5s, MongoDB hallucination removed,
  agentic /v1/ path corrected, tool count 150+→330+, compose drivers 8→22
- Remove 14 orphaned architecture images (replaced by Vue components)
- Add --dc3-rose-fill token (tenant/alarm styling)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-16 13:06:09 +08:00
pnokerandClaude Fable 5 956b710a6a style(web,docs): reindent Vue template interpolation blocks
Whitespace-only reindentation of multi-line {{ }} interpolation in
Point.vue and the docs architecture diagram components. No behavior change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 12:31:22 +08:00
pnoker d52b106660 style: align Javadoc @param tags and docs table formatting
- Align @param tag indentation in AgenticChatResponseCodec, GrpcFacadeSupport, PlcS7DriverCustomServiceImpl
- Align markdown table columns in docs/en and docs/zh architecture, technology-stack, operation, quickstart
- Reformat vitepress config group items for readability
2026-07-13 14:22:38 +08:00
pnoker e84d2c3ca6 docs(i18n): add Korean, Spanish, Russian README and architecture diagrams
- Add README.ko.md (한국어), README.es.md (Español), README.ru.md (Русский)
- Update language navigation bar in all existing READMEs (en/zh/ja/vi)
- Add architecture panorama SVG and PNG for ko/es/ru (2400x1536 @2x)
- Fix README architecture diagram references to use language-specific images
2026-07-13 14:19:48 +08:00
pnoker 3a6f99151c docs(readme): move reference architecture details to docs 2026-07-10 22:24:18 +08:00
pnoker 76c8aafb97 security(deps): override vulnerable npm transitive deps 2026-07-10 21:53:05 +08:00
pnoker 358cfd2f68 docs(readme): streamline readme and docs navigation 2026-07-10 21:23:09 +08:00
pnoker 2b1ae4f536 docs(readme): convert svg to png for gitee rendering and soften ai wording
- convert logo and architecture svg to png (gitee does not render relative-path svg)
- inject per-language fonts (pingfang/hiragino/arial unicode) with white background
- reframe title to multi-protocol, ai-powered, cloud-native across zh/en/ja/vi
- soften 'operate devices directly' to access-controlled ai-assisted operations
- keep original svg for the vitepress docs site
2026-07-10 17:33:37 +08:00
pnoker 7ce64ac282 docs: move superpowers out of iot-dc3 to parent workspace
Relocate .superpowers/ and docs/superpowers/ to
/Users/pnoker/Code/pnoker/IoTDC3/github/ — these are maintainer-internal
working documents, not part of the iot-dc3 repository.
2026-07-10 13:11:37 +08:00
pnoker d228f4e252 chore: align license headers to AGPL across maven wrapper, docs and web assets 2026-07-10 00:02:18 +08:00
pnoker 992026a264 docs: update documentation, architecture diagrams and superpowers analysis
- Update VuePress theme components for architecture diagrams (AuthFlow,
  CommandPlane, DataPlane, FourLayers, Layered, Topology, DiagramFrame)
- Refresh English and Chinese documentation across ai, architecture,
  automation, community, development, drivers, frontend, foundations,
  guide, introduction, operation, and quickstart sections
- Update 5 SVG architecture diagrams (en, zh, ja, vi, panorama)
- Update superpowers analysis reports, plans, and design specs
- Fix Markdown quoting in README.ja.md
2026-07-09 12:55:12 +08:00
pnoker 90d0b77ac6 docs(superpowers): add tenant cleanup redundant filter spec and plan 2026-07-02 16:39:12 +08:00
pnoker 2eb2056a68 docs(superpowers): mark D-1 fixed in identification defect analysis
D-1 修复落地于 fix/d1-tenant-line-interceptor 分支:
- TenantLineInnerInterceptor + TenantLineHandlerImpl(fail-closed)
- runIgnore/runIgnoreAction 包裹 tenant-free 路径
- agentic 6 BO 实现 TenantOwned
- TenantNotScopedException → 500

全套回归 2480/2480 pass(含 postgresql driver Testcontainers IT 2/2)。
2026-07-02 13:03:58 +08:00
pnoker 94c9a3c6aa docs(superpowers): add d1 tenant-line interceptor fix plan 2026-07-02 10:00:16 +08:00
pnoker fc6c53e001 docs(superpowers): add d1 tenant-line interceptor fix design 2026-07-02 09:54:29 +08:00
pnoker 21b5b2bfbe docs(superpowers): fix file location and accuracy per final review 2026-07-01 19:43:53 +08:00
pnoker 4c669172b4 docs(superpowers): add identification-layer slice retrospective 2026-07-01 19:23:10 +08:00
pnoker 576b60c088 docs(foundations): add verified academic citations to identification page 2026-07-01 18:53:58 +08:00
pnoker 37cdbf5a53 docs(superpowers): add identification-layer slice plan 2026-07-01 18:16:54 +08:00
pnoker 1487033484 docs(superpowers): add identification-layer slice design 2026-07-01 18:09:55 +08:00
Henry Zhang 48cace5fa7 docs: enrich sensing page with verified academic citations + calibration defect analysis (#113)
* docs(superpowers): add sensing-layer slice design and plan

* docs(superpowers): add sensing knowledge entries with verified citations

* docs(foundations): add verified academic citations to sensing page

* docs(superpowers): add sensing calibration defect analysis

* docs(superpowers): add sensing-layer slice retrospective
2026-07-01 16:15:13 +08:00
Henry Zhang 2ec81eb0e8 docs: enrich protocol-layer pages with verified academic citations + defect analysis (#111)
* docs(superpowers): add protocol-layer slice design and plan

* docs(superpowers): add fieldbus knowledge entries with verified citations

* docs(superpowers): add iot-protocols knowledge entries with verified citations

* docs(superpowers): mark iot-protocols entries verified by independent pdftotext check

* docs(foundations): add verified academic citations to fieldbus page

* docs(foundations): add verified academic citations to iot-protocols page

* docs(drivers): add protocol-adaptation-layer rationale with verified citations

* docs(superpowers): add protocol-layer defect analysis (reuse + incremental)

* docs(superpowers): add protocol-layer slice retrospective

* docs(superpowers): unify citation style (inline) and reference format (GB/T 7714)

* docs(superpowers): mark D1-D4 real defects as fixed in protocol-defects analysis
2026-07-01 14:27:32 +08:00
pnoker a78da8fc60 feat(docs): add fullscreen zoom to architecture diagrams 2026-06-29 15:55:08 +08:00
pnoker ef66a38a3d refactor(docs): rename svg architecture diagram components 2026-06-29 15:55:08 +08:00
pnoker 85fc616c2b chore: sync develop with main (panorama SVGs and dead link fix) 2026-06-29 00:19:52 +08:00
pnoker 11a6585aa2 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	docs/en/frontend/index.md
#	docs/public/images/architecture-panorama-en.svg
#	docs/public/images/architecture-panorama-zh.svg
2026-06-29 00:18:12 +08:00
pnoker d9de19a2d5 fix(docs): replace Vue template interpolation with static text in panorama SVGs 2026-06-29 00:16:13 +08:00
pnoker 437c8b36f2 fix(docs): align Architecture.vue stroke, dash, and fill styles with architecture SVG 2026-06-29 00:15:30 +08:00
pnoker f38519cbac fix(docs): scale down panorama stroke-widths to match architecture visual thickness 2026-06-29 00:13:46 +08:00
pnoker af953dfe05 fix(docs): align panorama stroke-dasharray with architecture SVG style 2026-06-29 00:05:35 +08:00
pnoker 819ad72f15 fix(docs): remove dead link to frontend-testing-guardrails 2026-06-29 00:02:27 +08:00
pnoker 90a272d886 fix(docs): normalize panorama stroke widths to match architecture SVG style 2026-06-28 23:56:27 +08:00
pnoker f2f5b744c5 feat(docs): add ja/vi panorama SVGs and harmonize color scheme with architecture SVGs 2026-06-28 23:55:27 +08:00
pnoker d7c39d2eb3 fix(docs): add xmlns attribute to panorama SVGs for GitHub/Gitee rendering 2026-06-28 23:50:29 +08:00