@staff0rd/assist 0.596.0 → 0.598.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -304,7 +304,7 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
304
304
|
|
|
305
305
|
- `assist netcap [-p, --port <port>] [-o, --out <dir>] [-f, --filter <pattern>]` - Capture browser network traffic to `capture.jsonl` under `--out` (default `~/.assist/netcap`), paired with the [netcap browser extension](#netcap-browser-extension)
|
|
306
306
|
- `assist netcap extract-linkedin-posts [file]` - Parse a netcap capture into structured LinkedIn posts, written to `posts.json` beside the capture
|
|
307
|
-
- `assist criteria-extension` - Print the directory to load the [acceptance criteria outliner extension](#acceptance-criteria-outliner-extension) unpacked from (copies to `C:\tools\criteria-extension` under WSL)
|
|
307
|
+
- `assist criteria-extension [--sign]` - Print the directory to load the [acceptance criteria outliner extension](#acceptance-criteria-outliner-extension) unpacked from (copies to `C:\tools\criteria-extension` under WSL); `--sign` signs it on AMO's unlisted channel and prints the `.xpi` for a permanent Firefox install
|
|
308
308
|
- `assist screenshot <process>` - Capture a screenshot of a running application window (`screenshot.outputDir`, default `./screenshots`)
|
|
309
309
|
- `assist handover save --summary <s>` - Save a session handover note (content from stdin), scoped by the repo's git origin
|
|
310
310
|
- `assist handover list` - List unrecalled handovers for this repo, most recent first
|
|
@@ -434,9 +434,25 @@ Web server changes only need the `assist sessions` process restarted — session
|
|
|
434
434
|
1. Run `assist criteria-extension` — it prints the extension directory. Under WSL it copies the extension to `C:\tools\criteria-extension` and prints that Windows path instead; re-run and reload the extension after a rebuild.
|
|
435
435
|
2. Load the unpacked extension:
|
|
436
436
|
- **Chrome**: open `chrome://extensions`, enable **Developer mode**, click **Load unpacked**, and select the extension directory.
|
|
437
|
-
- **Firefox**: open `about:debugging#/runtime/this-firefox` → **Load Temporary Add-on…** → pick `manifest.json` inside the printed extension directory.
|
|
437
|
+
- **Firefox**: open `about:debugging#/runtime/this-firefox` → **Load Temporary Add-on…** → pick `manifest.json` inside the printed extension directory. Firefox drops a temporary add-on on every restart; see [permanent Firefox install](#permanent-firefox-install) to avoid that.
|
|
438
438
|
3. Open an issue, press **Edit** on the body, and press **Outline criteria**. The new-issue form works the same way.
|
|
439
439
|
|
|
440
|
+
### Permanent Firefox install
|
|
441
|
+
|
|
442
|
+
Firefox release and beta only install signed add-ons, so a permanent install means having Mozilla sign the package. Signing uses AMO's **unlisted** (self-distribution) channel: Mozilla signs the `.xpi` and hands it back, with no public store listing and no human review queue.
|
|
443
|
+
|
|
444
|
+
Signing runs in CI, so the AMO key lives only as repo secrets and never on a developer machine. One-time setup: create an AMO API key at [addons.mozilla.org/developers/addon/api/key](https://addons.mozilla.org/en-US/developers/addon/api/key/) and add its two halves as the repo secrets `AMO_JWT_ISSUER` (the `user:12345678:123` issuer) and `AMO_JWT_SECRET`. The **Criteria extension** workflow maps them onto the `WEB_EXT_API_KEY` / `WEB_EXT_API_SECRET` that `web-ext` reads.
|
|
445
|
+
|
|
446
|
+
1. Run the **Criteria extension** workflow from the Actions tab (`gh workflow run criteria-extension.yml`). It checks out `main`, builds, signs the extension at assist's current version, and uploads the signed add-on to that version's GitHub release as `criteria-extension.xpi`. A failed AMO submission fails the job and attaches nothing.
|
|
447
|
+
2. Download `criteria-extension.xpi` from the release — the URL follows from the version, `https://github.com/staff0rd/assist/releases/download/v<version>/criteria-extension.xpi`.
|
|
448
|
+
3. Open the `.xpi` in Firefox (drag it onto a window, or `about:addons` → gear → **Install Add-on From File…**). It survives restarts.
|
|
449
|
+
|
|
450
|
+
AMO refuses a version it has already signed, which is why the staged manifest carries assist's version instead of the manifest's `1.0.0` placeholder — sign once per release, not twice at the same version. Unlisted add-ons get no updates from AMO, so a new build means installing the new `.xpi`; wiring up self-hosted `update_url` auto-updates is not done.
|
|
451
|
+
|
|
452
|
+
`assist criteria-extension --sign` still signs locally for someone who holds an AMO key: export `WEB_EXT_API_KEY` and `WEB_EXT_API_SECRET`, run `npm run build` (to refresh `content.js`), then the command. It stages a copy of the extension with assist's version stamped into `manifest.json`, shells out to `npx web-ext sign`, and writes the signed add-on to `~/.assist/criteria-extension/criteria-extension.xpi`. Under WSL it copies that to `C:\tools\criteria-extension.xpi` and prints the Windows path.
|
|
453
|
+
|
|
454
|
+
Two alternatives need no signing: **Firefox Developer Edition** or **Nightly** honour `xpinstall.signatures.required = false` in `about:config` and will then install an unsigned local `.xpi` permanently, and Chrome's **Load unpacked** already survives restarts, so the unpacked directory is one-time setup there.
|
|
455
|
+
|
|
440
456
|
## netcap browser extension
|
|
441
457
|
|
|
442
458
|
`assist netcap` only runs the receiver; the browser side is a raw Manifest V3 extension (no build step) under `netcap-extension/`. A MAIN-world content script patches `fetch`/`XMLHttpRequest` to capture `{url, method, status, requestBody, responseBody, timestamp}` and relays each entry to the background service worker, which POSTs it to the receiver. Forwarding happens in the background context, so the page's CSP (`connect-src`) never blocks it.
|
package/claude/CLAUDE.md
CHANGED
|
@@ -6,6 +6,10 @@ After any code change, run `/verify` to ensure all checks pass.
|
|
|
6
6
|
|
|
7
7
|
Always edit files with the Write and Edit tools. Never edit a file by shelling out — no `sed -i`, no heredoc rewrites, no Python or Node scripts that write the file. This overrides any session instruction that says to prefer Bash for file changes.
|
|
8
8
|
|
|
9
|
+
## Writing markdown
|
|
10
|
+
|
|
11
|
+
Do not hard-wrap markdown. One line per paragraph, per bullet, per heading — let it soft-wrap. Never break a line at some column width.
|
|
12
|
+
|
|
9
13
|
When renaming TypeScript files or symbols, use the refactor commands instead of doing it manually:
|
|
10
14
|
|
|
11
15
|
- `assist refactor rename file <source> <destination>` — rename/move a file and update all imports
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
"name": "assist criteria outliner",
|
|
4
4
|
"version": "1.0.0",
|
|
5
5
|
"description": "Adds an Outline criteria toggle to GitHub's issue editor, backed by assist's acceptance criteria outliner.",
|
|
6
|
+
"browser_specific_settings": {
|
|
7
|
+
"gecko": {
|
|
8
|
+
"id": "criteria-outliner@staff0rd.github.io",
|
|
9
|
+
"strict_min_version": "109.0"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
6
12
|
"content_scripts": [
|
|
7
13
|
{
|
|
8
14
|
"matches": ["https://github.com/*"],
|