Skip to content

Add Firefox extension, Mattermost plugin, downloads page, and CI release workflow#2

Draft
voxsar with Copilot wants to merge 2 commits into
mainfrom
copilot/add-firefox-addon-support
Draft

Add Firefox extension, Mattermost plugin, downloads page, and CI release workflow#2
voxsar with Copilot wants to merge 2 commits into
mainfrom
copilot/add-firefox-addon-support

Conversation

Copilot AI commented Mar 4, 2026

Copy link
Copy Markdown

Extends TrustVault with a Firefox-compatible addon, a Mattermost right-sidebar plugin, a downloads page on the site, and a GitHub Actions workflow that auto-packages all addons on tagged releases. Also shifts the Docker server host port from 5000 → 4523.

Docker

  • docker-compose.yml: server host port 5000:50004523:5000; CLIENT_URL made env-overridable

Chrome/Firefox Extensions

  • All hardcoded localhost:5000 refs updated to localhost:4523 (App.jsx, background.js, manifest.json)
  • Added extension/public/manifest.firefox.json — MV2 manifest with browser_action, background.scripts, and browser_specific_settings.gecko (ID trustvault@trustvault.app, min Firefox 109)
  • vite.config.js updated to support --mode firefox, writing output to dist-firefox/ and overwriting manifest.json via closeBundle hook
  • New build:firefox and build:all scripts in extension/package.json

Mattermost Plugin (mattermost-plugin/)

Webapp-only plugin (no server component) that registers a lock icon in the channel header; clicking it opens the RHS panel.

mattermost-plugin/
├── plugin.json                         # manifest + ServerURL config setting
└── webapp/
    ├── webpack.config.js               # Mattermost externals (React, ReactDOM, Redux)
    └── src/
        ├── index.jsx                   # registers header button + RHS component
        └── components/
            ├── TrustVaultIcon.jsx      # lock SVG for channel header
            └── TrustVaultSidebar.jsx   # login → vault list → credential reveal + copy

The sidebar stores token and apiUrl in localStorage; server URL is user-configurable via a settings panel (defaults to http://localhost:4523).

Downloads Page

  • client/src/pages/DownloadsPage.jsx — three addon cards (Chrome, Firefox, Mattermost) each with a download button linking to GitHub Releases, compat badges, and collapsible step-by-step install instructions
  • Route /downloads added inside the protected Layout; "Downloads" nav item added to the sidebar

CI — .github/workflows/build-extensions.yml

Triggers on v* tags; four jobs:

Job Output
build-chrome trustvault-chrome-<tag>.zip
build-firefox trustvault-firefox-<tag>.zip
build-mattermost trustvault-mattermost-<tag>.tar.gz
release GitHub Release with all three as attached assets

All checkouts use fetch-depth: 0 to ensure tag metadata is available.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

… 4523, and CI workflow

Co-authored-by: voxsar <11452046+voxsar@users.noreply.github.com>
Copilot AI changed the title [WIP] Add Firefox version of the addon and check compatibility Add Firefox extension, Mattermost plugin, downloads page, and CI release workflow Mar 4, 2026
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