application · active
Improve Topolo
Shared contribution and triage surface for Topolo issues, ideas, and product improvements, backed by BugFix AI analysis and pull-request automation.
Documentation map
- Topolo BugFix — Public overview of BugFix, including AI-assisted bug analysis, fix generation, and Nexus-backed provider usage.
Authority and runtime
- System ID
topolo-bugfix- App IDs
- app_topolo_bugfix
- Owners
- ai-platform
- Repositories
- system-apps/TopoloBugFix, system-apps/TopoloBugFixRunner
- Hosts
- https://bugfix.topolo.app, https://bugfix.stg.topolo.us
- Dependencies
- topolo-auth, topolo-nexus
Security and data ownership
- Risk tier
- standard
- Tenant isolation
- organization_scoped
- Privacy classification
- restricted
- Storage
- d1, external_provider
- Export and deletion
- planned
- Enterprise ready
- no
Source-derived capability inventory
Source revisions: system-apps/TopoloBugFix@f255bd2ae4f710130f36e8f5c6e42bd9fdac21f1, system-apps/TopoloBugFixRunner@92dcf622930a7b0c034d567f8362505b448294b5
Declared actions: 25 · API routes: 1 · UI routes: 6
{
"id": "topolo-bugfix",
"name": "Improve Topolo",
"slug": "topolo-bugfix",
"kind": "application",
"visibility": "public",
"repo_paths": [
"system-apps/TopoloBugFix",
"system-apps/TopoloBugFixRunner"
],
"source_revisions": [
{
"source_path": "system-apps/TopoloBugFix",
"repository": "system-apps/TopoloBugFix",
"revision": "f255bd2ae4f710130f36e8f5c6e42bd9fdac21f1",
"ref": "origin/staging"
},
{
"source_path": "system-apps/TopoloBugFixRunner",
"repository": "system-apps/TopoloBugFixRunner",
"revision": "92dcf622930a7b0c034d567f8362505b448294b5",
"ref": "origin/staging"
}
],
"source_counts": {
"source_files": 45,
"test_files": 37,
"test_cases": 0,
"migration_files": 9,
"database_tables": 0,
"manifests": 2,
"deploy_targets": 2,
"actions": 25,
"mobile_contracts": 0,
"notifications": 6,
"package_manifests": 2,
"deployment_configs": 0
},
"manifests": [
{
"source_path": "system-apps/TopoloBugFix/topolo.app.json",
"service_slug": "topolo-bugfix",
"name": "topolo-bugfix",
"app_id": "app_topolo_bugfix",
"compatibility_date": "2026-04-10",
"primary_target": "api",
"environments": [
"development",
"production",
"staging"
],
"targets": [
{
"name": "api",
"kind": "worker",
"directory": "apps/api",
"main": "src/index.js",
"worker_name": "topolo-bugfix",
"subdomain": "bugfix",
"healthcheck_path": "/health",
"variable_names": [
"BUGFIX_PUBLIC_BASE_URL",
"ENVIRONMENT",
"GITHUB_API_URL",
"GITHUB_REPO_OWNER",
"NEXUS_GATEWAY_URL",
"PLATFORM_ADMIN_ORG_ID",
"TOPOLO_APP_ID",
"TOPOLO_AUTH_BASE_URL",
"TOPOLO_DOCS_URL",
"TOPOLO_NOTIFY_URL"
],
"secret_names": [],
"bindings": [
{
"kind": "d1",
"binding": "BUGFIX_REPORTS_DB",
"target": null
},
{
"kind": "d1",
"binding": "BUGFIX_FIXES_DB",
"target": null
},
{
"kind": "d1",
"binding": "BUGFIX_OPERATIONS_DB",
"target": null
},
{
"kind": "d1",
"binding": "BUGFIX_EVENTS_DB",
"target": null
}
]
}
],
"notifications": [
"bugfix.fix.applied",
"bugfix.fix.approval_requested",
"bugfix.fix.failed",
"bugfix.fix.ready",
"bugfix.queue.stalled",
"bugfix.report.created"
],
"notification_contract": {
"source_path": "topolo.notification-contracts.json",
"role": "producer",
"schema_version": 1,
"owner_app_id": "app_topolo_bugfix",
"events": [
{
"type": "bugfix.fix.applied",
"version": 1,
"description": "A BugFix pull request was durably recorded as merged.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"report_id",
"app_name",
"fix_id",
"pull_request_number",
"status",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"report_id": {
"type": "string",
"minLength": 1
},
"app_name": {
"type": "string",
"minLength": 1
},
"fix_id": {
"type": [
"string",
"null"
]
},
"job_id": {
"type": [
"string",
"null"
]
},
"pull_request_number": {
"type": "integer",
"minimum": 1
},
"status": {
"const": "merged"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Bug fix applied",
"body": "Pull request #42 was merged.",
"object_id": "fix_1",
"report_id": "report_1",
"app_name": "topolo-books",
"fix_id": "fix_1",
"pull_request_number": 42,
"status": "merged",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://bugfix.stg.topolo.us/fixes/fix_1"
}
],
"dataClassification": "internal",
"sensitiveFields": [],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^bugfix:fix-applied:"
}
},
{
"type": "bugfix.fix.approval_requested",
"version": 1,
"description": "A validated fix durably entered the review-pending state.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"report_id",
"app_name",
"fix_id",
"pull_request_id",
"status",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"report_id": {
"type": "string",
"minLength": 1
},
"app_name": {
"type": "string",
"minLength": 1
},
"fix_id": {
"type": "string",
"minLength": 1
},
"pull_request_id": {
"type": "string",
"minLength": 1
},
"status": {
"const": "review_pending"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Bug fix approval requested",
"body": "A validated fix is ready for review.",
"object_id": "fix_1",
"report_id": "report_1",
"app_name": "topolo-books",
"fix_id": "fix_1",
"pull_request_id": "pr_1",
"status": "review_pending",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://bugfix.stg.topolo.us/fixes/fix_1"
}
],
"dataClassification": "internal",
"sensitiveFields": [],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^bugfix:fix-approval-requested:"
}
},
{
"type": "bugfix.fix.failed",
"version": 1,
"description": "A fix generation job durably exhausted or entered the failed state.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"report_id",
"app_name",
"fix_id",
"job_id",
"status",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"report_id": {
"type": "string",
"minLength": 1
},
"app_name": {
"type": "string",
"minLength": 1
},
"fix_id": {
"type": [
"string",
"null"
]
},
"job_id": {
"type": [
"string",
"null"
]
},
"status": {
"const": "failed"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Bug fix failed",
"body": "The external runner exhausted its fix attempts.",
"object_id": "job_1",
"report_id": "report_1",
"app_name": "topolo-books",
"fix_id": null,
"job_id": "job_1",
"status": "failed",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://bugfix.stg.topolo.us/reports/report_1"
}
],
"dataClassification": "internal",
"sensitiveFields": [],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^bugfix:fix-failed:"
}
},
{
"type": "bugfix.fix.ready",
"version": 1,
"description": "A generated or runner-produced fix was durably recorded and is ready for its next step.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"report_id",
"app_name",
"fix_id",
"status",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"report_id": {
"type": "string",
"minLength": 1
},
"app_name": {
"type": "string",
"minLength": 1
},
"fix_id": {
"type": [
"string",
"null"
]
},
"job_id": {
"type": [
"string",
"null"
]
},
"confidence_score": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"status": {
"enum": [
"generated",
"fix_generated",
"pr_created",
"merged"
]
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Bug fix ready",
"body": "A proposed fix is ready for review.",
"object_id": "fix_1",
"report_id": "report_1",
"app_name": "topolo-books",
"fix_id": "fix_1",
"confidence_score": 0.91,
"status": "generated",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://bugfix.stg.topolo.us/fixes/fix_1"
}
],
"dataClassification": "internal",
"sensitiveFields": [],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^bugfix:fix-ready:"
}
},
{
"type": "bugfix.queue.stalled",
"version": 1,
"description": "An expired runner lease was durably returned to the queued state.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"report_id",
"app_name",
"job_id",
"runner_id",
"lease_expires_at",
"status",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"report_id": {
"type": "string",
"minLength": 1
},
"app_name": {
"type": "string",
"minLength": 1
},
"job_id": {
"type": "string",
"minLength": 1
},
"runner_id": {
"type": [
"string",
"null"
]
},
"lease_expires_at": {
"type": "string",
"format": "date-time"
},
"status": {
"const": "queued"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "BugFix queue job stalled",
"body": "An expired runner lease was returned to the fix queue.",
"object_id": "job_1",
"report_id": "report_1",
"app_name": "topolo-books",
"job_id": "job_1",
"runner_id": "runner_1",
"lease_expires_at": "2026-07-20T00:00:00.000Z",
"status": "queued",
"occurred_at": "2026-07-20T00:01:00.000Z",
"cta_url": "https://bugfix.stg.topolo.us/reports/report_1"
}
],
"dataClassification": "internal",
"sensitiveFields": [],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^bugfix:queue-stalled:"
}
},
{
"type": "bugfix.report.created",
"version": 1,
"description": "A bug report and its triage result were durably persisted.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"report_id",
"app_name",
"severity",
"status",
"triage_tier",
"fingerprint",
"occurred_at",
"cta_url"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"report_id": {
"type": "string",
"minLength": 1
},
"app_name": {
"type": "string",
"minLength": 1
},
"severity": {
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"status": {
"const": "pending"
},
"triage_tier": {
"enum": [
"tier_1",
"tier_2"
]
},
"fingerprint": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
},
"examples": [
{
"title": "Bug report created",
"body": "topolo-books: Invoice total is stale",
"object_id": "report_1",
"report_id": "report_1",
"app_name": "topolo-books",
"severity": "high",
"status": "pending",
"triage_tier": "tier_1",
"fingerprint": "books:invoice-total",
"occurred_at": "2026-07-20T00:00:00.000Z",
"cta_url": "https://bugfix.stg.topolo.us/reports/report_1"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"fingerprint"
],
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^bugfix:report-created:"
}
}
]
},
"actions": [
{
"name": "widget.get",
"title": "Get BugFix widget",
"description": "Get the TopoloOne widget summary for BugFix.",
"method": "GET",
"path": "/api/widget",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/widget",
"body": null
},
"effects": "Reads state through GET /api/widget without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/widget",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "organizations.data.export",
"title": "Export organization data",
"description": "Export organization-authored BugFix data without credentials.",
"method": "GET",
"path": "/api/organizations/{organizationId}/data",
"permission": "privacy:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"organizationId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"organizationId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/organizations/example/data",
"body": null
},
"effects": "Reads state through GET /api/organizations/{organizationId}/data without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/organizations/*/data",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "organizations.data.erase",
"title": "Erase organization data",
"description": "Erase organization-authored BugFix data after active work is stopped and literal ERASE confirmation is provided.",
"method": "DELETE",
"path": "/api/organizations/{organizationId}/data",
"permission": "privacy:write",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"organizationId": {
"type": "string",
"minLength": 1
},
"confirmation": {
"type": "string",
"const": "ERASE"
}
},
"required": [
"organizationId",
"confirmation"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"organizationId": "example",
"confirmation": "ERASE"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/organizations/example/data",
"body": null
},
"effects": "May change state through DELETE /api/organizations/{organizationId}/data. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/organizations/*/data",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "reports.create",
"title": "Create bug report",
"description": "Create an authenticated bug report for a Topolo application.",
"method": "POST",
"path": "/api/actions/reports",
"permission": "issues:write",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"appName": {
"type": "string",
"minLength": 1
},
"severity": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"appVersion": {
"type": "string"
},
"pageUrl": {
"type": "string"
},
"userAgent": {
"type": "string"
},
"screenshot": {
"type": "string"
},
"consoleErrors": {},
"componentStack": {
"type": "string"
},
"additionalContext": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"title",
"description",
"appName"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"title": "example",
"description": "example",
"appName": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/actions/reports",
"body": {
"title": "example",
"description": "example",
"appName": "example"
}
},
"effects": "May change state through POST /api/actions/reports. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/actions/reports",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "reports.list",
"title": "List bug reports",
"description": "List bug reports visible to the active principal.",
"method": "GET",
"path": "/api/reports",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"app": {
"type": "string",
"minLength": 1
},
"status": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"app": "example",
"status": "example",
"limit": 1
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/reports",
"body": null
},
"effects": "Reads state through GET /api/reports without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/reports",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "reports.get",
"title": "Get bug report",
"description": "Get one bug report.",
"method": "GET",
"path": "/api/reports/{reportId}",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1
}
},
"required": [
"reportId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"reportId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/reports/example",
"body": null
},
"effects": "Reads state through GET /api/reports/{reportId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/reports/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "reports.status.get",
"title": "Get bug report status",
"description": "Get the current status and related fixes for one bug report.",
"method": "GET",
"path": "/api/reports/{reportId}/status",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1
}
},
"required": [
"reportId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"reportId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/reports/example/status",
"body": null
},
"effects": "Reads state through GET /api/reports/{reportId}/status without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/reports/*/status",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "reports.fix.generate",
"title": "Generate report fix",
"description": "Start AI fix generation for one bug report.",
"method": "POST",
"path": "/api/reports/{reportId}/fix",
"permission": "runs:invoke",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1
}
},
"required": [
"reportId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"reportId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/reports/example/fix",
"body": {
"reportId": "example"
}
},
"effects": "May change state through POST /api/reports/{reportId}/fix. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/reports/*/fix",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "fixes.get",
"title": "Get generated fix",
"description": "Get one generated fix and its pull-request state.",
"method": "GET",
"path": "/api/fixes/{fixId}",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"fixId": {
"type": "string",
"minLength": 1
}
},
"required": [
"fixId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"fixId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/fixes/example",
"body": null
},
"effects": "Reads state through GET /api/fixes/{fixId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/fixes/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "fixes.approve",
"title": "Approve generated fix",
"description": "Approve one generated fix and merge its open pull request.",
"method": "POST",
"path": "/api/fixes/{fixId}/approve",
"permission": "issues:write",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"fixId": {
"type": "string",
"minLength": 1
}
},
"required": [
"fixId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"fixId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/fixes/example/approve",
"body": {
"fixId": "example"
}
},
"effects": "May change state through POST /api/fixes/{fixId}/approve. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/fixes/*/approve",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "fixes.reject",
"title": "Reject generated fix",
"description": "Reject one generated fix and close its open pull request.",
"method": "POST",
"path": "/api/fixes/{fixId}/reject",
"permission": "issues:write",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"fixId": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string"
}
},
"required": [
"fixId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"fixId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/fixes/example/reject",
"body": {
"fixId": "example"
}
},
"effects": "May change state through POST /api/fixes/{fixId}/reject. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/fixes/*/reject",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "admin.stats.get",
"title": "Get BugFix statistics",
"description": "Get platform BugFix operational statistics.",
"method": "GET",
"path": "/api/admin/stats",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/admin/stats",
"body": null
},
"effects": "Reads state through GET /api/admin/stats without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/admin/stats",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "queue.retry",
"title": "Retry failed reports",
"description": "Move selected failed reports back to pending.",
"method": "POST",
"path": "/api/admin/retry",
"permission": "issues:write",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportIds": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"reportIds"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"reportIds": [
"example"
]
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/admin/retry",
"body": {
"reportIds": [
"example"
]
}
},
"effects": "May change state through POST /api/admin/retry. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/admin/retry",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "queue.list",
"title": "List review queue",
"description": "List the platform BugFix review queue.",
"method": "GET",
"path": "/api/admin/queue",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"status": {
"type": "string",
"minLength": 1
},
"app": {
"type": "string",
"minLength": 1
},
"severity": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"status": "example",
"app": "example",
"severity": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/admin/queue",
"body": null
},
"effects": "Reads state through GET /api/admin/queue without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/admin/queue",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "queue.stats.get",
"title": "Get review queue statistics",
"description": "Get review queue totals by state.",
"method": "GET",
"path": "/api/admin/queue/stats",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/admin/queue/stats",
"body": null
},
"effects": "Reads state through GET /api/admin/queue/stats without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/admin/queue/stats",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "queue.report.get",
"title": "Get queued report",
"description": "Get one report from the platform review queue.",
"method": "GET",
"path": "/api/admin/queue/{reportId}",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1
}
},
"required": [
"reportId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {
"reportId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/admin/queue/example",
"body": null
},
"effects": "Reads state through GET /api/admin/queue/{reportId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/admin/queue/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "queue.report.update",
"title": "Update queued report",
"description": "Update review notes, guidance, priority, target, assignment, or state.",
"method": "PUT",
"path": "/api/admin/queue/{reportId}",
"permission": "issues:write",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1
},
"admin_notes": {
"type": "string"
},
"admin_guidance": {
"type": "string"
},
"priority": {
"type": "string"
},
"target_repo": {
"type": "string"
},
"target_branch": {
"type": "string"
},
"assigned_agent": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"reportId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"reportId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/admin/queue/example",
"body": {
"reportId": "example"
}
},
"effects": "May change state through PUT /api/admin/queue/{reportId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/admin/queue/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "queue.report.generate",
"title": "Generate queued report fix",
"description": "Trigger AI fix generation for one queued report with optional guidance.",
"method": "POST",
"path": "/api/admin/queue/{reportId}/generate",
"permission": "runs:invoke",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1
},
"agent": {
"type": "string"
},
"additional_guidance": {
"type": "string"
}
},
"required": [
"reportId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"reportId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/admin/queue/example/generate",
"body": {
"reportId": "example"
}
},
"effects": "May change state through POST /api/admin/queue/{reportId}/generate. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/admin/queue/*/generate",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "queue.report.dismiss",
"title": "Dismiss queued report",
"description": "Dismiss one queued report with an optional reason.",
"method": "POST",
"path": "/api/admin/queue/{reportId}/dismiss",
"permission": "issues:write",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"reportId": {
"type": "string",
"minLength": 1
},
"reason": {
"type": "string"
}
},
"required": [
"reportId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"reportId": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/admin/queue/example/dismiss",
"body": {
"reportId": "example"
}
},
"effects": "May change state through POST /api/admin/queue/{reportId}/dismiss. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/admin/queue/*/dismiss",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "settings.public.get",
"title": "Get public BugFix settings",
"description": "Get BugReporter enablement and auto-fix status.",
"method": "GET",
"path": "/api/settings",
"permission": "issues:read",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/settings",
"body": null
},
"effects": "Reads state through GET /api/settings without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/settings",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "auto_fix.get",
"title": "Get auto-fix state",
"description": "Get the current auto-fix kill-switch state and recent changes.",
"method": "GET",
"path": "/api/admin/auto-fix",
"permission": "bugfix:admin",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/admin/auto-fix",
"body": null
},
"effects": "Reads state through GET /api/admin/auto-fix without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/admin/auto-fix",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "auto_fix.toggle",
"title": "Toggle auto-fix",
"description": "Enable or disable the manual auto-fix switch.",
"method": "POST",
"path": "/api/admin/auto-fix/toggle",
"permission": "bugfix:admin",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"reason": {
"type": "string",
"minLength": 1
}
},
"required": [
"enabled"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"enabled": true
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/admin/auto-fix/toggle",
"body": {
"enabled": true
}
},
"effects": "May change state through POST /api/admin/auto-fix/toggle. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/admin/auto-fix/toggle",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "admin.settings.list",
"title": "List BugFix settings",
"description": "List all platform BugFix settings.",
"method": "GET",
"path": "/api/admin/settings",
"permission": "bugfix:admin",
"authorizationMode": "static",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/admin/settings",
"body": null
},
"effects": "Reads state through GET /api/admin/settings without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/admin/settings",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "admin.settings.update",
"title": "Update BugFix setting",
"description": "Update one platform BugFix setting.",
"method": "PUT",
"path": "/api/admin/settings/{key}",
"permission": "bugfix:admin",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "boolean"
},
{
"type": "number"
}
]
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"key": "example",
"value": "example"
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/admin/settings/example",
"body": {
"key": "example",
"value": "example"
}
},
"effects": "May change state through PUT /api/admin/settings/{key}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/admin/settings/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "admin.settings.bulk_update",
"title": "Bulk update BugFix settings",
"description": "Update multiple platform BugFix settings atomically from one request.",
"method": "POST",
"path": "/api/admin/settings/bulk",
"permission": "bugfix:admin",
"authorizationMode": "static",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"settings": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "boolean"
},
{
"type": "number"
}
]
}
}
},
"required": [
"settings"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"documentation": {
"example_input": {
"settings": {}
},
"cli_example": [
"topolo actions --service topolo-bugfix --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/admin/settings/bulk",
"body": {
"settings": {}
}
},
"effects": "May change state through POST /api/admin/settings/bulk. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/admin/settings/bulk",
"evidence": "Matched to a served route extracted from canonical staging source."
}
}
],
"action_coverage": {
"status": "ok",
"served_routes": 37,
"matched_actions": 25,
"declared_unserved_actions": [],
"coverage_excluded_actions": [],
"uncatalogued_routes": [],
"ignored_routes": 12,
"configured_exclusions": 9,
"configuration_findings": [],
"notes": [
"32 manually-declared route(s)"
]
},
"runtime_contract_audit": {
"status": "verified",
"actions": 25,
"contracts": 25,
"contract_module": "topolo.action-contracts.mjs",
"validator_sources": [
"apps/api/src/index.js"
],
"authorization_sources": [
"apps/api/src/index.js"
],
"findings": []
}
},
{
"source_path": "system-apps/TopoloBugFixRunner/topolo.app.json",
"service_slug": "topolo-bugfix",
"name": "topolo-bugfix-runner",
"app_id": "app_topolo_bugfix_runner",
"compatibility_date": null,
"primary_target": null,
"environments": [
"production",
"staging"
],
"targets": [
{
"name": "runner",
"kind": "none",
"directory": "apps/runner",
"main": null,
"worker_name": null,
"subdomain": null,
"healthcheck_path": null,
"variable_names": [],
"secret_names": [],
"bindings": []
}
],
"notifications": [],
"notification_contract": {
"source_path": null,
"role": "internal_non_producer",
"schema_version": null,
"owner_app_id": null,
"events": []
},
"actions": [],
"action_coverage": {
"status": "n/a",
"served_routes": 0,
"matched_actions": 0,
"declared_unserved_actions": [],
"coverage_excluded_actions": [],
"uncatalogued_routes": [],
"ignored_routes": 0,
"configured_exclusions": 0,
"configuration_findings": [],
"notes": []
},
"runtime_contract_audit": {
"status": "verified",
"actions": 0,
"contracts": 0,
"contract_module": null,
"validator_sources": [],
"authorization_sources": [],
"findings": []
}
}
],
"mobile_contracts": [],
"package_manifests": [],
"deployment_configs": [],
"source_signals": {
"api_routes": [
{
"method": "ALL",
"path": "*",
"source_path": "system-apps/TopoloBugFix/apps/api/src/index.js"
}
],
"ui_routes": [
{
"path": "/fixes/${fixId}",
"source_path": "system-apps/TopoloBugFix/apps/api/src/controllers/fixes.js"
},
{
"path": "/reports/${reportId}",
"source_path": "system-apps/TopoloBugFix/apps/api/src/controllers/fixes.js"
},
{
"path": "/reports/${report.id}",
"source_path": "system-apps/TopoloBugFix/apps/api/src/controllers/reports.js"
},
{
"path": "/reports/${job.report_id}",
"source_path": "system-apps/TopoloBugFix/apps/api/src/controllers/runner.js"
},
{
"path": "/fixes/${pr.fix_id}",
"source_path": "system-apps/TopoloBugFix/apps/api/src/controllers/webhooks.js"
},
{
"path": "/reports/${job.report_id}",
"source_path": "system-apps/TopoloBugFix/apps/api/src/services/fix-jobs.js"
}
],
"test_cases": [],
"database_tables": []
},
"documentation": {
"declared_paths": [
"applications/bugfix",
"internal/apps/bugfix",
"internal/runbooks/bugfix-kill-switch",
"internal/runbooks/bugfix-logpush"
],
"present_paths": [
"applications/bugfix",
"internal/apps/bugfix",
"internal/runbooks/bugfix-kill-switch",
"internal/runbooks/bugfix-logpush"
],
"missing_paths": [],
"human_reference": "/systems/topolo-bugfix",
"machine_reference": "/machine/systems/topolo-bugfix.json",
"action_examples": 25,
"action_schemas": 25
},
"source_findings": []
}