Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@ See [Tuning your reviews](https://loopover.ai/docs/tuning) for the full flag, se
| Miner package | [`@loopover/miner`](packages/loopover-miner/README.md) — local foundation CLI for the autonomous miner runtime |
| API | [API browser](https://loopover.ai/api) and [OpenAPI JSON](https://api.loopover.ai/openapi.json) |
| GitHub App | [Setup docs](https://loopover.ai/docs/github-app) — self-hosting is the only currently available path |
| Browser extension | [Extension page](https://loopover.ai/extension) |

## MCP Install

Expand Down
26 changes: 2 additions & 24 deletions apps/loopover-ui/content/docs/maintainer-install-trust.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -114,35 +114,13 @@ Preview every public output path before enabling it. The same public-safety boun

For the full boundary, keep [Privacy & security](/docs/privacy-security) as the source of truth. For AI-written text, use the [AI summaries policy](/docs/ai-summaries) before posting generated copy.

## Browser extension states

The extension is a maintainer review aid. It should make state and scope obvious instead of implying that a contributor or public viewer can see private packets.

<CodeBlock
lang="text"
filename="extension-state-map.txt"
code={`Signed out
-> no repo context, no private packet
Signed in without repo scope
-> prompt for authorized GitHub App installation or browser session
Authorized maintainer on PR page
-> public-safe PR panel + private maintainer blockers
Unauthorized viewer or stale session
-> public-safe state only, no private blockers
API unavailable or stale data
-> degraded state with retry guidance, never guessed scores`}
/>

UI, frontend, browser-extension, or GitHub-overlay pull requests need maintainer-reviewable screenshots or a short recording that shows the relevant states. A checked template box is not enough evidence.

## Audit expectations

A healthy installation should leave an audit trail that maintainers can reason about without exposing repository source or contributor secrets.

- Installation health shows permissions and webhook readiness.
- Settings preview shows the exact public copy before posting.
- Command previews identify the maintainer action that produced them.
- Extension sessions are scoped to authorized review context.
- Failures are inspectable through diagnostics instead of silent public output.

## CI checks are not reviewer approval
Expand All @@ -156,12 +134,12 @@ If the repo enables **LoopOver Orb Review Agent**, document which blockers are e
Maintainers should request changes or close PRs that misuse LoopOver output. The tool is a contribution operating layer, not a guarantee that work deserves merge.

- Reject PRs with no linked issue, no reproduction, or no validation evidence.
- Reject UI or extension PRs that omit screenshots or recordings of changed flows.
- Reject UI PRs that omit screenshots or recordings of changed flows.
- Reject copied snippets that leak private scoring, reward, trust, wallet, or hotkey text.
- Reject duplicated work when the PR does not explain overlap and maintainer value.
- Reject generated broad rewrites that are not scoped to the issue acceptance criteria.
- Reject PRs that confuse passing CI with maintainer approval.

## Next docs

Continue with [Maintainer workflow](/docs/maintainer-workflow) for daily PR review, [Troubleshooting](/docs/troubleshooting) for install diagnostics, and [Browser extension](/extension) for overlay behavior.
Continue with [Maintainer workflow](/docs/maintainer-workflow) for daily PR review and [Troubleshooting](/docs/troubleshooting) for install diagnostics.
1 change: 0 additions & 1 deletion apps/loopover-ui/public/sitemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<url><loc>https://loopover.ai/miners</loc></url>
<url><loc>https://loopover.ai/maintainers</loc></url>
<url><loc>https://loopover.ai/agents</loc></url>
<url><loc>https://loopover.ai/extension</loc></url>
<url><loc>https://loopover.ai/roadmap</loc></url>
<url><loc>https://loopover.ai/docs</loc></url>
<url><loc>https://loopover.ai/docs/beta-onboarding</loc></url>
Expand Down
1 change: 0 additions & 1 deletion apps/loopover-ui/src/components/site/command-palette.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ const DEFAULT_ITEMS: PaletteItem[] = [
{ label: "Privacy & security", to: "/docs/privacy-security", group: "Docs" },
{ label: "Troubleshooting", to: "/docs/troubleshooting", group: "Docs" },
{ label: "API reference", to: "/api", group: "Reference" },
{ label: "Browser extension", to: "/extension", group: "Reference" },
{ label: "Changelog", to: "/changelog", group: "Reference" },
{ label: "Roadmap", to: "/roadmap", group: "Reference" },
];
Expand Down
1 change: 0 additions & 1 deletion apps/loopover-ui/src/components/site/site-footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ const cols = [
{ to: "/miners", label: "For miners" },
{ to: "/maintainers", label: "For maintainers" },
{ to: "/agents", label: "For coding agents" },
{ to: "/extension", label: "Browser extension" },
],
},
{
Expand Down
21 changes: 0 additions & 21 deletions apps/loopover-ui/src/routeTree.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import { Route as MinersRouteImport } from './routes/miners'
import { Route as MaintainersRouteImport } from './routes/maintainers'
import { Route as InstallRouteImport } from './routes/install'
import { Route as FairnessRouteImport } from './routes/fairness'
import { Route as ExtensionRouteImport } from './routes/extension'
import { Route as DocsRouteImport } from './routes/docs'
import { Route as ChangelogRouteImport } from './routes/changelog'
import { Route as AppRouteImport } from './routes/app'
Expand Down Expand Up @@ -69,11 +68,6 @@ const FairnessRoute = FairnessRouteImport.update({
path: '/fairness',
getParentRoute: () => rootRouteImport,
} as any)
const ExtensionRoute = ExtensionRouteImport.update({
id: '/extension',
path: '/extension',
getParentRoute: () => rootRouteImport,
} as any)
const DocsRoute = DocsRouteImport.update({
id: '/docs',
path: '/docs',
Expand Down Expand Up @@ -223,7 +217,6 @@ export interface FileRoutesByFullPath {
'/app': typeof AppRouteWithChildren
'/changelog': typeof ChangelogRoute
'/docs': typeof DocsRouteWithChildren
'/extension': typeof ExtensionRoute
'/fairness': typeof FairnessRoute
'/install': typeof InstallRouteWithChildren
'/maintainers': typeof MaintainersRoute
Expand Down Expand Up @@ -256,7 +249,6 @@ export interface FileRoutesByTo {
'/': typeof IndexRoute
'/agents': typeof AgentsRoute
'/changelog': typeof ChangelogRoute
'/extension': typeof ExtensionRoute
'/fairness': typeof FairnessRoute
'/maintainers': typeof MaintainersRoute
'/miners': typeof MinersRoute
Expand Down Expand Up @@ -292,7 +284,6 @@ export interface FileRoutesById {
'/app': typeof AppRouteWithChildren
'/changelog': typeof ChangelogRoute
'/docs': typeof DocsRouteWithChildren
'/extension': typeof ExtensionRoute
'/fairness': typeof FairnessRoute
'/install': typeof InstallRouteWithChildren
'/maintainers': typeof MaintainersRoute
Expand Down Expand Up @@ -330,7 +321,6 @@ export interface FileRouteTypes {
| '/app'
| '/changelog'
| '/docs'
| '/extension'
| '/fairness'
| '/install'
| '/maintainers'
Expand Down Expand Up @@ -363,7 +353,6 @@ export interface FileRouteTypes {
| '/'
| '/agents'
| '/changelog'
| '/extension'
| '/fairness'
| '/maintainers'
| '/miners'
Expand Down Expand Up @@ -398,7 +387,6 @@ export interface FileRouteTypes {
| '/app'
| '/changelog'
| '/docs'
| '/extension'
| '/fairness'
| '/install'
| '/maintainers'
Expand Down Expand Up @@ -435,7 +423,6 @@ export interface RootRouteChildren {
AppRoute: typeof AppRouteWithChildren
ChangelogRoute: typeof ChangelogRoute
DocsRoute: typeof DocsRouteWithChildren
ExtensionRoute: typeof ExtensionRoute
FairnessRoute: typeof FairnessRoute
InstallRoute: typeof InstallRouteWithChildren
MaintainersRoute: typeof MaintainersRoute
Expand Down Expand Up @@ -481,13 +468,6 @@ declare module '@tanstack/react-router' {
preLoaderRoute: typeof FairnessRouteImport
parentRoute: typeof rootRouteImport
}
'/extension': {
id: '/extension'
path: '/extension'
fullPath: '/extension'
preLoaderRoute: typeof ExtensionRouteImport
parentRoute: typeof rootRouteImport
}
'/docs': {
id: '/docs'
path: '/docs'
Expand Down Expand Up @@ -769,7 +749,6 @@ const rootRouteChildren: RootRouteChildren = {
AppRoute: AppRouteWithChildren,
ChangelogRoute: ChangelogRoute,
DocsRoute: DocsRouteWithChildren,
ExtensionRoute: ExtensionRoute,
FairnessRoute: FairnessRoute,
InstallRoute: InstallRouteWithChildren,
MaintainersRoute: MaintainersRoute,
Expand Down
98 changes: 0 additions & 98 deletions apps/loopover-ui/src/routes/extension.test.tsx

This file was deleted.

Loading
Loading