Files
mp-silma-ai-aide/docs/extension-management.md
T

90 lines
5.5 KiB
Markdown
Raw Normal View History

2026-07-17 14:33:11 -05:00
# Extension Management
2026-07-17 15:45:30 -05:00
This project builds a Chrome side panel extension from the generated `dist/` directory. Run `npm run build` before loading or reloading the unpacked extension.
2026-07-17 14:33:11 -05:00
## Required Chrome Profile
When an agent needs to inspect, load, reload, test, or otherwise manage this extension in Chrome, use the Codex Chrome extension with the Chrome profile named `Silma`.
Do not use `Profile 1` for this project.
This rule applies to:
- Opening Chrome for extension work.
- Loading `dist/` as an unpacked extension.
- Reloading the extension after a build.
2026-07-17 15:45:30 -05:00
- Inspecting extension side panel, background/service worker behavior, or permissions.
2026-07-17 14:33:11 -05:00
- Any browser automation that depends on extension state.
## Build Output
- Build command: `npm run build`
- Deployable/load-unpacked directory: `dist/`
- Manifest path: `dist/manifest.json`
Do not edit `dist/` directly. Change source files and rebuild.
## Environment
Use `.env.local` for local extension configuration and secrets. Never commit real tokens.
Required variables:
- `VITE_GITEA_BASE_URL`
- `VITE_GITEA_TOKEN`
- `VITE_GITEA_REPO_OWNER`
- `VITE_GITEA_REPO_NAME`
2026-07-17 15:45:30 -05:00
## Issue Creation
- Add Issue is enabled only when the active tab's base URL is already in the URLs list and that URL is linked to a Gitea repo.
2026-07-18 10:17:06 -05:00
- The Add Issue view must show the Gitea repo that will receive the issue and the active URL the extension believes it is attached to.
- The Add Issue form must let the user select the agent file for handoff. Agents are managed in the Agents view, persisted in `chrome.storage.local`, and the initial agent is `GLOBAL AGENT` backed by `AGENTS.md`.
2026-07-18 13:01:36 -05:00
- The Add Issue view intentionally omits the redundant view header title/description.
- Add Issue and selected issue editing expose these label options: `Change Request`, `Idea`, `Tabitha`, `Orson`, `Belisarius`, `Ozymandias`, and `Ready`.
- New issues default to `Change Request` selected unless the user changes the label selection.
- Do not show the old Ready checkbox; `Ready` is now a selectable label.
2026-07-17 15:53:31 -05:00
- Screenshot capture uses Chrome's visible-tab capture API and requires the extension's `activeTab` permission plus `<all_urls>` host permission so capture still works after the side panel remains open across tab changes.
2026-07-17 15:51:15 -05:00
- Captured screenshots should appear immediately in Add Issue as thumbnail rows.
2026-07-18 11:01:51 -05:00
- Captured screenshots can be expanded, closed, removed, or cropped before upload. The crop UI should use a plain draggable/resizable crop box instead of shaded slider-based controls, and the preview panel should fit the available viewport without horizontal scrolling.
2026-07-18 10:07:26 -05:00
- File attachments are accumulated across picker selections and all selected files must be uploaded to Gitea.
- Created issue bodies must include `Chrome profile: Silma` and the selected agent.
2026-07-18 10:17:06 -05:00
- Created issues must upload the selected rendered agent file as a Gitea issue asset. Supported template variables in agent content are `{{git}}`, `{{repo}}`, `{{workspace}}`, `{{url}}`, `{{baseUrl}}`, `{{profile}}`, and `{{issue}}`.
2026-07-18 13:01:36 -05:00
- Newly created issues must use the selected labels.
2026-07-18 10:50:04 -05:00
## Open Issues
- Open Issues owns existing issue browsing and follow-up comments.
- The primary Open Issues panel lists recent issues ordered by creation time.
- The `Only current repo` checkbox defaults to checked and limits the table to the active URL's linked Gitea repo.
- Turning off `Only current repo` loads recent issues from all repos already loaded in the extension.
2026-07-18 12:49:15 -05:00
- The status dropdown defaults to `Open` and supports `Open`, `Closed`, and `Open + Closed`.
- Selecting an issue shows a direct Open in Gitea link, editable issue subject/content/label fields, issue attachments, direct attachment upload controls, comment chain, and a comment form for text, additional screenshots, and file attachments.
2026-07-18 13:14:12 -05:00
- Saving selected issue edits must use the repo identity from the selected Open Issues row, include Gitea's current issue content version when available, verify the saved subject/content with a readback before reporting success, save labels through Gitea's issue labels endpoint, and must not fall back to the active tab's repo.
2026-07-17 16:12:51 -05:00
- Issue comments should upload screenshots/files as issue assets first, then create a comment containing links to those attachments.
- Additional selected-issue screenshots/files can also be uploaded directly as issue assets without creating a comment.
2026-07-18 10:50:04 -05:00
- Existing issue attachments can be deleted from the selected issue.
2026-07-18 13:01:36 -05:00
- Existing issue rows can delete the issue. Issue labels are edited in the selected issue form. Deletion must require confirmation.
2026-07-18 11:01:51 -05:00
- Typing in Add Issue, selected issue edit fields, Open Issues comments, or Agents editor fields must not blur the focused control.
2026-07-17 15:45:30 -05:00
2026-07-17 15:51:15 -05:00
## URL Management
- URLs can be deleted from the URLs list.
- Deleting a user-added URL removes it from `silmaAide.userUrls` in `chrome.storage.local`.
- Deleting a generated known URL stores its base URL in `silmaAide.deletedUrlBases` so it is hidden without editing generated local context.
2026-07-18 10:17:06 -05:00
## Agent Management
- The Agents view must allow adding, editing, and deleting agent files.
- At least one agent must remain available so Add Issue always has a handoff file.
- Agent records are persisted in `silmaAide.agents`.
- The default `GLOBAL AGENT` should remain agnostic and use template variables instead of hard-coded project paths where possible.
2026-07-17 14:33:11 -05:00
## Agent Checklist
1. Run `npm run build`.
2. Confirm `npm run verify:dist` passes.
3. Use the `Silma` Chrome profile through the Codex Chrome extension.
4. Load or reload the `dist/` directory.
5. Avoid `Profile 1`.