Repository navigation
Conversation
|
AP-ISS-0171 Gen14 review infrastructure blocker (2026-10-20, evidence-bound)
NEXT: project reviewer/infrastructure owner should restore pinned OCR executable (or provide an independent supported KitAuditor review bound to the exact final SHA). Preserve all KitDev23 WIP and the existing claim/task_run. No audit verdict is being forged. |
|
PR #149 CI baseline attribution (2026-10-20): nonwaived red Current refreshed PR CI run 39422694899: Other checked lanes on current PR: PR Test Policy, Lint, Quality Gates Extended, dependency review, Docs Sync, Vitest, i18n and one integration lane succeeded. Build / canonical package / remaining shards still pending. Do not merge/close until terminal exact-head artifact proof and independent KitAuditor verdict. |
CI Coverage Report
Coverage artifact was not available for this run. |
|
AP-ISS-0171 Unit Tests (2/8) real regression FIXED — HEAD UPDATED, rerun required (2026-10-20).
|
|
🔍 OpenCodeReview found 5 issue(s) in this PR.
|
| "memoryEnabledDesc": "Kada je omogućeno, OmniRoute će ubaciti relevantni prošli kontekst.", | ||
| "memoryTokenCostWarning": "Napomena: s omogućenom memorijom, OmniRoute ubacuje do {tokens} tokena dohvaćenog konteksta u svaki zahtjev za razgovor — to povećava potrošnju tokena i troškove. Da biste preskočili ubacivanje za određeni zahtjev, pošaljite zaglavlje \"x-omniroute-no-memory: true\".", | ||
| "memoryEnabledDesc": "Kada je omogućeno, AgentProxy će ubaciti relevantni prošli kontekst.", | ||
| "memoryTokenCostWarning": "Napomena: s omogućenom memorijom, AgentProxy ubacuje do {tokens} tokena dohvaćenog konteksta u svaki zahtjev za razgovor — to povećava potrošnju tokena i troškove. Da biste preskočili ubacivanje za određeni zahtjev, pošaljite zaglavlje \"x-agentproxy-no-memory: true\".", |
There was a problem hiding this comment.
These localized executable identifiers were renamed, but runtime evidence still needs validation: the documented MCP tool names are generated from legacy omniroute_* contracts, and the memory bypass header may still be x-omniroute-no-memory. Users following these Croatian instructions may call nonexistent tools or fail to disable memory. Keep the runtime identifiers unless the corresponding contracts are migrated too.
Suggestion:
| "memoryTokenCostWarning": "Napomena: s omogućenom memorijom, AgentProxy ubacuje do {tokens} tokena dohvaćenog konteksta u svaki zahtjev za razgovor — to povećava potrošnju tokena i troškove. Da biste preskočili ubacivanje za određeni zahtjev, pošaljite zaglavlje \"x-agentproxy-no-memory: true\".", | |
| "mcpQuickStartStep3": "Pozovite alate poput `omniroute_get_health` i `omniroute_list_combos`." |
There was a problem hiding this comment.
Verified the concrete reviewed Croatian claim: x-agentproxy-no-memory is an implemented runtime header in open-sse/handlers/chatCore/headers.ts and routed in open-sse/handlers/chatCore.ts; tests/unit/no-memory-header.test.ts covers the contract. The reviewed i18n line is not an MCP tool declaration. Any separate MCP tool-name mismatch needs an exact current runtime tool name and matching translation key; please identify such a path to verify it independently. The previous branded literal is prohibited by AP-ISS-0171.
…collections Mirror the seven verified tracked-file blobs from KitDev23's durable local commit 59b34eed881915c85d893b277cceb3827e7b8a2f. Preserve all other published-branch content and existing parent history. Add regression tests for unique env keys, canonical cache lookup and Japanese brand strings.
Mirror the two exact verified blobs from KitDev23 durable local commit 891b3c38cb2bbf2fcfe0303de8b9db2cab193d11. Preserve all other PR files and history. TDD regression guards against advertising a nonexistent legacy alias.
| // world-traversable data dir. Repair them on every run that touches encrypted storage | ||
| // (best-effort; group bits are kept). Informational commands never reach this block. | ||
| tightenDataDirSecrets(process.env.DATA_DIR || join(homedir(), ".omniroute")); | ||
| tightenDataDirSecrets(process.env.DATA_DIR || join(homedir(), ".agentproxy")); |
There was a problem hiding this comment.
getDefaultDataDir() accounts for AppImage/Flatpak installs by using $XDG_DATA_HOME/AgentProxy; this fallback instead points the permissions repair at ~/.agentproxy, leaving the actual data directory unprotected when DATA_DIR is unset. Use getDefaultDataDir() here.
Suggestion:
| tightenDataDirSecrets(process.env.DATA_DIR || join(homedir(), ".agentproxy")); | |
| tightenDataDirSecrets(process.env.DATA_DIR || getDefaultDataDir()); |
| }, | ||
| "doctor": { | ||
| "title": "OmniRoute Diagnostika", | ||
| "title": "AgentProxy Diagnostika", | ||
| "dbOk": "Datubāze: kārtībā ({path})", | ||
| "dbMissing": "Datubāze nav inicializēta — palaidiet `omnīroute setup`", |
There was a problem hiding this comment.
This untranslated legacy command is misspelled (omnīroute) and no longer exists; users following database recovery guidance cannot initialize the database. Replace it with agentproxy setup.
Suggestion:
| "dbMissing": "Datubāze nav inicializēta — palaidiet `omnīroute setup`", | |
| "dbMissing": "Datubāze nav inicializēta — palaidiet `agentproxy setup`", |
| @@ -82,10 +82,10 @@ async function extractEndpointFromConfig( | |||
| return match ? match[1] : null; | |||
| } | |||
| case "omp": { | |||
| const omnirouteBlock = content.match(/omniroute:\s*\n(?:[^\n]+\n)*?\s*baseUrl:\s*["']?([^"'\r\n]+)["']?/i); | |||
| if (omnirouteBlock) return omnirouteBlock[1].trim(); | |||
| const agentproxyBlock = content.match(/agentproxy:\s*\n(?:[^\n]+\n)*?\s*baseUrl:\s*["']?([^"'\r\n]+)["']?/i); | |||
There was a problem hiding this comment.
OMP configs using the legacy omniroute: provider key are no longer recognized here. They fall through to the generic baseUrl search, which can report another provider’s endpoint as AgentProxy’s. Match both agentproxy and omniroute (or normalize the legacy key) to preserve existing configurations.
Suggestion:
| const agentproxyBlock = content.match(/agentproxy:\s*\n(?:[^\n]+\n)*?\s*baseUrl:\s*["']?([^"'\r\n]+)["']?/i); | |
| const agentproxyBlock = content.match(/(?:agentproxy|omniroute):\s*\n(?:[^\n]+\n)*?\s*baseUrl:\s*["']?([^"'\r\n]+)["']?/i); |
| "memoryEnabledDesc": "Mgbe akwadoro ya, OmniRoute ga-etinye ọnọdụ gara aga dị mkpa.", | ||
| "memoryTokenCostWarning": "Mara nke a: mgbe akwadoro ncheta, OmniRoute na-etinye ihe ruru token {tokens} nke ọnọdụ ewepụtara n'ime arịrịọ nkata ọ bụla — nke a na-abawanye ojiji token na ọnụ ahịa. Iji wụfee ntinye a maka otu arịrịọ kpọmkwem, zipụ nkụnyeisi \"x-omniroute-no-memory: true\".", | ||
| "memoryEnabledDesc": "Mgbe akwadoro ya, AgentProxy ga-etinye ọnọdụ gara aga dị mkpa.", | ||
| "memoryTokenCostWarning": "Mara nke a: mgbe akwadoro ncheta, AgentProxy na-etinye ihe ruru token {tokens} nke ọnọdụ ewepụtara n'ime arịrịọ nkata ọ bụla — nke a na-abawanye ojiji token na ọnụ ahịa. Iji wụfee ntinye a maka otu arịrịọ kpọmkwem, zipụ nkụnyeisi \"x-agentproxy-no-memory: true\".", |
There was a problem hiding this comment.
This replaces the documented opt-out header, but the runtime still accepts only x-agentproxy-no-memory (and existing clients may use the prior x-omniroute-no-memory). Sending this localized instruction will no longer skip memory injection. Keep the actual supported header, or update runtime compatibility before changing it.
Suggestion:
| "memoryTokenCostWarning": "Mara nke a: mgbe akwadoro ncheta, AgentProxy na-etinye ihe ruru token {tokens} nke ọnọdụ ewepụtara n'ime arịrịọ nkata ọ bụla — nke a na-abawanye ojiji token na ọnụ ahịa. Iji wụfee ntinye a maka otu arịrịọ kpọmkwem, zipụ nkụnyeisi \"x-agentproxy-no-memory: true\".", | |
| "memoryTokenCostWarning": "Mara nke a: mgbe akwadoro ncheta, AgentProxy na-etinye ihe ruru token {tokens} nke ọnọdụ ewepụtara n'ime arịrịọ nkata ọ bụla — nke a na-abawanye ojiji token na ọnụ ahịa. Iji wụfee ntinye a maka otu arịrịọ kpọmkwem, zipụ nkụnyeisi \"x-agentproxy-no-memory: true\".", |
| @@ -7589,7 +7589,7 @@ | |||
| "qdrantEmbeddingModel": "Model de încorporare", | |||
| "qdrantHelpTitle": "Ajutor pentru configurarea rapidă", | |||
| "qdrantHelpQuickTitle": "Configurare rapidă (Qdrant + OpenRouter)", | |||
| "qdrantHelpStep1": "1. Gazdă: IP/URL Qdrant, Port: 6333, Colecție: omniroute_memory.", | |||
| "qdrantHelpStep1": "1. Gazdă: IP/URL Qdrant, Port: 6333, Colecție: agentproxy_memory pentru instalări noi; pentru instalări existente păstrați numele colecției curente (QDRANT_COLLECTION).", | |||
There was a problem hiding this comment.
Existing Qdrant installs that relied on the old default collection have no QDRANT_COLLECTION override. The runtime now defaults to agentproxy_memory, so they silently read/write a new empty collection and leave existing vectors inaccessible. Mention QDRANT_COLLECTION=omniroute_memory for existing installs, or provide an explicit migration.
Suggestion:
| "qdrantHelpStep1": "1. Gazdă: IP/URL Qdrant, Port: 6333, Colecție: agentproxy_memory pentru instalări noi; pentru instalări existente păstrați numele colecției curente (QDRANT_COLLECTION).", | |
| "qdrantHelpStep1": "1. Gazdă: IP/URL Qdrant, Port: 6333, Colecție: agentproxy_memory pentru instalări noi; pentru instalările existente fără QDRANT_COLLECTION, setați QDRANT_COLLECTION=omniroute_memory.", |
GoalKeeper exact-head CI root-cause triage — 2026-10-21 ICT (read-only, NO SOURCE MUTATION)PR #149 published HEAD
No close/merge: terminal exact-head build+single artifact identity/BUILD_SHA scan, all blocking CI, current OCR threads, and independent KitAuditor signoff remain required. Distinct control-plane circular phase issue is already recorded in KitControl #125; that governance defect must be fixed without changing AP-ISS-0171's pre-release product identity acceptance. KitDev23 retains its original claim/task-run/worktree and any unique WIP. This comment changes no source/authority. |
Scope
AP-ISS-0171: remove forbidden former-base identity from active AgentProxy runtime, source, config, tests, docs and package contracts while maintaining neutral structural migration support. Includes tracked machine-readable identity classification manifest.
Evidence — executed source gates (2026-10-20, KitDev23 Gen14)
node scripts/check/check-agentproxy-identity.mjs: PASS, zero active former-base identity.git diff --check: PASS.tsx --test tests/unit/build/check-agentproxy-identity-0113.test.ts tests/unit/selective-migration-normalize-0127.test.ts tests/unit/12627-catalog-inflight-timeout.test.ts: 16/16 PASS.tsx --test tests/integration/selective-migration-0127.test.ts: 3/3 PASS.git merge-treeof local task reconciliation HEAD253547fa3f21603f4003d12ee9b6283a03e6dbb1with currentmaincf9a1a04e1d57c32d9b0d74d4a8b68ecfc6f921a: clean, no conflicts; merged tree2fc8c78a03fe6351aa8de5dddedcbd701ec91515, zero forbidden identity matches.Executed output (focused/local only; not terminal package proof)
NOT YET COMPLETE — DO NOT MERGE
646fe11ec9abada4cb4ea8b3f31a54317cabe65e; local owned HEAD is576b0e46f7a6776f523a8762205bf999f640da9f. Both carry identical two fixed-test blob SHAs. GitHub PR merge662b7b9a5a6857571bb1833ca605df87d68146d3and independent local preview have identical tree SHA862026f1a9400a15cd9355fbe9ebc997d3b58f30. Do not mistake one head's artifact for another head's proof.stage-npm-package.mjs, exactly one npm pack, binary-safe name/content scan of generated, staged and tarball outputs, and tar SHA-256/contents/embedded BUILD_SHA.225b315...is not terminal proof for a later merge SHA.Data-is-Gold: preserve KitDev23 owned worktree, handoff, claim and task_run; no broad reset/rebase; review any overlap with concurrently owned
runtimeSettings.tsbefore source mutation.