Repository navigation
Description
Is there an existing issue or feature request for this?
- I have searched the existing issues and feature requests.
What area does this improvement affect?
New Feature
What actions does this improvement affect?
Issue, Pull Request, Commit
Description of the idea or improvement
Specify an original github.com extension: standalone usability, optional Action integration, three-browser MVP and roadmap. SDD/catalog/schema work only. Use the verified Action-owned branch, add complete companions and open its PR. Runtime, stores and feature deployment remain future work.
Resolved decisions and initial publication
These six maintainer-authorized decisions remain resolved on a newer base.
- Standalone DOM/URL features need no Action, backend or credential. Connected mode is explicit per repository; public reads may be anonymous. Private reads use an optional user-owned fine-grained PAT for selected repositories with read-only Metadata, Contents, Issues, Pull requests and Actions as needed. Respect organization approval/SSO and endpoint restrictions. No client secret, bot/workflow PAT, session-cookie scraping, classic-token fallback, write scope, telemetry or hosted authentication prerequisite. Credentials and private evidence stay only in protected extension storage.session; reconnect after browser restart. Never expose them to content-script messages, page DOM, synchronized/exported preferences, URLs or diagnostics. Denied or unsupported access yields unavailable/read-only connected UI while standalone features continue.
- The Action adds a bounded, versioned snapshot to its existing durable current-status publication. The extension background reader validates the snapshot and allowlisted canonical GitHub reads. A reviewed .copilot/browser-extension.json at a pinned observed default-branch commit declares numeric producer ID, permitted workflow paths and capabilities. Validate author, repository, conversation, run/attempt/workflow, head/base/policy/configuration identity, collection fences, observation time, freshness, pagination/completeness and source links. Source pointers are locators, not authority. Hidden live policy cannot be certified: describe it as assessed at source time. Missing evidence never means zero findings or green readiness. Keep durable lifecycle, transient activity and human waiting distinct.
- K3 prepares status/analyze only in the supported issue/PR conversation; fix/dismiss only in a verified current same-repository finding's supported native PR review-thread reply, with a verified viewer write hint. Unknown authority/target gives read-only or copy-only guidance. Preserve existing drafts: append/keep/cancel, with replacement only by explicit user choice. The person reviews and submits; the Action then authorizes actor, target, event and exact revision. No foreign-fork correction or implement/sync/release/deploy drafts in MVP. Page opening, navigation and rendering never submit a comment, mutate repository state, trigger an Action or run an agent.
- API compatibility floors: Chrome 140; Firefox 140 including ESR 140 compatibility; Safari 18.2 on macOS 15.2+. Chrome/Firefox desktop Windows 11, macOS 15.2+ and Ubuntu 24.04. Record exact floor/current/previous-stable and currently supported ESR evidence; API compatibility floors do not imply vendor security support. Chrome MV3 service worker; Firefox/Safari nonpersistent background scripts. Shared portable core with browser adapters and reviewed manifest/build differences. Integrated page panel uses no vendor-only sidebar dependency. Real Safari extension tests are mandatory; generic WebKit is insufficient. Mobile and GitHub Enterprise are later phases, with graceful non-support; future hosts require optional exact-host permissions and per-host credentials.
- Maintainers' Safari release owner provisions Apple Developer/App Store Connect roles, bundle IDs, signing custody, containing-app packaging, privacy/support/store assets, review, update and rollback. Default delivery: App Store Connect Web Extension Packager -> TestFlight -> macOS App Store containing app; Xcode development/fallback remains available. Actual Mac/Safari acceptance is required. Those accounts, signing and store operations are future delivery prerequisites, not actions authorized by this specification issue.
- Private extension/ pnpm workspace, original TypeScript domain/application/semantic ports/adapters/composition/presentation, locked Vite/Vitest, real browser-loaded acceptance and preserved root overrides/quality gates. Share only the pure src/domain/browser_extension_contract/index.ts boundary; no Node-only imports, credentials or mutating Action entrypoints in browser bundles. Initial Action publication creates/catalogues only specs/github-browser-extension.md. Contributor commits after branch readiness add the integration/platform companions and JSON evidence under the same proposed capability. Existing Action source/test/docs paths establish integration baseline only, not implemented extension behavior.
Initial new-capability catalog record (lastVerified is the specification review date):
{"id":"github-browser-extension","title":"GitHub browser extension and Action-connected usability","status":"proposed","scope":"Specify standalone usability and optional Action context in Chrome, Firefox and Safari; runtime is future work","owner":"Copilot maintainers","lastVerified":"2026-10-25","specs":["specs/github-browser-extension.md"],"workflows":[],"entrypoints":["src/actions/github_action.ts"],"code":["src/application/usecases/read_copilot_status_workflow.ts"],"tests":["src/application/usecases/__tests__/read_copilot_status_workflow.test.ts"],"documentation":["docs/development/specifications.mdx"]}Product scope and feature inventory
Standalone usability plus opt-in connected context, beside native GitHub content with settings/toolbar support. Installation grants no Action authority.
Each feature records problem, surface/example, DOM/API source, permission/freshness, browser/default, conflicts, accessibility/performance risk, acceptance and phase. Inventory navigation/code/diffs, issue/PR conversations/lists, checks/runs, notifications, releases/tags and preferences. Beyond MVP assess whitespace/indent readability, bot-noise filters, remembered collapse, workflow/PR and CI links, notification triage, release comparisons and authoritative merged-work/release links. Never guess ambiguous targets; show hidden counts/restore and preserve blockers/native checks/reviews.
| ID | MVP capability | Observable result |
|---|---|---|
| U1 | Canonical links, permalinks and safe reference navigation | Copy/open the exact observed issue, PR, file revision or review location without guessing a target. |
| U2 | Diff navigation and focus | Move between files; explicitly filter generated content with visible loaded-scope counts and immediate restore. |
| U3 | Conversation/thread controls | Expand/collapse resolved/outdated threads and jump to events without draft loss or hidden required action. |
| U4 | Personal view preferences | Restore supported list filters and compact/comfortable density within the documented scope; preserve shared URL queries. |
| U5 | Discoverable accessible shortcuts | Help and opt-in shortcuts respect native shortcuts, editable fields and composition events. |
| U6 | Settings and recovery | Per-feature controls, repository pause, reset/import/export and isolated broken-feature diagnosis. |
| K1 | Issue/PR context panel | Current state, completed facts, blocker/actor, next action and verified issue/SDD/branch/PR/run links. |
| K2 | Findings navigator | Current findings grouped by file/severity/state, preserving historical context and source links. |
| K3 | Native command drafts | Prepare only the exact supported request/context from resolved decision 3; human submission is required. |
Roadmap: richer notification triage, cross-repository views, additional code/release helpers, explicitly authorized API writes, Enterprise and mobile. Record dependencies and acceptance; all three desktop browsers stay in MVP. Original design and implementation only: inspect public extension repositories for modular activation, navigation, teardown, deduplication, settings migration, optional permissions, caching, failure isolation and diagnosis; copy no source, selectors, CSS, assets, prose or branding. External product names belong only in technical research provenance, not the proposed UI/product narrative.
Integration, architecture and operational contract
Audit/link existing status, SDD/PR readiness, findings, lifecycle, publication, locale and command-authorization SDDs. The Action owns authority; markers/labels/check names/stale runs alone prove nothing. Specify minimal producer changes, schema/capability compatibility, packaging and positive/negative fixtures.
Decision 2 owns identity/provenance. Specify authoritative links, incomplete findings, unavailable/pending/blocked/stale/partial/not-applicable/verified-complete states; contradictions, head/base fences, multiple PRs, forks, tabs and late responses. Bound GET concurrency, conditional reads/cache, refresh/foreground polling/background silence and 401/403/private-404/offline/rate-limit recovery. Process globals cannot be sole durable state.
Decision 6 owns layers: define pure invariants, immutable use cases, semantic ports, typed adapter errors, entrypoints/view models and state/schema/migration ownership. Enforce dependency/cycle/Node-import, shared-API, schema/manifest/permission/package rules. Add component and sequence/state diagrams with text equivalents.
Each feature has stable identity, predicates, capabilities, default, init/refresh/teardown, owned DOM/listeners/observers and isolated errors. Handle idempotent mount/unmount, soft navigation, partial React/Turbo refresh, back/forward, virtualized lists, abort/generation fencing and extension updates with tabs open. Unsupported pages/missing anchors disable only affected controls. Avoid unbounded observers/full scans; dispose all resources. Detect native/other-extension equivalents and retire redundant helpers. Define reproducible startup/DOM/memory/API budgets and benchmark environment, clearly separated from actual measurements.
UX, configuration, security and browser delivery
Concrete pending, action-required, failed/blocked, partial, complete, unavailable/incompatible and stale wireframes answer: current state -> completed facts -> next transition -> actor/action -> impact -> inspectable source links -> expandable diagnostics. Keep native facts inspectable. Include deterministic headings/labels/markers, idempotent updates and bounded comment/notification noise where Action output changes. Provide keyboard/focus restoration, screen-reader announcements, zoom/narrow layouts, high contrast/reduced motion and light/dark support. English/Spanish catalogs have explicit language ownership and atomic fallback; personal extension locale and Action publication locale can differ.
For every setting give name/type, bounded allowed values/default, validation and cross-field rules, global/repository scope and precedence, persistence, migration, absent/retired/future behavior, reset/import/export. Provide recommended and meaningful alternative examples. Repository pause wins; evidence/authorization rules cannot be weakened. No arbitrary executable config or remotely loaded executable patches.
Treat DOM/comments/Markdown/URLs/messages as untrusted. Define sanitization, safe URL allowlists, sender/tab/origin and message-schema validation, confused-deputy protection, protected login/authorization/settings routes, session isolation/logout/revocation/uninstall cleanup. No history/private-code collection or telemetry by default. Missing permission/evidence cannot silently expand access or imply success. Cover suspension/restart, stale tabs, partial reads, migration, broken anchors, offline and rollback/restoring native GitHub.
Expand decisions 4/5 into a browser matrix covering APIs/CSP/permissions, clipboard, development installs, signing/review/updates and rollback. Distinguish automated builds from actual browser/manual accessibility/store evidence; name delivery-gate owners and prerequisites.
Specification deliverables and documentation
Use specs/_template.md and all applicable concerns of specs/README.md. Primary specs/github-browser-extension.md owns product, catalog, MVP/roadmap, journeys, UX and settings. Companions specs/github-browser-extension-action-integration.md and specs/github-browser-extension-platforms-and-delivery.md own integration contracts and browser/architecture/operations details. Add bounded JSON schemas and representative positive/negative fixtures, decisions/risk/dependency log, requirement-to-code/test/docs traceability and sequenced implementation slices. Register one proposed capability without fake future runtime/test evidence; generate specs/CATALOG.md. Mark unresolved material decisions Draft until product/security/architecture/browser acceptance is resolved.
Name documentation for users, setup/permissions, full configuration, privacy, operations/troubleshooting/replay/cleanup, upgrade/migration/compatibility/deprecation/rollback and architecture/contributors, including routes/navigation/examples/link/validation ownership. Lead with normal path and one useful visual; describe future behavior as planned. Proposed new files use create in the Path/Change table; existing immutable-base files use update/reference. Include the selected primary SDD itself as create. Directory trees belong in fenced examples, not assertions of existing paths. Decision 6 governs initial catalog evidence.
Exact repository-path classification for the initial SDD
Section 15 includes this table. Create means a proposed file, not implementation authorization. Other future trees belong in fenced examples. Avoid slash-separated non-path values in inline code (command pairs, locales, MIME types, browser names): the parser treats them as paths. Separate command names in prose. No invented existing paths.
| Path | Change |
|---|---|
| specs/github-browser-extension.md | create |
| specs/github-browser-extension-action-integration.md | create |
| specs/github-browser-extension-platforms-and-delivery.md | create |
| specs/catalog.json | update |
| specs/CATALOG.md | update |
| docs.json | update |
| README.md | update |
| specs/browser-extension/status-v1.schema.json | create |
| specs/browser-extension/manifest-v1.schema.json | create |
| specs/browser-extension/examples/status-invalid-head-v1.json | create |
| specs/browser-extension/examples/manifest-v1.json | create |
| specs/browser-extension/examples/status-pr-v1.json | create |
| specs/browser-extension/examples/status-issue-v1.json | create |
| docs/browser-extension/index.mdx | create |
| docs/browser-extension/features.mdx | create |
| docs/browser-extension/installation.mdx | create |
| docs/browser-extension/permissions.mdx | create |
| docs/browser-extension/configuration.mdx | create |
| docs/browser-extension/privacy.mdx | create |
| docs/browser-extension/troubleshooting.mdx | create |
| docs/browser-extension/compatibility.mdx | create |
| docs/browser-extension/architecture.mdx | create |
| docs/browser-extension/action-contract.mdx | create |
| .copilot/browser-extension.json | create |
| src/domain/browser_extension_contract/index.ts | create |
| extension/package.json | create |
| src/actions/github_action.ts | reference |
| src/application/usecases/read_copilot_status_workflow.ts | reference |
| src/application/usecases/tests/read_copilot_status_workflow.test.ts | reference |
| docs/development/specifications.mdx | reference |
| docs/issues/comment-commands.mdx | reference |
Risk-derived test inventory and publication format
The following inventory fixes 96 distinct future implementation scenarios. These are not executed tests. Matrix executions do not add distinct cases. Areas: F=12 feature/configuration, N=14 navigation/lifecycle/races, A=12 adapters/provider errors, I=16 integration/schema/provenance/freshness, V=14 presentation/accessibility/localization/drafts, S=16 security/manifests/permissions/credentials, E=12 packaging/cross-browser/migration/rollback/performance. Preserve scenario intent; explain any justified refinement without reducing coverage. Repository quality thresholds remain; require full branch coverage for new pure evidence/authorization policies, deterministic clocks/fakes, replay/race tests, semantic golden assertions beyond snapshots, structural workflow/schema checks and manual UX evidence that automation cannot establish.
Section 4 has exactly the following requirement groups. Each behavior includes all detailed issue constraints in that group:
| Requirement | Behavior |
|---|---|
| BEX-USABILITY | U1-U6, native preservation, navigation/lifecycle, settings, accessibility/localization, performance and roadmap. |
| BEX-CONNECTED | K1-K3, opt-in/read-only auth, trusted Action evidence, bounded reads, freshness/completeness and manually submitted authorized drafts. |
| BEX-PLATFORM | All three browsers, pure architecture/adapters, security/privacy, real browser acceptance, documentation, signing/delivery and rollback. |
The rows below are the actual proposed section-14 inventory, with literal plain IDs and Requirements cells. Use unique fully qualified IDs, never shorthand or ranges. Raw generation places {{SDD_CASE_BUDGET}} once on a visible standalone line in section 14 and {{SDD_REQUIREMENT_CASES}} once in section 17. Trusted assembly derives budget and reverse mappings from this inventory; do not independently duplicate those two derived tables. The final document has all five canonical consistency tables and no slots. Keep section headings exactly canonical, even if surrounding prose is localized.
| Case ID | Area | Requirements | Scenario |
|---|---|---|---|
| bex-F-C01 | F | BEX-USABILITY | Unsupported page mounts no feature and makes no API request. |
| bex-F-C02 | F | BEX-USABILITY | Fresh settings resolve all shipped defaults without a credential. |
| bex-F-C03 | F | BEX-USABILITY | Repository pause wins over an enabled global feature. |
| bex-F-C04 | F | BEX-USABILITY | Repository rename retains numeric-ID preferences without affecting another repository. |
| bex-F-C05 | F | BEX-USABILITY | Invalid setting enum is rejected with previous settings intact. |
| bex-F-C06 | F | BEX-USABILITY | Unknown feature ID does not activate code or corrupt known preferences. |
| bex-F-C07 | F | BEX-USABILITY | An import over 64 KiB is rejected before any settings write. |
| bex-F-C08 | F | BEX-USABILITY | Interrupted migration retains the prior complete settings version. |
| bex-F-C09 | F | BEX-USABILITY | A supported old settings version migrates once with the same second-run result. |
| bex-F-C10 | F | BEX-USABILITY | A future settings schema remains read-only and exportable. |
| bex-F-C11 | F | BEX-USABILITY | Opening a shared filtered link preserves its query until explicit Restore. |
| bex-F-C12 | F | BEX-USABILITY | An imported preference cannot enable auto-submission or weaken evidence checks. |
| bex-N-C01 | N | BEX-USABILITY | Initial load creates one owned control set per eligible feature. |
| bex-N-C02 | N | BEX-USABILITY | Soft navigation disposes the old page generation before mounting the new one. |
| bex-N-C03 | N | BEX-USABILITY | Partial React refresh restores one keyed control without rewriting native content. |
| bex-N-C04 | N | BEX-USABILITY | Back/forward restoration preserves native scroll and one extension generation. |
| bex-N-C05 | N | BEX-USABILITY | A virtualized file insertion gets one helper with loaded-scope counts. |
| bex-N-C06 | N | BEX-USABILITY | Removed native anchors release their owned observers and listeners. |
| bex-N-C07 | N | BEX-USABILITY | Repeated initialization does not duplicate a button or draft request. |
| bex-N-C08 | N | BEX-USABILITY | Navigation aborts pending reads and retires their generation. |
| bex-N-C09 | N | BEX-USABILITY | A late response cannot restore a disposed page view. |
| bex-N-C10 | N | BEX-USABILITY | A previous repository response never renders in the new repository. |
| bex-N-C11 | N | BEX-USABILITY | Two tabs coalesce one target refresh within the shared request budget. |
| bex-N-C12 | N | BEX-USABILITY | An extension update retires old owned controls and offers one refresh affordance. |
| bex-N-C13 | N | BEX-USABILITY | Pausing during collection prevents further reads and DOM updates. |
| bex-N-C14 | N | BEX-USABILITY | After twenty navigation cycles resource counts return to the declared disposal baseline. |
| bex-A-C01 | A | BEX-CONNECTED | The copied issue URL identifies the observed canonical repository and issue. |
| bex-A-C02 | A | BEX-CONNECTED | The PR helper links the exact observed PR without selecting a same-number issue. |
| bex-A-C03 | A | BEX-CONNECTED | A file permalink contains the verified immutable commit and line anchor. |
| bex-A-C04 | A | BEX-CONNECTED | Ambiguous references stay plain text rather than guessed links. |
| bex-A-C05 | A | BEX-CONNECTED | Missing DOM anchor disables only the affected helper. |
| bex-A-C06 | A | BEX-CONNECTED | Denied clipboard access offers selectable text without claiming copy success. |
| bex-A-C07 | A | BEX-CONNECTED | A 401 clears protected credentials/evidence and exposes reconnect guidance. |
| bex-A-C08 | A | BEX-CONNECTED | A 403 marks current connected evidence unavailable without broader access fallback. |
| bex-A-C09 | A | BEX-CONNECTED | A masked private 404 is unknown access, not proof the object does not exist. |
| bex-A-C10 | A | BEX-CONNECTED | Offline refresh retains clearly historical source facts and creates no retry loop. |
| bex-A-C11 | A | BEX-CONNECTED | A secondary rate limit postpones requests until the provider or bounded backoff allows them. |
| bex-A-C12 | A | BEX-CONNECTED | Incomplete pagination exposes partial scope and no aggregate zero or ready state. |
| bex-I-C01 | I | BEX-CONNECTED | Missing reviewed manifest leaves standalone features usable and connected mode off. |
| bex-I-C02 | I | BEX-CONNECTED | A valid pinned manifest and compatible source expose only declared capabilities. |
| bex-I-C03 | I | BEX-CONNECTED | A future schema major disables connected projections with upgrade guidance. |
| bex-I-C04 | I | BEX-CONNECTED | Malformed or duplicate-key source JSON is rejected before projection. |
| bex-I-C05 | I | BEX-CONNECTED | A copied marker from a different numeric author never becomes trusted evidence. |
| bex-I-C06 | I | BEX-CONNECTED | Foreign repository/conversation identity is rejected despite matching display names. |
| bex-I-C07 | I | BEX-CONNECTED | Missing explicit association does not invent an issue, branch or PR link. |
| bex-I-C08 | I | BEX-CONNECTED | Multiple reported linked PRs require a PR-specific view instead of choosing the newest. |
| bex-I-C09 | I | BEX-CONNECTED | An older run attempt or generation cannot overwrite newer observed evidence. |
| bex-I-C10 | I | BEX-CONNECTED | A changed head clears aggregate satisfaction and current finding counts. |
| bex-I-C11 | I | BEX-CONNECTED | Changed base/public policy identity clears the prior aggregate; hidden live policy remains unknown. |
| bex-I-C12 | I | BEX-CONNECTED | Expired or future-skewed observation time yields stale/unavailable, not a current assessment. |
| bex-I-C13 | I | BEX-CONNECTED | Partial review coverage preserves source facts but keeps the aggregate finding count unknown. |
| bex-I-C14 | I | BEX-CONNECTED | Inconsistent finding totals/items are rejected rather than rounded to zero. |
| bex-I-C15 | I | BEX-CONNECTED | Unsupported capability tokens never execute code or enable a command. |
| bex-I-C16 | I | BEX-CONNECTED | A final identity/page/credential fence rejects a response superseded during collection. |
| bex-V-C01 | V | BEX-USABILITY | Standalone view explains optional connection while U controls remain available. |
| bex-V-C02 | V | BEX-USABILITY | Pending view names completed facts, the active run and that no human action is required. |
| bex-V-C03 | V | BEX-USABILITY | Action-required view names the responsible actor and exact clarification destination. |
| bex-V-C04 | V | BEX-USABILITY | Blocked view follows impact, cause, action and retained-facts order. |
| bex-V-C05 | V | BEX-USABILITY | Partial view retains verified facts and omits overall readiness. |
| bex-V-C06 | V | BEX-USABILITY | Complete snapshot view includes assessed revision/time and preserves human-review obligations. |
| bex-V-C07 | V | BEX-USABILITY | Stale view separates the previous assessment from unknown current finding counts. |
| bex-V-C08 | V | BEX-USABILITY | Unavailable view links native GitHub and does not imply underlying Action work failed. |
| bex-V-C09 | V | BEX-USABILITY | Unsupported locale falls back atomically to complete English while Spanish is complete. |
| bex-V-C10 | V | BEX-USABILITY | Keyboard focus survives refresh and all controls have accessible names. |
| bex-V-C11 | V | BEX-USABILITY | Light/dark, high contrast, 200 percent zoom and narrow layout retain readable actions. |
| bex-V-C12 | V | BEX-USABILITY | Keeping or canceling a prepared request preserves every existing native draft byte. |
| bex-V-C13 | V | BEX-USABILITY | Append request happens once despite rerender and leaves submission to the user. |
| bex-V-C14 | V | BEX-USABILITY | Unsupported correction context offers an exact copy-only destination without inserting a broad request. |
| bex-S-C01 | S | BEX-PLATFORM | An unapproved host or cross-origin redirect receives no credential or provider request. |
| bex-S-C02 | S | BEX-PLATFORM | Protected login/token/settings routes install no private observers or connected reads. |
| bex-S-C03 | S | BEX-PLATFORM | Standalone installation requests no API write or blanket host permission. |
| bex-S-C04 | S | BEX-PLATFORM | Content scripts cannot retrieve the protected session token through storage or messages. |
| bex-S-C05 | S | BEX-PLATFORM | Token-bearing diagnostics are redacted and no raw credential is returned to a view. |
| bex-S-C06 | S | BEX-PLATFORM | Forged origin/frame/tab sender fails before any semantic read operation. |
| bex-S-C07 | S | BEX-PLATFORM | An arbitrary URL/method/body message is rejected by the closed background protocol. |
| bex-S-C08 | S | BEX-PLATFORM | A finding operand containing command separators or line breaks cannot create a mutation draft. |
| bex-S-C09 | S | BEX-PLATFORM | Unsafe source URLs render as unavailable text rather than executable links. |
| bex-S-C10 | S | BEX-PLATFORM | Hostile Markdown/HTML cannot inject DOM, executable selectors or control text. |
| bex-S-C11 | S | BEX-PLATFORM | Settings/diagnostic export excludes tokens, private evidence and human draft contents. |
| bex-S-C12 | S | BEX-PLATFORM | Account change invalidates the old epoch before clearing its credential and cache. |
| bex-S-C13 | S | BEX-PLATFORM | Observed logout/different-viewer signal pauses connection without claiming the PAT was revoked. |
| bex-S-C14 | S | BEX-PLATFORM | Revocation blocks late responses from repopulating cleared private session state. |
| bex-S-C15 | S | BEX-PLATFORM | Private browsing refuses connected operation and retains no navigation evidence. |
| bex-S-C16 | S | BEX-PLATFORM | Bundle/manifest checks reject remote executable code and undeclared permission expansion. |
| bex-E-C01 | E | BEX-PLATFORM | Chrome loads the exact generated artifact and exercises all eligible MVP capabilities. |
| bex-E-C02 | E | BEX-PLATFORM | Firefox loads the target artifact on stable and selected ESR with the same semantics. |
| bex-E-C03 | E | BEX-PLATFORM | A real Safari containing-app extension is enabled and exercised; generic WebKit cannot substitute. |
| bex-E-C04 | E | BEX-PLATFORM | Chrome worker suspension resumes with session state or an explicit disconnect and fresh identity read. |
| bex-E-C05 | E | BEX-PLATFORM | Firefox/Safari event-page restart does not rely on persistent process globals. |
| bex-E-C06 | E | BEX-PLATFORM | Optional API site-access revocation aborts reads while standalone U features remain usable. |
| bex-E-C07 | E | BEX-PLATFORM | A repository without Copilot still provides standalone functionality without a token. |
| bex-E-C08 | E | BEX-PLATFORM | Old/no/future producer versions retain standalone use and disclose connected compatibility. |
| bex-E-C09 | E | BEX-PLATFORM | Reviewed code/settings rollback restores a compatible view without credential backup. |
| bex-E-C10 | E | BEX-PLATFORM | Disable/uninstall releases owned resources and session secrets without repository side effects. |
| bex-E-C11 | E | BEX-PLATFORM | A native/other-extension equivalent prevents duplicate helpers and leaves original controls intact. |
| bex-E-C12 | E | BEX-PLATFORM | Measured startup, DOM, retained-memory and request work meets the published budgets. |
Current limitations or challenges
Actions cannot add personal on-page controls.
Expected impact
Reviewable SDDs with all 96 traceable cases. Run specification generation/validation, schema fixtures and docs checks. Browser/store evidence remains future work.
Alternatives considered
Dashboards lose native context; Action-only output lacks personal controls.
Version of copilot
Prospective capability; repository baseline as of 2026-10-25.
Additional context or comments
Use existing catalogued SDDs as baseline and verify dated Chrome/Mozilla/Apple primary references. Mechanics only, no copying: https://github.com/refined-github/refined-github .
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
[-]Specify a cross-browser GitHub extension: usability features, MVP and Action integration[/-][+]✨ - Specify a cross browser GitHub extension usability features MVP and Action integration[/+]vypbot commentedon Oct 25, 2026
Hi! I’m @vypbot, the Copilot assistant for this repository.
I can answer questions, explain the codebase, propose implementation and test plans, review issues and pull requests for potential bugs or security problems, and help authorized maintainers apply changes.
Try
/copilot helpto see the available commands, or mention @vypbot with your question.vypbot commentedon Oct 25, 2026
SDD work status
Current status: The SDD is published; implementation can begin after branch verification.
SDD:
specs/github-browser-extension.md· Branch:feature/694-specify-a-cross-browser-github-extension-usability-features-mvp-and-action-integration· First commit:ffb680bad20d7f80f11e83167153476d473193a3Links: SDD · Branch · Commit
74 remaining items
efraespada commentedon Oct 25, 2026
Maintainer scope clarification — complete product contract
The current maintainer direction supersedes the initial MVP limits in this issue. The explicit request is: “esto no debe ser un MVP, esto debe ser producto premium ultra completo, testado, documentado, con la mejor experiencia de usuario y architectura”.
The deliverable of #694 remains specifications and validation tooling in PR #699, not runtime implementation, merging or deployment. The required product is the complete 150-capability catalog in 12 families, five coordinated SDDs, a full local configuration application and integrated shared setup. All registered functions are required for product acceptance; implementation waves only organize dependencies.
In particular, the initial restrictions to four command drafts and no optional browser writes are superseded. The complete contract includes the 21 documented command names and normal supported implementation/synchronization requests and native release/hotfix/deployment handoffs. Native drafts/handoffs still require a human to submit or confirm and retain existing Action/maintainer authority. Separately enabled, least-privilege user write roles support only the closed label/assignee and run retry/cancel operations with explicit reviewed intents, live checks and result verification. Read credentials never escalate. No merge, deployment, managed-ref or privileged setup authority is granted to the browser.
The current normative documents are
specs/github-browser-extension.md,specs/github-browser-extension-functional-catalog.md,specs/github-browser-extension-action-integration.md,specs/github-browser-extension-platforms-and-delivery.mdandspecs/github-browser-extension-control-center-and-setup.mdin PR #699, currently at 52992df. They specify 803 future acceptance cases, four locales, real Chrome/Firefox/Safari evidence, accessibility, performance, privacy, documentation and human UX gates. The executed 19 specification regressions and repository tests are separate from future extension acceptance.Please evaluate PR #699 against this current complete-product direction. The older MVP exclusions in the issue's initial description are historical and do not justify removing required functions from the current catalog.
vypbot commentedon Oct 25, 2026
Issue closed: synchronization recommendation retired
No branch synchronization is required for this closed issue.
The previous recommendation is historical. Issue closure does not certify that the branches are synchronized.