Files
Henry Zhang 7802eeb999 feat(web): static mock demo deployable to demo.dc3.site (#199)
* 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>
2026-08-06 21:18:10 +08:00

147 lines
2.0 KiB
Plaintext

# ===== Build artifacts (Maven / Gradle / general) =====
.m2/
target/
build/
dist/
dist-ssr/
out/
*.class
*.jar
*.war
*.ear
*.tgz
*.tar.gz
dependency-reduced-pom.xml
.flattened-pom.xml
release.properties
buildNumber.properties
# ===== Test artifacts =====
test-results/
coverage/
.nyc_output/
playwright-report/
**/target/test-classes/
**/target/surefire-reports/
**/target/failsafe-reports/
**/target/site/jacoco*/
**/target/jacoco*.exec
# ===== Testcontainers state =====
.testcontainers/
**/.testcontainers.properties.bak
# ===== Logs & JVM crash dumps =====
*.log
*.log.*
logs/
hs_err_pid*.log
replay_pid*.log
*.hprof
core.*
# Exception: dc3-web mock core handler (the `core.*` rule above is for JVM
# crash dumps and would otherwise silently skip this source file).
!dc3-web/src/mock/handlers/core.ts
# ===== Environment & secrets =====
.env
.env.local
.env.*.local
*.key
*.pem
*.p12
*.pfx
*.crt
*.csr
secrets/
# ===== IntelliJ IDEA =====
.idea/
*.iws
*.iml
*.ipr
# ===== Eclipse =====
.classpath
.project
.settings/
.factorypath
.loadpath
.springBeans
.apt_generated/
# ===== VS Code / Visual Studio =====
.vscode/
.vs/
*.code-workspace
# ===== Sublime Text =====
*.sublime-workspace
*.sublime-project
# ===== Editor temp / swap / backup =====
*.swp
*.swo
*~
*.bak
*.backup
*.tmp
*.temp
*.orig
*.rej
# ===== History =====
.history/
# ===== OS junk =====
.DS_Store
.AppleDouble
.LSOverride
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/
# ===== Python =====
__pycache__/
*.py[cod]
.venv/
venv/
# ===== Node / pnpm =====
node_modules/
.pnpm-store/
.parcel-cache/
.pnp/
.yarn/
.yarn-integrity/
.npm
.eslintcache
.node_repl_history
# ===== Vite / Vue =====
.vite/
.temp/
.cache/
*.tsbuildinfo
*.d.ts.map
components.d.ts
auto-imports.d.ts
# ===== Database =====
*.db
*.sqlite
*.sqlite3
# ===== Docker =====
.docker/
# ===== Tauri (desktop build) =====
src-tauri/target/
src-tauri/Cargo.lock
# ===== Project-local data =====
dc3/data/
.claude/settings.local.json
.claude/TODO.md