docs: document per-tab badges and release:push updates.json automation
This commit is contained in:
		
					parent
					
						
							
								123bfde063
							
						
					
				
			
			
				commit
				
					
						ff5b02d07c
					
				
			
		
					 2 changed files with 13 additions and 5 deletions
				
			
		
							
								
								
									
										11
									
								
								AGENTS.md
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								AGENTS.md
									
										
									
									
									
								
							| 
						 | 
					@ -16,6 +16,14 @@ This add-on helps you collect and filter links from archive.org `https://archive
 | 
				
			||||||
- Popup → Content: try `collectLinks` first; if no receiver exists, Popup → Background → inject content → retry collect.
 | 
					- Popup → Content: try `collectLinks` first; if no receiver exists, Popup → Background → inject content → retry collect.
 | 
				
			||||||
- Popup → Background: `aria2.send` wraps `aria2.addUri` calls (batch) and keeps secrets out of page context.
 | 
					- Popup → Background: `aria2.send` wraps `aria2.addUri` calls (batch) and keeps secrets out of page context.
 | 
				
			||||||
- Context menu: parent "Collect links…" with a dynamic submenu built per page ("Download/Copy All" and top file types).
 | 
					- Context menu: parent "Collect links…" with a dynamic submenu built per page ("Download/Copy All" and top file types).
 | 
				
			||||||
 | 
					 - Popup → Background (badge): `popup.filteredCount` posts the current filtered count so the background can set a per‑tab badge.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Badges (Per‑tab)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Background maintains lightweight per‑tab state `{ url, isArchive, itemsCount, filteredCount }`.
 | 
				
			||||||
 | 
					- Default: on archive.org `/download/*` tabs, badge shows total item count; on other tabs, it is blank.
 | 
				
			||||||
 | 
					- When the popup filters change, it sends `popup.filteredCount`, and the badge shows that filtered count for the active tab.
 | 
				
			||||||
 | 
					- Badge updates on tab activation and URL changes; quick actions (copy/send) update only the current tab’s badge.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Storage Keys
 | 
					### Storage Keys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,11 +87,10 @@ Suggested scripts (future): `npm test`, `npm run test:e2e` with Playwright.
 | 
				
			||||||
## Release & Signing
 | 
					## Release & Signing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Add‑on ID and updates: `applications.gecko.id = "archive-org-link-grabber@jordanwages.com"` and `applications.gecko.update_url` points to the self‑hosted updates JSON.
 | 
					- Add‑on ID and updates: `applications.gecko.id = "archive-org-link-grabber@jordanwages.com"` and `applications.gecko.update_url` points to the self‑hosted updates JSON.
 | 
				
			||||||
- Scripts: `release:prepare:*` (syncs `manifest.json`), `release:sign` (creates XPI under `releases/<version>/`).
 | 
					- Scripts: `release:prepare:*` (syncs `manifest.json`), `release:sign` (creates XPI under `releases/<version>/`), `release:push` (uploads artifacts and auto‑updates/uploads `releases/updates.json`).
 | 
				
			||||||
- Secrets: set `AMO_JWT_ISSUER` and `AMO_JWT_SECRET` locally (see `.env.example`); never commit them.
 | 
					- Secrets: set `AMO_JWT_ISSUER` and `AMO_JWT_SECRET` locally (see `.env.example`); never commit them.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Commit & PR Guidelines
 | 
					## Commit & PR Guidelines
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Conventional Commits: `feat:`, `fix:`, `docs:`, `chore:`, `refactor:`.
 | 
					- Conventional Commits: `feat:`, `fix:`, `docs:`, `chore:`, `refactor:`.
 | 
				
			||||||
- Keep PRs small and focused; include motivation, UX screenshots for UI changes, test plan, and linked issues.
 | 
					- Keep PRs small and focused; include motivation, UX screenshots for UI changes, test plan, and linked issues.
 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ Add-on for Firefox that enhances archive.org download pages (https://archive.org
 | 
				
			||||||
   - Send to aria2: pushes to your configured aria2 RPC server using `aria2.addUri`.
 | 
					   - Send to aria2: pushes to your configured aria2 RPC server using `aria2.addUri`.
 | 
				
			||||||
   - Or use the page’s context menu: right‑click → "Collect links…" for quick "All" or top‑type actions.
 | 
					   - Or use the page’s context menu: right‑click → "Collect links…" for quick "All" or top‑type actions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tip: The browser action badge shows counts when collecting/sending via context menu quick actions.
 | 
					Tip: The browser action badge is per‑tab and reactive: on archive.org download pages it defaults to the total number of links; when you adjust filters in the popup, it shows the filtered count for that tab. It updates as you switch tabs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Regex and Matching
 | 
					## Regex and Matching
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,7 +141,7 @@ For development, make changes and click “Reload” in `about:debugging` to pic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Background is a non‑module MV2 script. `src/lib/aria2-bg.js` exposes `addUri`, `addUrisBatch`, and `getVersion` on `globalThis` for background use.
 | 
					- Background is a non‑module MV2 script. `src/lib/aria2-bg.js` exposes `addUri`, `addUrisBatch`, and `getVersion` on `globalThis` for background use.
 | 
				
			||||||
- Context menu parent: "Collect links…" appears on archive.org `/download/*` pages; submenu is rebuilt dynamically for top file types per page.
 | 
					- Context menu parent: "Collect links…" appears on archive.org `/download/*` pages; submenu is rebuilt dynamically for top file types per page.
 | 
				
			||||||
- BrowserAction badges show counts and state after collecting, copying, or sending.
 | 
					- BrowserAction badges are per‑tab: default to total links on archive pages; switch to filtered counts when the popup is used on that tab. They also show counts and state after quick actions (copy/send) scoped to the current tab.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Contributing
 | 
					## Contributing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -164,6 +164,7 @@ This project is not affiliated with archive.org or aria2. Use responsibly and re
 | 
				
			||||||
  - Set environment secrets locally (do not commit): `AMO_JWT_ISSUER=... AMO_JWT_SECRET=...`
 | 
					  - Set environment secrets locally (do not commit): `AMO_JWT_ISSUER=... AMO_JWT_SECRET=...`
 | 
				
			||||||
  - Run: `npm run release:sign`
 | 
					  - Run: `npm run release:sign`
 | 
				
			||||||
  - Artifacts land in `releases/<version>/`
 | 
					  - Artifacts land in `releases/<version>/`
 | 
				
			||||||
- Self-hosted updates: `releases/updates.json` is tracked; update with the new version and `update_link` like `https://add-ons.jordanwages.com/archive-org-link-grabber/releases/<version>/archive-org-link-grabber-<version>.xpi`.
 | 
					- Push (self-hosted): `npm run release:push` uploads the signed artifacts in `releases/<version>/` and prepares/uploads `releases/updates.json` automatically (deriving the `update_link` from the manifest’s `applications.gecko.update_url`).
 | 
				
			||||||
 | 
					  - Ensure FTP env vars are set (see `.env.example`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Notes: Keep AMO secrets local (see `.env.example`). CI is optional. You can tag releases with `git tag vX.Y.Z` and push tags if desired.
 | 
					Notes: Keep AMO secrets local (see `.env.example`). CI is optional. You can tag releases with `git tag vX.Y.Z` and push tags if desired.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue