Repository navigation
Decouple from CopilotKit hosted services; self-hosted runtime, Postgres conversations, Slack and learning - #103
Conversation
…elf-hosting Replace every mandatory CopilotKit hosted dependency with infrastructure the operator controls, while keeping the MIT, local-only packages that implement the open AG-UI protocol. Runtime and conversations - Add a PostgreSQL conversation store (conversations, thread_runs, thread_state, skills) with versioned, advisory-locked migrations. - Add PostgresAgentRunner implementing LocalThreadEndpointRunner, mirroring the upstream in-memory runner's semantics (concurrent-run guard, replay subjects, RUN_STARTED input sanitising, finalize/compact persistence) on durable storage. The runtime now runs in SSE mode, so the REST thread endpoints the client already calls are served locally. - Rewrite the headless/server-side turn path from the hosted IntelligenceAgent to an AG-UI HttpAgent against our own endpoint. Removed - CopilotKitIntelligence, IntelligenceAgentRunner, @copilotkit/channels and the telemetry.copilotkit.ai sink. No INTELLIGENCE_*/CPK_* variable is read. - Server process hard-disables the SDK's opt-out telemetry path. Reimplemented locally - Slack: self-hosted Events API webhook with constant-time HMAC verification and a five-minute replay window, per-event idempotency, thread mapping and Web API replies, replacing the managed channel service. - Automatic Learning: per-Dot skills in PostgreSQL with local delivery and the original copilotkit_load_skill / copilotkit_read_skill_file tool names. Providers and operations - Support OPENAI_EXTRA_HEADERS for gateways that require routing headers (validated to prevent header injection). Verified end to end against OpenCode Go / DeepSeek V4.1 Flash. - Add public /api/health and /api/ready probes that sit before owner auth and report only the names of missing setup items. - Document the voice limitation: Realtime is still pinned to OpenAI. Deployment and docs - Postgres service, healthchecks, hardened compose, Caddy/nginx examples, backup/restore scripts, entrypoint, systemd unit and a Slack app manifest. - Canonical documentation set under docs/fork (architecture, data model, API contracts, security, test plan, deployment, backlog, DoD, ADRs, parity). Tests: 388 passing (60 files) with PostgreSQL; the Postgres suites self-skip when OPENDOTS_TEST_DATABASE_URL is unset. typecheck, lint, format and build are clean.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 80 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 2 PR taxonomy bucket(s): Install Manifest Integrity, CI/CD Recommendation. Scanned 80 changed file(s). Roadmap taxonomy buckets: Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 80 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 80 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 80 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 2 PR taxonomy bucket(s): Install Manifest Integrity, CI/CD Recommendation. Scanned 80 changed file(s). Roadmap taxonomy buckets: Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 80 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 80 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 80 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 2 PR taxonomy bucket(s): Install Manifest Integrity, CI/CD Recommendation. Scanned 80 changed file(s). Roadmap taxonomy buckets: Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 80 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 80 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
The restore helper could not replace the SQLite file: the app service drops all capabilities, so root could not unlink a file owned by node, and after chown it could not chmod it either. Found by running the backup/restore round-trip against a live stack.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 80 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 2 PR taxonomy bucket(s): Install Manifest Integrity, CI/CD Recommendation. Scanned 80 changed file(s). Roadmap taxonomy buckets: Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 80 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 80 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
- Bump zod 4.6.5 -> 4.6.7 (GHSA-mrhx-c7xc-m3w5, memory exhaustion while validating oversized collections). This was the root of most transitive high findings. - Override dompurify to ^3.4.17 (GHSA-cg2g-xh64-v4q7 critical sanitiser bypass plus two related advisories); it sanitises rendered markdown. - Bump @modelcontextprotocol/sdk 1.31.0 -> 1.32.2. Deliberately NOT taken: npm audit fix also upgraded @copilotkit/* 1.75.0 -> 1.84.1, which changes AG-UI message types and breaks typecheck in Chat.tsx. The runtime integration is validated against 1.75.0, so that upgrade is left to a separate, tested change. Production audit: 1 critical -> 0, total 40 -> 38. typecheck, lint, build and 388 tests remain green.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 80 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 2 PR taxonomy bucket(s): Install Manifest Integrity, CI/CD Recommendation. Scanned 80 changed file(s). Roadmap taxonomy buckets: Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 80 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 80 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
Record WORK-010: findings F1-F8 with severity and status, verified controls, residual risks and the gate decision. Backup/restore round-trip destroyed and recovered a real conversation; it found two restore.sh defects, both fixed. Dependency remediation: production audit 1 critical -> 0.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 81 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 107 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
Brand rename across 103 files: product name, package name, Docker services and volumes, container paths, browser storage keys, CSS identifiers, log prefixes, telemetry metadata and documentation. Deliberately preserved, because they are attribution rather than brand: - LICENSE is byte-identical (MIT, Copyright (c) Atai Barkai) and now carries an explicit credit line in the README; - upstream slugs (CopilotKit/OpenDots) still resolve, so the issue and PR migration links keep working; - OpenBot references and its pinned commit are a separate project and untouched. Identity: - public/nexbot-mark.svg and nexbot-logo.svg: a geometric N with an accent node on a violet-to-blue gradient, legible down to 16px. - favicon replaced; the header wordmark now shows the mark. - public/nexbot.ico (PNG-in-ICO, built from the same vector) is embedded into the Windows launcher, which now builds with the brand icon. Also fixed: the RECENT CHATS list was clipped exactly like the Spaces list earlier — same overflow:auto resets the flex minimum size — and one checkpoint line had been renamed into a path that does not exist on this machine. 64 files / 408 tests pass; typecheck, lint, format and build clean.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 147 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 4 PR taxonomy bucket(s): Security Evidence, Install Manifest Integrity, CI/CD Recommendation, Cost/Token Risk. Scanned 147 changed file(s). Roadmap taxonomy buckets: Security EvidenceSecurity-sensitive changes should carry explicit scanner, code-scanning, or focused regression evidence. Signals:
Paths:
Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Cost/Token RiskAI routing, usage, and token-budget changes should include budget or usage-limit evidence. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 147 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 147 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Config AuditCommit: No changed-config issues detected (success) Scanned 1 config file(s) present at this commit across 1 changed config path(s) and found no issues in the supported security rules. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Harness AuditCommit: No harness issues detected (success) Scanned 1 changed config file(s) and found no harness issues. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
The GitHub repository is now KayzenRoot/nexbot, so the fork slug in the documentation was updated. The upstream slug (CopilotKit/OpenDots) is left untouched on purpose: those links are attribution and must keep resolving. Data migration performed alongside the rename, verified: 10 conversations and 9 runs carried over in PostgreSQL, the model provider key is still decryptable (its master key file moved with the app volume), 8 Dots and 1 Space survived in SQLite, Slack reports online, and a live agent turn completed.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 147 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 4 PR taxonomy bucket(s): Security Evidence, Install Manifest Integrity, CI/CD Recommendation, Cost/Token Risk. Scanned 147 changed file(s). Roadmap taxonomy buckets: Security EvidenceSecurity-sensitive changes should carry explicit scanner, code-scanning, or focused regression evidence. Signals:
Paths:
Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Cost/Token RiskAI routing, usage, and token-budget changes should include budget or usage-limit evidence. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 147 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 147 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Config AuditCommit: No changed-config issues detected (success) Scanned 1 config file(s) present at this commit across 1 changed config path(s) and found no issues in the supported security rules. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Harness AuditCommit: No harness issues detected (success) Scanned 1 changed config file(s) and found no harness issues. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
The Slack webhook is the one write path reachable without an owner token, so an anonymous flood could spend the operator's model budget. Adds an in-process fixed-window limiter and applies it twice: - 120 requests/minute per client on /api/slack/*, which Slack's own retries and a busy workspace stay well inside; - 40 FAILED token attempts/minute, charged only on failure so a working session is never throttled. A blocked client is refused before the comparison, which ends a guessing loop early. Both answers carry Retry-After, never zero, so a client is not invited to retry immediately. The limiter is dependency-free and deliberately single-node; a multi-replica deployment would need a shared store, and the doc says so instead of hiding it behind the class name. Verified: 65 files / 421 tests pass. Route-level tests cover the guessing loop, that successful requests are not charged, and that the webhook is capped.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 150 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 4 PR taxonomy bucket(s): Security Evidence, Install Manifest Integrity, CI/CD Recommendation, Cost/Token Risk. Scanned 150 changed file(s). Roadmap taxonomy buckets: Security EvidenceSecurity-sensitive changes should carry explicit scanner, code-scanning, or focused regression evidence. Signals:
Paths:
Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Cost/Token RiskAI routing, usage, and token-budget changes should include budget or usage-limit evidence. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 150 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 150 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Config AuditCommit: No changed-config issues detected (success) Scanned 1 config file(s) present at this commit across 1 changed config path(s) and found no issues in the supported security rules. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Harness AuditCommit: No harness issues detected (success) Scanned 1 changed config file(s) and found no harness issues. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
…ining work - docs/fork/CUSTOMER-GUIDE.md: the path from download to a working agent, for the person installing it rather than a developer. Covers the provider choice, the access token, Slack (including why SLACK_USER_IDS is the budget guard), backups, the watchdog, and what to send support. It also says plainly never to send .env.local. - VOICE_BASE_URL: the realtime endpoint is no longer pinned to api.openai.com, so a client that cannot use OpenAI can point voice at another gateway. The default keeps existing installs unchanged. - PRODUCTION-READINESS and SECURITY-AUDIT now mark rate limiting and the voice pin as done rather than open, and state the shared-store caveat that a multi-replica deployment would need. 65 files / 421 tests pass; typecheck, lint, format and build clean.
ECC Tools / Security EvidenceCommit: Security evidence gate passed (success) No security-sensitive scanner-evidence gap detected. Mode: enforce Scanned 151 changed file(s). No missing scanner-evidence signal was detected. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Risk TaxonomyCommit: PR taxonomy review recommended (neutral) Detected 4 PR taxonomy bucket(s): Security Evidence, Install Manifest Integrity, CI/CD Recommendation, Cost/Token Risk. Scanned 151 changed file(s). Roadmap taxonomy buckets: Security EvidenceSecurity-sensitive changes should carry explicit scanner, code-scanning, or focused regression evidence. Signals:
Paths:
Install Manifest IntegrityInstall manifests, plugin metadata, and shipped skills should stay synchronized with user-facing setup guidance. Signals:
Paths:
CI/CD RecommendationCI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work. Signals:
Paths:
Cost/Token RiskAI routing, usage, and token-budget changes should include budget or usage-limit evidence. Signals:
Paths:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Reference Set ReadinessCommit: Reference set readiness gaps detected (neutral) Reference evidence present for 1/7 areas (14%) across 151 changed file(s). This check is based on files changed in this PR. Repository-level readiness is still reported by
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / Hosted Promotion ReadinessCommit: Hosted promotion readiness passed (success) No hosted promotion evidence gaps detected across 151 changed file(s); 0 corpus scenarios had matching evidence. This check compares PR file changes against the evaluator/RAG promotion corpus in No evaluator corpus scenarios matched this PR. Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Config AuditCommit: No changed-config issues detected (success) Scanned 1 config file(s) present at this commit across 1 changed config path(s) and found no issues in the supported security rules. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
ECC Tools / PR Harness AuditCommit: No harness issues detected (success) Scanned 1 changed config file(s) and found no harness issues. Changed config files:
Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission. |
Removes every mandatory CopilotKit hosted dependency and replaces it with operator-controlled infrastructure.
Replaced: CopilotKitIntelligence -> PostgreSQL ConversationStore; IntelligenceAgentRunner -> PostgresAgentRunner (SSE runtime mode); IntelligenceAgent -> AG-UI HttpAgent; @copilotkit/channels -> self-hosted Slack Events API + Web API; hosted learning containers -> per-Dot skills in Postgres; telemetry.copilotkit.ai sink -> removed.
Verified: typecheck/lint/format/build clean; 388 tests passing across 60 files with PostgreSQL; a live agent turn against OpenCode Go deepseek-v4.1-flash on the host AND inside Docker; conversations persist across server and container restarts; no browser request to any copilotkit.ai host.
Known limitations: Slack is not verified against a live workspace; voice Realtime is still pinned to api.openai.com; there is no skill-management UI yet.
See docs/fork/ for architecture, data model, ADRs, deployment and the parity matrix.