Skip to content

feat: Improve dashboard auth sync, expand providers, add diagnostics and test suite - #39

Open
ianalloway wants to merge 1 commit into
dappnode:mainfrom
ianalloway:feat/improvements-and-test-suite
Open

feat: Improve dashboard auth sync, expand providers, add diagnostics and test suite#39
ianalloway wants to merge 1 commit into
dappnode:mainfrom
ianalloway:feat/improvements-and-test-suite

Conversation

@ianalloway

Copy link
Copy Markdown

Summary of Changes

1. Dashboard Authentication & Credential Synchronization Fix

  • Fixed an issue in patch-config.py and server.cjs where setting custom dashboard credentials in the Setup Wizard failed to synchronize with config.yaml upon container restart, causing 401 Unauthorized errors on /dashboard.
  • configure_dashboard_auth now synchronizes credentials from .env into config.yaml and dashboard-login.txt.

2. Expanded AI Provider Support in Setup Wizard

  • Added native support for Groq (GROQ_API_KEY) and Mistral AI (MISTRAL_API_KEY) in setup-wizard/index.html.
  • Updated model suggestions with active production models (e.g. claude-3-7-sonnet, gpt-4o, gemini-2.0-flash, llama-3.3-70b-versatile, mistral-large-latest, deepseek-v4-pro).
  • Added fallback api_key: "ollama-local" in config.yaml generation for Ollama custom endpoints.

3. Messaging Integrations (Discord & Slack)

  • Added dedicated configuration cards in Step 2 (Integrations) for:
    • Discord: Bot Token, Allowed User IDs, Allowed Channels
    • Slack: Bot Token, Socket Mode App Token

4. In-UI System Diagnostics & Hermes Doctor

  • Added GET /api/doctor in server.cjs that runs hermes doctor safely with privilege dropping (s6-setuidgid hermes).
  • Added an interactive Run Doctor widget in the Setup Wizard Dashboard tab for browser-based diagnostics.

5. Security & Permission Hardening

  • Enforced 0o600 permissions on .env and dashboard-login.txt and masked secrets in review previews.
  • Enforced dynamic HERMES_HOME path helpers in server.cjs.

6. Package Metadata & Port Exposure

  • Added Hermes Agent Dashboard (port 8081) to exposable in dappnode_package.json.

7. Automated Test Suite & GitHub Actions CI

  • Added unit tests in test/test_patch_config.py, test/test_bootstrap_env.py, and test/server.test.js.
  • Added package.json scripts (npm test, npm run test:node, npm run test:python).
  • Added .github/workflows/test.yml to run test suites on PRs and pushes to main.

8. Documentation

  • Updated README.md and getting-started.md with port tables, feature descriptions, and test instructions.

Verification

  • Node.js test suite: 10 tests passing (npm run test:node)
  • Python test suite: 10 tests passing (npm run test:python)

…and test suite

- Fix dashboard credentials synchronization in patch-config.py and server.cjs
- Add Groq and Mistral AI providers and update active model suggestions
- Add Discord and Slack messaging integration fields in setup wizard
- Add in-UI Hermes Doctor diagnostics endpoint and dashboard widget
- Add port 8081 Hermes Dashboard to dappnode_package.json exposable list
- Add comprehensive Node.js and Python unit test suites and GitHub Actions CI workflow
- Update README and getting-started documentation
Copilot AI lite review requested due to automatic review settings August 17, 2026 19:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants