total-recall-brain 3.44.0 → 3.46.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/bin/total-recall.mjs +10 -6
- package/docs/ARCHITECTURE.md +10 -7
- package/docs/reference/cli-reference.md +13 -8
- package/frontend/dist/assets/index-BRYE1jmv.css +1 -0
- package/frontend/dist/assets/index-D1goIPjC.js +5598 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/sw.js +5 -4
- package/frontend/src/App.tsx +185 -238
- package/frontend/src/api/auth-inventory.ts +62 -0
- package/frontend/src/api/memory.ts +13 -8
- package/frontend/src/api/plugin-credentials.ts +23 -0
- package/frontend/src/api/plugins.ts +37 -53
- package/frontend/src/api/workspace-drawers.ts +97 -0
- package/frontend/src/components/BrainSelector.tsx +9 -3
- package/frontend/src/components/plugins/PluginPanel.tsx +83 -42
- package/frontend/src/components/plugins/PluginSettings.tsx +10 -20
- package/frontend/src/components/plugins/PluginWorkspace.tsx +367 -0
- package/frontend/src/components/plugins/ScopedPluginCommands.tsx +142 -0
- package/frontend/src/components/plugins/plugin-frame.ts +44 -33
- package/frontend/src/components/plugins/scoped-plugin-operations.ts +28 -0
- package/frontend/src/components/workspace/DrawerChat.tsx +110 -0
- package/frontend/src/components/workspace/DrawerLayout.tsx +196 -0
- package/frontend/src/components/workspace/DrawerMarkup.tsx +49 -0
- package/frontend/src/components/workspace/PluginChunkLibrary.tsx +92 -0
- package/frontend/src/components/workspace/PluginHome.tsx +76 -0
- package/frontend/src/components/workspace/WorkspaceDrawers.tsx +96 -0
- package/frontend/src/components/workspace/WorkspacePage.tsx +95 -0
- package/frontend/src/components/workspace/usePluginDesign.ts +38 -0
- package/frontend/src/index.css +409 -136
- package/frontend/src/pages/HelpPage.tsx +15 -46
- package/frontend/src/pages/MemoryPage.tsx +19 -36
- package/frontend/src/pages/SettingsPage.tsx +1 -1
- package/metadata.plugin.schema.json +53 -227
- package/package.json +1 -1
- package/scaffold/.agent/skills/plugin/SKILL.md +13 -11
- package/scaffold/.agent/skills/plugin/evals/README.md +14 -21
- package/scaffold/.agent/skills/plugin/evals/cases/01-fabricated-seed.mjs +15 -18
- package/scaffold/.agent/skills/plugin/evals/cases/02-reassuring-default.mjs +19 -24
- package/scaffold/.agent/skills/plugin/evals/cases/03-declared-template.mjs +12 -20
- package/scaffold/.agent/skills/plugin/evals/cases/04-home-collects-credential.mjs +35 -0
- package/scaffold/.agent/skills/plugin/evals/cases/05-host-leak-in-scaffold.mjs +8 -28
- package/scaffold/.agent/skills/plugin/evals/cases/06-correct-plugin.mjs +85 -47
- package/scaffold/.agent/skills/plugin/evals/run.mjs +17 -18
- package/scaffold/.agent/skills/plugin/prompts/05-credentials.md +4 -4
- package/scaffold/.agent/skills/plugin/prompts/07-scaffold.md +2 -2
- package/scaffold/.agent/skills/plugin/prompts/08-verify.md +4 -4
- package/scaffold/.agent/skills/plugin/references/anti-patterns.md +2 -2
- package/scaffold/.agent/skills/plugin/references/generative-home.md +38 -0
- package/scaffold/.agent/skills/plugin/references/scaffold.md +5 -5
- package/scaffold/.agent/skills/plugin/references/surfaces.md +13 -4
- package/scaffold/.agent/skills/plugin/scripts/record.mjs +75 -153
- package/scaffold/.agent/skills/plugin/subagents/plugin-reviewer.md +4 -4
- package/scaffold/.agent/skills/total-recall/plugins/auth/DESIGN.md +76 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/README.md +3 -1
- package/scaffold/.agent/skills/total-recall/plugins/auth/cli.mjs +20 -15
- package/scaffold/.agent/skills/total-recall/plugins/auth/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/auth/package.json +2 -1
- package/scaffold/.agent/skills/total-recall/plugins/auth/plugin.json +13 -51
- package/scaffold/.agent/skills/total-recall/plugins/auth/src/cli-secret.mjs +20 -1
- package/scaffold/.agent/skills/total-recall/plugins/auth/src/secrets-store.mjs +12 -1
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/access-overview.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/agent-login.md +20 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/baseline-audit.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/credential-repository-binding.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/credential-store-maintenance.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/dashboard-password.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/dashboard-sessions.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/endpoint-probe.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/google-sign-in.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/mesh-machines.md +16 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/passkey-enrollment.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/registered-brains.md +16 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/scoped-access-keys.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/secret-inventory.md +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/chunks/signing-key-rotation.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/home.js +375 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/BRICK.md +7 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/DESIGN.md +53 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/LICENSE +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/README.md +66 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/adapters.mjs +247 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/capability/index.mjs +16 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/cli.mjs +130 -0
- package/{src/core/plugin-cron.mjs → scaffold/.agent/skills/total-recall/plugins/automations/cron.mjs} +1 -3
- package/scaffold/.agent/skills/total-recall/plugins/automations/inventory.mjs +88 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/package-lock.json +7661 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/package.json +36 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/plugin.json +151 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/scheduler.mjs +246 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/automations.js +2 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/control-ledger.md +42 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/local-inventory-triage.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/pending-control.md +39 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/run-evidence.md +41 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/schedule-vs-run-evidence.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/chunks/source-coverage.md +41 -0
- package/scaffold/.agent/skills/total-recall/plugins/automations/ui/home.js +278 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/DESIGN.md +53 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/cli.mjs +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/commands/run-core.mjs +5 -3
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/core/check.mjs +61 -7
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/core/report-data.mjs +40 -14
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/core/report.mjs +15 -40
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/package.json +2 -1
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/plugin.json +40 -40
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/config.md +15 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/detect.md +15 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/gate.md +15 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/init.md +15 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/report.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/run.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/chunks/snapshot.md +15 -0
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/code-quality-report.mjs +55 -23
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/home.mjs +214 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/DESIGN.md +146 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/package.json +2 -1
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/plugin.json +51 -34
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/src/command.mjs +1 -1
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/create.md +35 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/history.md +35 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/library.md +49 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/list.md +42 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/promote.md +40 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/read.md +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/remove.md +26 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/rollback.md +26 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/show.md +53 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/status.md +40 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/test-path.md +38 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/test.md +46 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/chunks/update.md +32 -0
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/home.js +533 -0
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/DESIGN.md +110 -0
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/package.json +2 -1
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/plugin.json +13 -10
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/benchmark.md +49 -0
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/coverage.md +53 -0
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/models.md +43 -0
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/pull.md +41 -0
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/chunks/status.md +59 -0
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/home.js +353 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/DESIGN.md +31 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/README.md +136 -0
- package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/cli.mjs +140 -24
- package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/package-lock.json +9 -9
- package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/package.json +4 -2
- package/scaffold/.agent/skills/total-recall/plugins/git/plugin.json +151 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/context.mjs +94 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/phase3-spec-support.mjs +50 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/runtime.mjs +40 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/lib/spec-support.mjs +51 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/_support.mjs +195 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/auth.mjs +201 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/bisect.mjs +40 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/cli-meta.mjs +159 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/commit-memory.mjs +54 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/commit.mjs +46 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/fleet.mjs +174 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/force-push.mjs +58 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/group.mjs +119 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/handoff.mjs +59 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/message.mjs +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/resolve.mjs +60 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/rules.mjs +81 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/secret-firewall.mjs +92 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/undo.mjs +156 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/unmerged.mjs +182 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/src/ops/why.mjs +16 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/change-comparison.md +27 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/commit-identity.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/create-worktree.md +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/registered-worktrees.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/remove-worktree.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/repository-ledger.md +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/unmerged-work.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/upstream-divergence.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/worktree-conflict-triage.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/chunks/worktree-terminal.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/git/ui/home.js +273 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/DESIGN.md +35 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/README.md +4 -5
- package/scaffold/.agent/skills/total-recall/plugins/mesh/cli.mjs +9 -3
- package/scaffold/.agent/skills/total-recall/plugins/mesh/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/mesh/package.json +2 -1
- package/scaffold/.agent/skills/total-recall/plugins/mesh/plugin.json +37 -39
- package/scaffold/.agent/skills/total-recall/plugins/mesh/src/cli/mesh.mjs +5 -3
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/active-device-dispatch.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/control-probe.md +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/control-server.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/credential-readiness.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/elected-leader.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/enrollment-key.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/file-receipt.md +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/fleet-execution.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/fleet-presence.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/interactive-ssh.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/local-enrollment.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/mesh-policy.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/network-atlas.md +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/node-roster.md +26 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/node-selection-proof.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/owner-observations.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/peer-path.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/pinned-leader.md +24 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/reachability-evidence-ladder.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/recorded-login.md +23 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/remote-execution.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/chunks/secret-grants.md +26 -0
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/{card.js → home.js} +93 -22
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/DESIGN.md +86 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/README.md +44 -9
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/capability/BRICK.md +1 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/capability/index.mjs +18 -6
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/cli.mjs +128 -24
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/package.json +3 -2
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/plugin.json +188 -34
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/skills/meta-harness/SKILL.md +17 -3
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/adoption.mjs +2 -2
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/alerts.mjs +3 -3
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/cascade.mjs +92 -18
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/chat.mjs +80 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/control.mjs +145 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/coordinator.mjs +42 -21
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/dispatch-request.mjs +4 -2
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/dispatch.mjs +33 -9
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/documentation.mjs +55 -11
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/executor.mjs +26 -4
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/gate-adapters/hermes.mjs +29 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/gate-adapters/index.mjs +1 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/included-usage.mjs +1 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/jobs.mjs +84 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/learner.mjs +3 -12
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/maintenance.mjs +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/mcp-server.mjs +228 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/process-manager.mjs +25 -2
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/reasoning.mjs +1 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/remote-operation.mjs +5 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/review.mjs +34 -3
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/reviews.mjs +25 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/router.mjs +1 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/claude.mjs +319 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/codex.mjs +387 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/result.mjs +67 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/resume.mjs +373 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session/run.mjs +223 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/session-jobs.mjs +72 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/setup.mjs +6 -3
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/termination.mjs +16 -12
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/threads.mjs +32 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/usage-queue.mjs +1 -1
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/verify-ssss.mjs +3 -3
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/worker.mjs +285 -40
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/src/worktree.mjs +76 -9
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/adapter-docs-freshness.md +16 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/chat-handoff.md +26 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/fleet-maintenance.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/harness-inventory.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/included-access.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/included-usage-verification.md +15 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/independent-review.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/managed-execution.md +20 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/official-documentation.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/quota-recovery.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/review-routing-decision.md +16 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/route-work.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/routing-evidence.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/chunks/run-ledger.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/home.js +198 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/DESIGN.md +75 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/README.md +2 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/cli.mjs +64 -32
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/package.json +2 -1
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/plugin.json +10 -44
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/generate.mjs +5 -4
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/graph.mjs +3 -4
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/ingest.mjs +23 -18
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/mesh-vaults.mjs +8 -3
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/refresh-diagnostics.mjs +44 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/refresh.mjs +123 -113
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/search.mjs +3 -5
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/token.mjs +21 -47
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/src/upstream-watcher.mjs +17 -6
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/auto-refresh.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/bootstrap-pages.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/generate-wiki.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/generator-settings.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/host-probe.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/ingest-preview.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/link-hygiene.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/link-topology.md +19 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/passage-search.md +19 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/propagation-plan.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/provider-credentials.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/refresh-report.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/task-evidence.md +22 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/upstream-record.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/watch-upstream.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/chunks/wiki-atlas.md +19 -0
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/panel.js +261 -513
- package/scaffold/.agent/skills/total-recall/plugins/security/DESIGN.md +84 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/README.md +4 -2
- package/scaffold/.agent/skills/total-recall/plugins/security/cli.mjs +7 -19
- package/scaffold/.agent/skills/total-recall/plugins/security/package-lock.json +7 -7
- package/scaffold/.agent/skills/total-recall/plugins/security/package.json +2 -3
- package/scaffold/.agent/skills/total-recall/plugins/security/plugin.json +19 -52
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/device-evidence.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/evidence-desk.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/guided-device-review.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/host-and-network.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/https-headers.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/mesh-coverage.md +18 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/private-security-tools.md +16 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/single-origin-header-check.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/source-review.md +21 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/chunks/ssh-permission-plan.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/home.js +283 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/DESIGN.md +93 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/package-lock.json +2 -2
- package/scaffold/.agent/skills/total-recall/plugins/ssss/package.json +2 -1
- package/scaffold/.agent/skills/total-recall/plugins/ssss/plugin.json +5 -3
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/conformance.md +26 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/registry.md +37 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/repair.md +42 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/scaffold.md +33 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/status.md +43 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/validate.md +34 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/validation-diagnostics.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/chunks/workspace-registry-preflight.md +17 -0
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/home.js +348 -0
- package/scaffold/.agent/skills/total-recall/references/operations.md +3 -1
- package/src/cli/agent.mjs +1 -1
- package/src/cli/api.mjs +3 -3
- package/src/cli/brief.mjs +3 -0
- package/src/cli/command.mjs +41 -2
- package/src/cli/config.mjs +16 -0
- package/src/cli/connect.mjs +2 -7
- package/src/cli/dream.mjs +93 -69
- package/src/cli/harness.mjs +4 -4
- package/src/cli/help.mjs +1 -1
- package/src/cli/init.mjs +0 -25
- package/src/cli/lessons.mjs +51 -0
- package/src/cli/memory-plugin.mjs +1 -1
- package/src/cli/plugin/chunks.mjs +145 -0
- package/src/cli/plugin/copies.mjs +64 -14
- package/src/cli/plugin/create.mjs +30 -59
- package/src/cli/plugin/index.mjs +31 -16
- package/src/cli/plugin/install.mjs +10 -15
- package/src/cli/plugin/remove.mjs +1 -1
- package/src/cli/plugin/search.mjs +2 -2
- package/src/cli/preflight.mjs +19 -6
- package/src/cli/proposals.mjs +1 -1
- package/src/cli/recall.mjs +66 -23
- package/src/cli/remember.mjs +3 -14
- package/src/cli/server.mjs +18 -0
- package/src/cli/setup.mjs +2 -9
- package/src/cli/start.mjs +1 -0
- package/src/cli/startup.mjs +19 -0
- package/src/cli/task.mjs +9 -2
- package/src/cli/update.mjs +6 -2
- package/src/core/access-ledger.mjs +78 -0
- package/src/core/agent-manager.mjs +2 -2
- package/src/core/app-deploy/design-tokens.mjs +14 -9
- package/src/core/app-deploy/ui-elements.mjs +1 -1
- package/src/core/brain-locate.mjs +15 -0
- package/src/core/brain-registry.mjs +5 -0
- package/src/core/brain-updates.mjs +35 -11
- package/src/core/claude-hooks.mjs +3 -1
- package/src/core/cleanup-task.mjs +15 -0
- package/src/core/cli-commands.mjs +2 -0
- package/src/core/cli-maintenance.mjs +4 -1
- package/src/core/cli-semantic-index.mjs +23 -3
- package/src/core/context-compiler.mjs +20 -0
- package/src/core/daemon-control.mjs +5 -1
- package/src/core/daemon-loop.mjs +39 -62
- package/src/core/dashboard-bundle.mjs +261 -0
- package/src/core/default-plugins.mjs +1 -1
- package/src/core/dream.mjs +33 -105
- package/src/core/ensure-dependencies.mjs +152 -0
- package/src/core/fast-recall.mjs +2 -2
- package/src/core/field-evaluation.mjs +23 -0
- package/src/core/gate-mode.mjs +1 -1
- package/src/core/harness-hooks.mjs +14 -2
- package/src/core/lesson-hooks.mjs +74 -0
- package/src/core/lesson-memory.mjs +24 -0
- package/src/core/lesson-sessions.mjs +52 -0
- package/src/core/lessons.mjs +96 -0
- package/src/core/memory-brain.mjs +30 -8
- package/src/core/meta-harness.mjs +2 -2
- package/src/core/optimizer.mjs +66 -165
- package/src/core/plugin-activation.mjs +63 -20
- package/src/core/plugin-contracts/{card.mjs → manifest.mjs} +26 -57
- package/src/core/plugin-contracts/startup-check.mjs +49 -0
- package/src/core/plugin-contracts/ui.mjs +9 -3
- package/src/core/plugin-distribution.mjs +6 -6
- package/src/core/plugin-lifecycle.mjs +58 -0
- package/src/core/plugin-loader.mjs +21 -8
- package/src/core/plugin-runner.mjs +21 -10
- package/src/core/plugin-runtime.mjs +40 -1
- package/src/core/plugin-startup-checks.mjs +44 -0
- package/src/core/plugin-state.mjs +19 -5
- package/src/core/plugin-store.mjs +64 -33
- package/src/core/post-mortem.mjs +52 -36
- package/src/core/preflight-gate.mjs +23 -2
- package/src/core/project-id.mjs +15 -5
- package/src/core/proposal-applier.mjs +31 -2
- package/src/core/repo-sync.mjs +4 -6
- package/src/core/required-plugins.mjs +57 -10
- package/src/core/rule-length.mjs +23 -0
- package/src/core/runtime.mjs +1 -1
- package/src/core/scheduler.mjs +35 -43
- package/src/core/schema.mjs +3 -2
- package/src/core/search.mjs +4 -3
- package/src/core/server-service.mjs +148 -0
- package/src/core/session-watcher.mjs +19 -1
- package/src/core/skill-gap.mjs +16 -0
- package/src/core/ssss-kernel-bridge.mjs +32 -4
- package/src/core/ssss-operation-service.mjs +1 -0
- package/src/core/startup-health.mjs +34 -4
- package/src/core/surface.mjs +65 -54
- package/src/core/task-executors.mjs +54 -106
- package/src/core/testing/plugin-fixture.mjs +22 -21
- package/src/core/throttled-fetch.mjs +25 -18
- package/src/core/ui-chunk-choice.mjs +77 -0
- package/src/core/ui-chunk.registry.json +23 -0
- package/src/core/ui-chunks.mjs +434 -0
- package/src/core/validated-write.mjs +1 -0
- package/src/core/vault-cache.mjs +58 -59
- package/src/core/vector-field.mjs +134 -192
- package/src/core/workspace-compositions.mjs +151 -0
- package/src/core/workspace-drawers.mjs +79 -0
- package/src/server/api.mjs +4 -27
- package/src/server/index.mjs +28 -21
- package/src/server/invoke-core-child.mjs +24 -0
- package/src/server/invoke-core-operations.mjs +102 -0
- package/src/server/memory-events.mjs +31 -0
- package/src/server/plugin-brain-targets.mjs +89 -0
- package/src/server/rest.mjs +2 -0
- package/src/server/route-inventory.mjs +3 -2
- package/src/server/route-manifest.json +47 -55
- package/src/server/routes/_shared.mjs +7 -14
- package/src/server/routes/brains.mjs +29 -62
- package/src/server/routes/context.mjs +0 -41
- package/src/server/routes/dashboard.mjs +26 -0
- package/src/server/routes/invoke.mjs +26 -1
- package/src/server/routes/plugins.mjs +154 -45
- package/src/server/routes/ssss.mjs +0 -169
- package/src/server/routes/system.mjs +0 -15
- package/src/server/routes/tasks.mjs +0 -26
- package/src/server/routes/ui-chunks.mjs +192 -0
- package/src/server/routes/vault.mjs +2 -23
- package/frontend/dist/assets/index-DD4qONvH.js +0 -5607
- package/frontend/dist/assets/index-DtwsDyFM.css +0 -1
- package/frontend/src/components/plugins/card/CardEngine.tsx +0 -108
- package/frontend/src/components/plugins/card/CardScenes.tsx +0 -103
- package/frontend/src/components/plugins/card/ExecutionPicker.tsx +0 -64
- package/frontend/src/components/plugins/card/args.ts +0 -28
- package/frontend/src/components/plugins/card/card.css +0 -32
- package/frontend/src/components/plugins/card/cli-line.ts +0 -13
- package/frontend/src/components/plugins/card/contract.ts +0 -91
- package/frontend/src/components/plugins/card/format.ts +0 -49
- package/frontend/src/components/plugins/card/runner-context.ts +0 -11
- package/frontend/src/components/plugins/card/runner.tsx +0 -43
- package/frontend/src/components/plugins/card/theme.ts +0 -35
- package/frontend/src/components/plugins/card/use-source.ts +0 -22
- package/frontend/src/components/plugins/card/widgets.tsx +0 -94
- package/frontend/src/components/plugins/workspace/WorkspaceHost.tsx +0 -23
- package/frontend/src/pages/PluginsPage.tsx +0 -1719
- package/scaffold/.agent/skills/plugin/evals/cases/04-card-collects-credential.mjs +0 -47
- package/scaffold/.agent/skills/plugin/prompts/06-card.md +0 -46
- package/scaffold/.agent/skills/plugin/references/card.md +0 -90
- package/scaffold/.agent/skills/plugin/subagents/card-designer.md +0 -60
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/DESIGN.md +0 -67
- package/scaffold/.agent/skills/total-recall/plugins/auth/ui/card.js +0 -1179
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/DESIGN.md +0 -32
- package/scaffold/.agent/skills/total-recall/plugins/code-quality/ui/card.js +0 -588
- package/scaffold/.agent/skills/total-recall/plugins/composable-cli/ui/card.js +0 -575
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/DESIGN.md +0 -32
- package/scaffold/.agent/skills/total-recall/plugins/embeddings/ui/card.js +0 -482
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/README.md +0 -53
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/plugin.json +0 -129
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/ui/DESIGN.md +0 -100
- package/scaffold/.agent/skills/total-recall/plugins/git-sentinel/ui/card.js +0 -637
- package/scaffold/.agent/skills/total-recall/plugins/mesh/ui/DESIGN.md +0 -217
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/DESIGN.md +0 -32
- package/scaffold/.agent/skills/total-recall/plugins/meta-harness/ui/card.js +0 -1276
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/DESIGN.md +0 -45
- package/scaffold/.agent/skills/total-recall/plugins/openwiki/ui/card.js +0 -1401
- package/scaffold/.agent/skills/total-recall/plugins/security/scripts/build-ui.mjs +0 -4
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/DESIGN.md +0 -41
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/card.js +0 -396
- package/scaffold/.agent/skills/total-recall/plugins/security/ui/panel.js +0 -98
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/DESIGN.md +0 -15
- package/scaffold/.agent/skills/total-recall/plugins/ssss/ui/card.js +0 -182
- package/src/core/append-log.mjs +0 -131
- package/src/core/plugin-tasks.mjs +0 -173
- package/templates/onboarding-interview.md +0 -82
- /package/scaffold/.agent/skills/total-recall/plugins/{git-sentinel → git}/LICENSE +0 -0
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* Status, most severe first:
|
|
13
13
|
* missing no report file
|
|
14
14
|
* unreadable report file is not valid JSON or has an unknown shape
|
|
15
|
+
* foreign report belongs to a different repository root
|
|
15
16
|
* infrastructure a gate failed to spawn or timed out; results are incomplete
|
|
16
17
|
* unparsed-failure a gate exited non-zero with no parseable findings
|
|
17
18
|
* failed findings or a failing gate
|
|
@@ -21,27 +22,34 @@
|
|
|
21
22
|
* partial clean, but higher-tier gates were skipped
|
|
22
23
|
* clean every gate ran, nothing changed since
|
|
23
24
|
*/
|
|
24
|
-
import { readFileSync, existsSync, statSync } from 'node:fs';
|
|
25
|
+
import { readFileSync, existsSync, statSync, realpathSync } from 'node:fs';
|
|
25
26
|
import { execFileSync } from 'node:child_process';
|
|
26
27
|
import path from 'node:path';
|
|
27
28
|
import { fileURLToPath } from 'node:url';
|
|
29
|
+
import { stateDir } from './state.mjs';
|
|
28
30
|
|
|
29
31
|
const SOURCE_EXTS = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.py', '.vue', '.svelte']);
|
|
30
32
|
|
|
31
33
|
function git(cwd, args) {
|
|
32
|
-
return execFileSync('git', args, { cwd, encoding: 'utf8', maxBuffer: 64 * 1024 * 1024, timeout: 20_000 });
|
|
34
|
+
return execFileSync('git', args, { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'], maxBuffer: 64 * 1024 * 1024, timeout: 20_000 });
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Resolve the caller's working tree independently of cached report metadata.
|
|
38
|
+
function repositoryRoot(cwd) {
|
|
39
|
+
try { return realpathSync(git(cwd, ['rev-parse', '--show-toplevel']).trim()); }
|
|
40
|
+
catch { return realpathSync(cwd); }
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
/** Returns { head, changed } or null when git cannot be read. */
|
|
36
|
-
function freshness(report) {
|
|
44
|
+
function freshness(report, repoRoot) {
|
|
37
45
|
try {
|
|
38
|
-
const head = git(
|
|
46
|
+
const head = git(repoRoot, ['rev-parse', '--verify', 'HEAD']).trim();
|
|
39
47
|
const startedMs = Date.parse(report.startedAt);
|
|
40
48
|
const changed = [];
|
|
41
|
-
for (const rel of git(
|
|
49
|
+
for (const rel of git(repoRoot, ['ls-files', '-z']).split('\0')) {
|
|
42
50
|
if (!rel || !SOURCE_EXTS.has(path.extname(rel))) continue;
|
|
43
51
|
try {
|
|
44
|
-
if (statSync(path.join(
|
|
52
|
+
if (statSync(path.join(repoRoot, rel)).mtimeMs > startedMs) changed.push(rel);
|
|
45
53
|
} catch { /* deleted since the run */ }
|
|
46
54
|
}
|
|
47
55
|
return { head, changed };
|
|
@@ -50,10 +58,13 @@ function freshness(report) {
|
|
|
50
58
|
}
|
|
51
59
|
}
|
|
52
60
|
|
|
53
|
-
export function buildReportView(reportFile, { now = Date.now(), inspectGit = true } = {}) {
|
|
54
|
-
const base = { reportFile, status: 'missing', reasons: [] };
|
|
61
|
+
export function buildReportView(reportFile, { now = Date.now(), inspectGit = true, cwd = process.cwd() } = {}) {
|
|
62
|
+
const base = { reportFile, status: 'missing', clean: false, reasons: [] };
|
|
55
63
|
if (!existsSync(reportFile)) {
|
|
56
|
-
|
|
64
|
+
const configured = existsSync(path.join(stateDir(cwd), 'config.json'));
|
|
65
|
+
return { ...base, reasons: [configured
|
|
66
|
+
? 'No report file. Run code-quality-check, then reload.'
|
|
67
|
+
: 'No code-quality configuration. Run total-recall code-quality detect --apply, then run code-quality-check.'] };
|
|
57
68
|
}
|
|
58
69
|
let report;
|
|
59
70
|
try {
|
|
@@ -67,6 +78,19 @@ export function buildReportView(reportFile, { now = Date.now(), inspectGit = tru
|
|
|
67
78
|
return { ...base, status: 'unreadable', reasons: ['Report does not have the code-quality schema (checks, ranChecks, startedAt).'] };
|
|
68
79
|
}
|
|
69
80
|
|
|
81
|
+
if (typeof report.repoRoot !== 'string' || !path.isAbsolute(report.repoRoot)) {
|
|
82
|
+
return { ...base, status: 'unreadable', reasons: ['Report has no absolute repository root. Run code-quality-check in this repository.'] };
|
|
83
|
+
}
|
|
84
|
+
let repoRoot;
|
|
85
|
+
try {
|
|
86
|
+
repoRoot = repositoryRoot(cwd);
|
|
87
|
+
if (realpathSync(report.repoRoot) !== repoRoot) {
|
|
88
|
+
return { ...base, status: 'foreign', reasons: ['Report belongs to another repository. Run code-quality-check in this repository.'] };
|
|
89
|
+
}
|
|
90
|
+
} catch {
|
|
91
|
+
return { ...base, status: 'unreadable', reasons: ['Cannot verify report repository root. Run code-quality-check in this repository.'] };
|
|
92
|
+
}
|
|
93
|
+
|
|
70
94
|
const findings = Array.isArray(report.findings) ? report.findings : [];
|
|
71
95
|
const hard = findings.filter((f) => f.severity !== 'warning' && f.severity !== 'info');
|
|
72
96
|
const skipped = Array.isArray(report.skippedChecks) ? report.skippedChecks : [];
|
|
@@ -87,8 +111,9 @@ export function buildReportView(reportFile, { now = Date.now(), inspectGit = tru
|
|
|
87
111
|
(c) => !c.ok && !c.spawnError && !c.timedOut && !findings.some((f) => f.check === c.id)
|
|
88
112
|
);
|
|
89
113
|
const zeroScope = report.checks.filter((c) => c.scanned === 0);
|
|
90
|
-
const fresh = inspectGit ? freshness(report) : null;
|
|
91
|
-
const
|
|
114
|
+
const fresh = inspectGit ? freshness(report, repoRoot) : null;
|
|
115
|
+
const revisionKnown = typeof report.gitHead === 'string' && /^(?:[a-f0-9]{40}|[a-f0-9]{64})$/i.test(report.gitHead);
|
|
116
|
+
const headMoved = Boolean(fresh && revisionKnown && fresh.head !== report.gitHead);
|
|
92
117
|
|
|
93
118
|
const reasons = [];
|
|
94
119
|
let status = 'clean';
|
|
@@ -102,7 +127,8 @@ export function buildReportView(reportFile, { now = Date.now(), inspectGit = tru
|
|
|
102
127
|
}
|
|
103
128
|
if (report.ranChecks.length === 0) set('zero-scope', 'No gates ran');
|
|
104
129
|
if (zeroScope.length) set('zero-scope', `${zeroScope.map((c) => c.id).join(', ')}: scanned 0 files`);
|
|
105
|
-
if (
|
|
130
|
+
if (!revisionKnown) set('unknown-freshness', 'Report has no verified revision. Run code-quality-check in this repository.');
|
|
131
|
+
if (fresh === null) set('unknown-freshness', 'git freshness could not be verified; cannot tell whether this report matches the tree');
|
|
106
132
|
else if (fresh && (fresh.changed.length || headMoved)) {
|
|
107
133
|
set('stale', headMoved
|
|
108
134
|
? `HEAD moved from ${String(report.gitHead).slice(0, 8)} to ${fresh.head.slice(0, 8)}`
|
|
@@ -116,7 +142,7 @@ export function buildReportView(reportFile, { now = Date.now(), inspectGit = tru
|
|
|
116
142
|
reasons,
|
|
117
143
|
clean: status === 'clean',
|
|
118
144
|
toolchain: report.toolchain,
|
|
119
|
-
repoRoot
|
|
145
|
+
repoRoot,
|
|
120
146
|
tier: report.tier,
|
|
121
147
|
gitHead: report.gitHead ?? null,
|
|
122
148
|
currentHead: fresh?.head ?? null,
|
|
@@ -172,7 +198,7 @@ export async function printCachedReport(args, reportFile) {
|
|
|
172
198
|
}
|
|
173
199
|
|
|
174
200
|
export function defaultReportFile() {
|
|
175
|
-
return path.
|
|
201
|
+
return path.join(stateDir(), 'reports', 'latest.json');
|
|
176
202
|
}
|
|
177
203
|
|
|
178
204
|
if (process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
|
@@ -17,12 +17,11 @@
|
|
|
17
17
|
* report.mjs --review-diagnostics [--json] cached gate and finding details
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import { readFileSync, existsSync
|
|
21
|
-
import { execFileSync } from 'node:child_process';
|
|
20
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
22
21
|
import path from 'node:path';
|
|
23
22
|
import { fileURLToPath } from 'node:url';
|
|
24
23
|
import { stateDir } from './state.mjs';
|
|
25
|
-
import { printCachedReport, wantsStructuredReport } from './report-data.mjs';
|
|
24
|
+
import { buildReportView, printCachedReport, wantsStructuredReport } from './report-data.mjs';
|
|
26
25
|
|
|
27
26
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
27
|
const __dirname = path.dirname(__filename);
|
|
@@ -39,39 +38,15 @@ if (wantsStructuredReport(process.argv.slice(2))) {
|
|
|
39
38
|
process.exit(await printCachedReport(process.argv.slice(2), REPORT_JSON));
|
|
40
39
|
}
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
console.
|
|
45
|
-
|
|
46
|
-
process.exit(0);
|
|
41
|
+
const view = buildReportView(REPORT_JSON);
|
|
42
|
+
if (['missing', 'unreadable', 'foreign'].includes(view.status)) {
|
|
43
|
+
console.error(`Code Quality report: ${view.status}\n${view.reasons.join('\n')}`);
|
|
44
|
+
process.exit(1);
|
|
47
45
|
}
|
|
46
|
+
process.exitCode = view.clean ? 0 : 1;
|
|
48
47
|
|
|
49
48
|
const report = JSON.parse(readFileSync(REPORT_JSON, 'utf8'));
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
// ─── Staleness: which files changed after the run started? ────────────────────
|
|
53
|
-
|
|
54
|
-
function changedSinceRun() {
|
|
55
|
-
let files = [];
|
|
56
|
-
try {
|
|
57
|
-
const out = execFileSync('git', ['ls-files', '-z'], {
|
|
58
|
-
cwd: report.repoRoot, encoding: 'utf8', maxBuffer: 64 * 1024 * 1024, timeout: 20_000
|
|
59
|
-
});
|
|
60
|
-
const exts = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.py', '.vue', '.svelte']);
|
|
61
|
-
files = out.split('\0').filter((f) => f && exts.has(path.extname(f)));
|
|
62
|
-
} catch {
|
|
63
|
-
return null; // cannot determine — say so rather than implying freshness
|
|
64
|
-
}
|
|
65
|
-
const changed = [];
|
|
66
|
-
for (const rel of files) {
|
|
67
|
-
try {
|
|
68
|
-
if (statSync(path.join(report.repoRoot, rel)).mtimeMs > startedMs) changed.push(rel);
|
|
69
|
-
} catch { /* deleted since */ }
|
|
70
|
-
}
|
|
71
|
-
return changed;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const changed = changedSinceRun();
|
|
49
|
+
const changed = view.changedSinceRun;
|
|
75
50
|
const ageMin = Math.round((Date.now() - Date.parse(report.finishedAt)) / 60000);
|
|
76
51
|
|
|
77
52
|
// ─── Header ───────────────────────────────────────────────────────────────────
|
|
@@ -114,11 +89,11 @@ if (opaque.length) {
|
|
|
114
89
|
}
|
|
115
90
|
}
|
|
116
91
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
92
|
+
console.log(` Report status: ${view.status}`);
|
|
93
|
+
for (const reason of view.reasons) console.log(` ${reason}`);
|
|
94
|
+
if (changed !== null && changed.length === 0 && view.currentHead === view.gitHead) {
|
|
120
95
|
console.log(` FRESH — no tracked source file has changed since this run started.`);
|
|
121
|
-
} else {
|
|
96
|
+
} else if (changed?.length) {
|
|
122
97
|
console.log(` STALE for ${changed.length} file(s) edited after the run started:`);
|
|
123
98
|
for (const f of changed.slice(0, 8)) console.log(` ${f}`);
|
|
124
99
|
if (changed.length > 8) console.log(` … and ${changed.length - 8} more`);
|
|
@@ -146,15 +121,15 @@ const staleMark = (file) => (changed?.includes(file) ? ' ' : '');
|
|
|
146
121
|
if (mode === 'raw') {
|
|
147
122
|
if (!existsSync(REPORT_TXT)) { console.error('No raw output stored.'); process.exit(1); }
|
|
148
123
|
const raw = readFileSync(REPORT_TXT, 'utf8');
|
|
149
|
-
if (!arg) { console.log(raw.slice(0, 20000)); process.exit(0); }
|
|
124
|
+
if (!arg) { console.log(raw.slice(0, 20000)); process.exit(view.clean ? 0 : 1); }
|
|
150
125
|
const section = raw.split(/^# /m).find((s) => s.startsWith(arg));
|
|
151
126
|
console.log(section ? `# ${section}`.slice(0, 40000) : `No raw section for check "${arg}".`);
|
|
152
|
-
process.exit(section ? 0 : 1);
|
|
127
|
+
process.exit(section && view.clean ? 0 : 1);
|
|
153
128
|
}
|
|
154
129
|
|
|
155
130
|
if (findings.length === 0) {
|
|
156
131
|
console.log(' No findings.');
|
|
157
|
-
process.exit(0);
|
|
132
|
+
process.exit(view.clean ? 0 : 1);
|
|
158
133
|
}
|
|
159
134
|
|
|
160
135
|
switch (mode) {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tr-plugin-code-quality",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "tr-plugin-code-quality",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.3.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@gregiteen/ssss-cli": "0.14.5"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"total-recall-brain": "3.
|
|
15
|
+
"total-recall-brain": "3.45.0"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"node_modules/@alcalzone/ansi-tokenize": {
|
|
@@ -5543,9 +5543,9 @@
|
|
|
5543
5543
|
}
|
|
5544
5544
|
},
|
|
5545
5545
|
"node_modules/total-recall-brain": {
|
|
5546
|
-
"version": "3.
|
|
5547
|
-
"resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.
|
|
5548
|
-
"integrity": "sha512-
|
|
5546
|
+
"version": "3.45.0",
|
|
5547
|
+
"resolved": "https://registry.npmjs.org/total-recall-brain/-/total-recall-brain-3.45.0.tgz",
|
|
5548
|
+
"integrity": "sha512-HDYfROazZbsLHQsFPnlBcSpe1HL1QEi7JG8x/eNRUI06RxVQsZWl8LwBo2lTWjWRDrKmCy7BUmSXQDuWF3lrEw==",
|
|
5549
5549
|
"dev": true,
|
|
5550
5550
|
"license": "MIT",
|
|
5551
5551
|
"workspaces": [
|
|
@@ -5553,7 +5553,7 @@
|
|
|
5553
5553
|
],
|
|
5554
5554
|
"dependencies": {
|
|
5555
5555
|
"@simplewebauthn/server": "^13.3.2",
|
|
5556
|
-
"@ssss/cli": "npm:@gregiteen/ssss-cli@0.14.
|
|
5556
|
+
"@ssss/cli": "npm:@gregiteen/ssss-cli@0.14.5",
|
|
5557
5557
|
"bcrypt": "^6.0.0",
|
|
5558
5558
|
"better-sqlite3": "^12.11.1",
|
|
5559
5559
|
"cookie-parser": "^1.4.7",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tr-plugin-code-quality",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Total Recall code-quality plugin: shared gate runner core and per-repo gate configuration.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"plugin.json",
|
|
19
19
|
"README.md",
|
|
20
20
|
"LICENSE",
|
|
21
|
+
"DESIGN.md",
|
|
21
22
|
"core/",
|
|
22
23
|
"commands/",
|
|
23
24
|
"ui/"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://github.com/gregiteen/total-recall/blob/main/metadata.plugin.schema.json",
|
|
3
3
|
"id": "code-quality",
|
|
4
4
|
"name": "Code Quality Gates",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.3.0",
|
|
6
6
|
"description": "Fail-closed deterministic code-quality gates, lint rules, and test compliance reporting.",
|
|
7
7
|
"author": "Total Recall contributors",
|
|
8
8
|
"license": "MIT",
|
|
@@ -22,6 +22,15 @@
|
|
|
22
22
|
"description": "Read the latest gate report or --review-diagnostics, with --json for machine output. Never starts a check",
|
|
23
23
|
"effect": "read"
|
|
24
24
|
},
|
|
25
|
+
{
|
|
26
|
+
"name": "run",
|
|
27
|
+
"description": "Run the selected repository's configured fast or full gates once and persist the report",
|
|
28
|
+
"effect": "write",
|
|
29
|
+
"timeoutMs": 600000,
|
|
30
|
+
"args": [
|
|
31
|
+
{ "name": "tier", "flag": "--tier", "type": "choice", "options": ["fast", "full"], "label": "Gate tier" }
|
|
32
|
+
]
|
|
33
|
+
},
|
|
25
34
|
{
|
|
26
35
|
"name": "snapshot",
|
|
27
36
|
"description": "Copy the exact source under test (git file lists of this repo and linked plugin repos, secrets refused) to the test node, with a SHA-256 manifest",
|
|
@@ -63,7 +72,37 @@
|
|
|
63
72
|
}
|
|
64
73
|
],
|
|
65
74
|
"ui": {
|
|
75
|
+
"home": "code-quality-home",
|
|
76
|
+
"design_tokens": "DESIGN.md",
|
|
66
77
|
"elements": [
|
|
78
|
+
{
|
|
79
|
+
"id": "code-quality-home",
|
|
80
|
+
"kind": "panel",
|
|
81
|
+
"tag": "code-quality-home",
|
|
82
|
+
"module": "ui/home.mjs",
|
|
83
|
+
"description": "Home: verdict, freshness, coverage, findings and the declared operations for this repository. Data comes from `code-quality report --json`; absent data never renders as passing.",
|
|
84
|
+
"props": {
|
|
85
|
+
"view": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"description": "JSON printed by `total-recall code-quality report --json`. Absent view renders as no data, never as passing."
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"optional_tokens": [
|
|
91
|
+
"font-body",
|
|
92
|
+
"font-mono",
|
|
93
|
+
"color-primary",
|
|
94
|
+
"color-primary-strong",
|
|
95
|
+
"color-on-primary",
|
|
96
|
+
"color-background",
|
|
97
|
+
"color-surface",
|
|
98
|
+
"color-border",
|
|
99
|
+
"color-text",
|
|
100
|
+
"color-muted",
|
|
101
|
+
"color-success",
|
|
102
|
+
"color-warning",
|
|
103
|
+
"color-danger"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
67
106
|
{
|
|
68
107
|
"id": "code-quality-report",
|
|
69
108
|
"kind": "panel",
|
|
@@ -76,10 +115,6 @@
|
|
|
76
115
|
"description": "JSON printed by `total-recall code-quality report json`. Absent view renders as no data, never as passing."
|
|
77
116
|
}
|
|
78
117
|
},
|
|
79
|
-
"events": [
|
|
80
|
-
"run-check",
|
|
81
|
-
"reload"
|
|
82
|
-
],
|
|
83
118
|
"optional_tokens": [
|
|
84
119
|
"font-body",
|
|
85
120
|
"color-text",
|
|
@@ -91,41 +126,6 @@
|
|
|
91
126
|
"radius-md",
|
|
92
127
|
"space-4"
|
|
93
128
|
]
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
"id": "card",
|
|
97
|
-
"kind": "card",
|
|
98
|
-
"tag": "tr-code-quality-card",
|
|
99
|
-
"module": "ui/card.js",
|
|
100
|
-
"description": "Gatekeeper Card Face"
|
|
101
|
-
}
|
|
102
|
-
]
|
|
103
|
-
},
|
|
104
|
-
"card_face": {
|
|
105
|
-
"skin": "winamp-classic",
|
|
106
|
-
"theme": "vibrant",
|
|
107
|
-
"headline": "Deterministic Code Gates & Lint",
|
|
108
|
-
"primary_color": "#06b6d4",
|
|
109
|
-
"secondary_color": "#164e63",
|
|
110
|
-
"accent_color": "#22d3ee",
|
|
111
|
-
"touch_layout": "comfortable",
|
|
112
|
-
"interactive": true,
|
|
113
|
-
"quick_actions": [
|
|
114
|
-
{
|
|
115
|
-
"subcommand": "report",
|
|
116
|
-
"label": "REPORT"
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"subcommand": "gate",
|
|
120
|
-
"label": "GATE"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"subcommand": "config",
|
|
124
|
-
"label": "CONFIG"
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"subcommand": "detect",
|
|
128
|
-
"label": "DETECT"
|
|
129
129
|
}
|
|
130
130
|
]
|
|
131
131
|
},
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ui-chunk:chunk
|
|
3
|
+
plugin: code-quality
|
|
4
|
+
id: config
|
|
5
|
+
title: Gate configuration
|
|
6
|
+
description: Read, validate or change the repository's gate configuration.
|
|
7
|
+
timestamp: '2026-11-08T08:04:00Z'
|
|
8
|
+
intents: [show quality gate config, change a gate setting, validate gate configuration]
|
|
9
|
+
surfaces: [page]
|
|
10
|
+
operations: [config]
|
|
11
|
+
---
|
|
12
|
+
<section data-design-component="workflow">
|
|
13
|
+
<h2>Inspect the gate configuration</h2>
|
|
14
|
+
<p>Use <code>config get</code> to inspect the current settings and <code>config validate</code> to check changes before running gates.</p>
|
|
15
|
+
</section>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ui-chunk:chunk
|
|
3
|
+
plugin: code-quality
|
|
4
|
+
id: detect
|
|
5
|
+
title: Detect candidate gates
|
|
6
|
+
description: Propose checks based on existing repository scripts and optionally apply the proposal.
|
|
7
|
+
timestamp: '2026-11-08T08:04:00Z'
|
|
8
|
+
intents: [suggest quality gates, detect package checks, review detected gates]
|
|
9
|
+
surfaces: [page]
|
|
10
|
+
operations: [detect]
|
|
11
|
+
---
|
|
12
|
+
<section data-design-component="workflow">
|
|
13
|
+
<h2>Review detected checks</h2>
|
|
14
|
+
<p>Run detection to see which checks the repository already exposes. Use <code>--apply</code> after reviewing the proposed configuration.</p>
|
|
15
|
+
</section>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ui-chunk:chunk
|
|
3
|
+
plugin: code-quality
|
|
4
|
+
id: gate
|
|
5
|
+
title: Repository gates
|
|
6
|
+
description: List configured gates and locate the right add or remove operation.
|
|
7
|
+
timestamp: '2026-11-08T08:04:00Z'
|
|
8
|
+
intents: [list repository gates, add a quality gate, remove a quality gate]
|
|
9
|
+
surfaces: [page]
|
|
10
|
+
operations: [gate]
|
|
11
|
+
---
|
|
12
|
+
<section data-design-component="workflow">
|
|
13
|
+
<h2>Review the configured gates</h2>
|
|
14
|
+
<p>Run <code>gate list</code> to see the repository's checks. Review the current IDs and tiers before adding or removing one.</p>
|
|
15
|
+
</section>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ui-chunk:chunk
|
|
3
|
+
plugin: code-quality
|
|
4
|
+
id: init
|
|
5
|
+
title: Set up repository gates
|
|
6
|
+
description: Initialize the repository's code quality configuration with available defaults.
|
|
7
|
+
timestamp: '2026-11-08T08:04:00Z'
|
|
8
|
+
intents: [initialize quality gates, create gate configuration, set up repo checks]
|
|
9
|
+
surfaces: [page]
|
|
10
|
+
operations: [init]
|
|
11
|
+
---
|
|
12
|
+
<section data-design-component="workflow">
|
|
13
|
+
<h2>Set up the repository</h2>
|
|
14
|
+
<p>Initialize the gate configuration, then inspect the selected checks before running the first gate suite.</p>
|
|
15
|
+
</section>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ui-chunk:chunk
|
|
3
|
+
plugin: code-quality
|
|
4
|
+
id: report
|
|
5
|
+
title: Latest gate report
|
|
6
|
+
description: Read the cached report and compare its coverage and findings with the current repository revision.
|
|
7
|
+
timestamp: '2026-11-08T08:04:00Z'
|
|
8
|
+
intents: [read the latest gate report, find failing gates, check report freshness, review skipped checks]
|
|
9
|
+
surfaces: [page]
|
|
10
|
+
operations: [report]
|
|
11
|
+
data: ['report:/status', 'report:/reasons', 'report:/tier', 'report:/gitHead', 'report:/currentHead', 'report:/finishedAt', 'report:/ageMs', 'report:/durationMs', 'report:/changedSinceRun', 'report:/sourceFileCount', 'report:/ranChecks', 'report:/skippedChecks', 'report:/gates', 'report:/totalFindings', 'report:/blockingFindings', 'report:/findings', 'report:/findingsTruncated']
|
|
12
|
+
panel: code-quality-home
|
|
13
|
+
---
|
|
14
|
+
<section data-design-component="report">
|
|
15
|
+
<h2>Read the latest gate evidence</h2>
|
|
16
|
+
<p>Start with freshness, then check skipped gates and blocking findings. Reload the stored report if a check has just finished.</p>
|
|
17
|
+
</section>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ui-chunk:chunk
|
|
3
|
+
plugin: code-quality
|
|
4
|
+
id: run
|
|
5
|
+
title: Run repository gates
|
|
6
|
+
description: Start the selected repository's fast or full quality gate run and review the fresh report.
|
|
7
|
+
timestamp: '2026-11-08T23:25:00Z'
|
|
8
|
+
intents: [run fast quality gates, run the full repository checks, rerun gates after fixing findings]
|
|
9
|
+
surfaces: [page]
|
|
10
|
+
operations: [run, report]
|
|
11
|
+
data: ['report:/status', 'report:/finishedAt', 'report:/ranChecks', 'report:/blockingFindings']
|
|
12
|
+
panel: code-quality-report
|
|
13
|
+
---
|
|
14
|
+
<section data-design-component="report">
|
|
15
|
+
<h2>Run repository gates</h2>
|
|
16
|
+
<p>Choose the fast or full tier. The owner locks the selected repository for one run, then the panel reads the completed report with its timestamp and gate coverage.</p>
|
|
17
|
+
</section>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: ui-chunk:chunk
|
|
3
|
+
plugin: code-quality
|
|
4
|
+
id: snapshot
|
|
5
|
+
title: Snapshot the source under test
|
|
6
|
+
description: Inspect the files that a snapshot would send to the test node before copying them.
|
|
7
|
+
timestamp: '2026-11-08T08:04:00Z'
|
|
8
|
+
intents: [snapshot source under test, inspect test node snapshot, preview snapshot file list]
|
|
9
|
+
surfaces: [page]
|
|
10
|
+
operations: [snapshot]
|
|
11
|
+
---
|
|
12
|
+
<section data-design-component="workflow">
|
|
13
|
+
<h2>Preview the snapshot</h2>
|
|
14
|
+
<p>Choose the test node and use <code>--dry-run</code> to inspect the repository and linked plugin files before copying them.</p>
|
|
15
|
+
</section>
|