docs: prepare browser extension alpha release
This commit is contained in:
parent
7461790934
commit
9ea4d68896
|
|
@ -0,0 +1,17 @@
|
||||||
|
Verstak Browser Extension
|
||||||
|
Copyright (C) 2026 Verstak contributors
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify it under
|
||||||
|
the terms of the GNU Affero General Public License as published by the Free
|
||||||
|
Software Foundation, either version 3 of the License, or (at your option) any
|
||||||
|
later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
details.
|
||||||
|
|
||||||
|
The complete license text is available at:
|
||||||
|
https://www.gnu.org/licenses/agpl-3.0.html
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
36
README.md
36
README.md
|
|
@ -1,4 +1,4 @@
|
||||||
# verstak-browser-extension
|
# Verstak Browser Extension
|
||||||
|
|
||||||
Verstak Browser Extension captures pages, selected text, links, and selected
|
Verstak Browser Extension captures pages, selected text, links, and selected
|
||||||
files and sends them to a local Verstak browser inbox receiver.
|
files and sends them to a local Verstak browser inbox receiver.
|
||||||
|
|
@ -7,6 +7,8 @@ The extension does not know Notes, Files, Activity, or Journal internals. It
|
||||||
only sends capture events through the public local receiver protocol. If the
|
only sends capture events through the public local receiver protocol. If the
|
||||||
receiver is offline, captures stay in the extension pending queue.
|
receiver is offline, captures stay in the extension pending queue.
|
||||||
|
|
||||||
|
> **Alpha software.** Use with a matching Verstak Desktop alpha release.
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
@ -20,6 +22,23 @@ Build output:
|
||||||
- `dist/chromium`
|
- `dist/chromium`
|
||||||
- `dist/firefox`
|
- `dist/firefox`
|
||||||
|
|
||||||
|
Load `dist/chromium` as an unpacked extension in Chromium-based browsers, or
|
||||||
|
load `dist/firefox` temporarily in Firefox during development.
|
||||||
|
|
||||||
|
## Passive domain activity
|
||||||
|
|
||||||
|
Passive tracking is **off by default**. On first use the extension explains
|
||||||
|
what it records; the user must explicitly enable it in extension settings.
|
||||||
|
|
||||||
|
When enabled, it observes only the focused browser's active tab and sends
|
||||||
|
bounded aggregate intervals as a canonical domain name plus duration. It never
|
||||||
|
sends URL paths, page titles, page text, selected text, keystrokes, navigation
|
||||||
|
history or inactive-tab time. The settings screen has an exclusion list for
|
||||||
|
domains such as `youtube.com` or `x.com`.
|
||||||
|
|
||||||
|
Manual “Send page”, selection, link and file actions are separate. They create
|
||||||
|
Browser Inbox captures; they do not create a workspace or a journal entry.
|
||||||
|
|
||||||
## Firefox Release
|
## Firefox Release
|
||||||
|
|
||||||
Firefox signing uses `web-ext` and AMO credentials from an env file. The script
|
Firefox signing uses `web-ext` and AMO credentials from an env file. The script
|
||||||
|
|
@ -38,6 +57,16 @@ Release output:
|
||||||
The XPI is signed as an unlisted/self-distributed Firefox extension. Build and
|
The XPI is signed as an unlisted/self-distributed Firefox extension. Build and
|
||||||
release artifacts are local outputs and are not committed.
|
release artifacts are local outputs and are not committed.
|
||||||
|
|
||||||
|
## Reproducible local package
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run release:package -- v0.1.0-alpha.1
|
||||||
|
```
|
||||||
|
|
||||||
|
This runs the tests and build, then writes unsigned Chromium and Firefox source
|
||||||
|
packages to `release/` with a `SHA256SUMS` file. Use `release:firefox` above
|
||||||
|
when an AMO-signed XPI is required.
|
||||||
|
|
||||||
## Manual Check
|
## Manual Check
|
||||||
|
|
||||||
1. Start Verstak desktop with the `verstak.browser-inbox` plugin installed.
|
1. Start Verstak desktop with the `verstak.browser-inbox` plugin installed.
|
||||||
|
|
@ -109,3 +138,8 @@ Expected success response:
|
||||||
```json
|
```json
|
||||||
{ "status": "accepted", "captureId": "uuid-or-generated-id" }
|
{ "status": "accepted", "captureId": "uuid-or-generated-id" }
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Copyright © 2026 Verstak contributors. Licensed under
|
||||||
|
[GNU AGPLv3 or later](LICENSE).
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@
|
||||||
"build": "node scripts/build-extension.js",
|
"build": "node scripts/build-extension.js",
|
||||||
"test": "node scripts/test-hostname.js && node scripts/test-activity-tracker.js && node scripts/test-protocol.js && node scripts/test-i18n.js && node scripts/test-popup-settings.js && node scripts/test-popup-catalog-fallback.js && node scripts/test-background-i18n.js",
|
"test": "node scripts/test-hostname.js && node scripts/test-activity-tracker.js && node scripts/test-protocol.js && node scripts/test-i18n.js && node scripts/test-popup-settings.js && node scripts/test-popup-catalog-fallback.js && node scripts/test-background-i18n.js",
|
||||||
"sign:firefox": "./scripts/sign-firefox-xpi.sh",
|
"sign:firefox": "./scripts/sign-firefox-xpi.sh",
|
||||||
"release:firefox": "./scripts/release-firefox-xpi.sh"
|
"release:firefox": "./scripts/release-firefox-xpi.sh",
|
||||||
|
"release:package": "./scripts/package-release.sh"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"web-ext": "^8.3.0"
|
"web-ext": "^8.3.0"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
VERSION="${1:-}"
|
||||||
|
|
||||||
|
if [[ -z "$VERSION" || ! "$VERSION" =~ ^[A-Za-z0-9][A-Za-z0-9._-]*$ ]]; then
|
||||||
|
echo "usage: $0 <version>" >&2
|
||||||
|
echo "example: $0 v0.1.0-alpha.1" >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "=== verstak browser extension release $VERSION ==="
|
||||||
|
(cd "$ROOT" && npm ci --no-audit --no-fund && npm test && npm run build)
|
||||||
|
|
||||||
|
RELEASE_ROOT="$ROOT/release"
|
||||||
|
STAGING="$RELEASE_ROOT/verstak-browser-extension-$VERSION"
|
||||||
|
ARCHIVE="$RELEASE_ROOT/verstak-browser-extension-$VERSION.tar.gz"
|
||||||
|
rm -rf "$STAGING" "$ARCHIVE"
|
||||||
|
mkdir -p "$STAGING"
|
||||||
|
|
||||||
|
cp "$ROOT/README.md" "$ROOT/LICENSE" "$STAGING/"
|
||||||
|
cp -R "$ROOT/dist" "$STAGING/dist"
|
||||||
|
tar -C "$RELEASE_ROOT" -czf "$ARCHIVE" "$(basename "$STAGING")"
|
||||||
|
(cd "$RELEASE_ROOT" && sha256sum "$(basename "$ARCHIVE")" > SHA256SUMS)
|
||||||
|
|
||||||
|
echo "release archive: $ARCHIVE"
|
||||||
|
echo "checksums: $RELEASE_ROOT/SHA256SUMS"
|
||||||
Loading…
Reference in New Issue