Skip to content

Instantly share code, notes, and snippets.

@jpr5
Created April 22, 2026 20:32
Show Gist options
  • Select an option

  • Save jpr5/d4bf25dc5a6ca378499800d83ef83895 to your computer and use it in GitHub Desktop.

Select an option

Save jpr5/d4bf25dc5a6ca378499800d83ef83895 to your computer and use it in GitHub Desktop.
aimock Bucket-C backlog — 42 items NOT in PR #121 (as of 2026-04-22)

aimock Bucket-C backlog — what's NOT in PR #121

As of: 2026-04-22, after PR #123 (migration-page quality sweep) and PR #124 (docs-wide npx bin sweep) were both merged into PR #121's branch.

Total remaining: 42 items across 6 files. All pre-existing; none are regressions from PR #121.

Refs:


docs/sidebar.js (11)

  1. var p shadow between line 102 (pathname) and line 201 (loop counter). Latent footgun if future code reads p after buildPageToc().
  2. Auto-slug collisions on duplicate heading text — no uniqueness guard.
  3. Empty-slug case for punctuation- or emoji-only headings.
  4. setActive(0) on load ignores window.location.hash — wrong TOC highlight after deep-link.
  5. IntersectionObserver topmost-heading logic uses change-set entries, not full-visible set.
  6. currentPage comparison breaks under sub-path hosting (GH Pages project pages).
  7. Duplicate sidebar hrefs: /chat-completions and /aimock-cli each appear in two sections.
  8. Heading textContent concatenated into innerHTML — XSS-unsafe if sections ever become data-driven.
  9. TOC suppressed on pages with < 4 headings AND the id-assignment loop is skipped too → cross-page anchors to short pages silently break.
  10. Mobile sidebar doesn't close after nav link click.
  11. onclick="document.querySelector('.sidebar').classList.toggle('open')" inline handler has no null guard.

README.md (7)

  1. Quick Start imports LLMock class from @copilotkit/aimock — naming asymmetry unexplained.
  2. Quick Start doesn't warn that OPENAI_BASE_URL must be set before SDK client construction.
  3. Quick Start doesn't mention OPENAI_API_KEY requirement (OpenAI SDK needs a non-empty value even when base URL is mocked).
  4. GitHub Action example hardcodes :4010 in OPENAI_BASE_URL without passing a port: input.
  5. "Multimedia APIs" bullet links only to /images despite covering 4 features.
  6. "MCP / A2A / AG-UI / Vector" bullet links only to /mcp-mock.
  7. Docker one-liner uses relative -v ./fixtures:/fixtures (works on modern Docker but not universally portable).

docs/fixtures/index.html (8)

  1. Provider Support Matrix "Response Overrides" row shows Azure=Yes; CHANGELOG 1.14.0 claims only "4 provider formats" — mild drift.
  2. Matrix "Ollama Reasoning" row shows despite CHANGELOG 1.8.0 adding Ollama think tags.
  3. toolName match-field positional scope undocumented (last assistant tool_call? any in history?).
  4. endpoint field doesn't list search/rerank/moderation values (per CHANGELOG 1.7.0).
  5. onTranscription 1-arg signature asymmetry (vs other on* helpers) not explained inline.
  6. onToolResult helper shown in example but not in Match Fields table.
  7. Shadowing warning placeholders use <value> / <N> in docs; real validator output in src/fixture-loader.ts:538 uses single-quoted value and bare index.
  8. finishReason Responses-API mapping shown only for content_filter → failed; stop/tool_calls/length omitted.

docs/record-replay/index.html (3)

  1. buildFixtureMatch pseudocode at ~line 509 omits null-guard on getLastMessageByRole(..., "user") — misleading vs real recorder behavior.
  2. Example filename openai-2025-01-15T10-30-00-000Z-0.json has stale year.
  3. Docker -v ./fixtures:/fixtures relative path (same as README item 7).

CHANGELOG.md (4)

  1. v1.14.2 flipped createServer() default from unbounded → 1000/500 at a PATCH bump; SemVer-wise should be MINOR, no BREAKING marker in the entry.
  2. v1.14.2 CLI rejects negative --journal-max=-1 (previously silently unbounded) — silently breaking CLI change not called out.
  3. v1.14.1 entry leaks internal "production Railway deployments" infra detail to the public CHANGELOG.
  4. Section headings mix Keep-a-Changelog (### Added/Changed/Fixed) and Changesets (### Minor Changes/Patch Changes) conventions across versions.

package.json (9)

  1. repository.url missing git+ prefix and .git suffix (publint warnings).
  2. engines.node: ">=20.15.0" allows Node 20; OIDC publishing needs Node 24 — mismatch.
  3. @google/generative-ai@^0.24.0 deprecated by Google in favor of @google/genai.
  4. typesVersions lacks .d.cts entries — breaks moduleResolution: node16/nodenext for CJS subpath imports.
  5. No peerDependencies declared for ./vitest + ./jest subpath exports.
  6. files[] array doesn't include CHANGELOG.md — consumers see no changelog in node_modules.
  7. prepare: "husky || true" silently swallows install errors; contributors can miss that hooks didn't install.
  8. release script has no pre-check for version/CHANGELOG/tag alignment before npm publish.
  9. No preinstall: "only-allow pnpm" guard — someone running npm install silently produces wrong lockfile.

What WAS fixed (for reference)

Shipped in PR #121 / #123 / #124 (all folded into the same branch):

  • Provider count "11" → proper enumeration of 11 (OpenAI Chat/Responses/Realtime, Claude, Gemini/Live, Azure, Bedrock, Vertex AI, Ollama, Cohere); Vertex AI column added to Provider Support Matrix
  • Docker examples: ENTRYPOINT mismatch (npx @copilotkit/aimock prefix stripped), host-bind -h 0.0.0.0 everywhere, --config Docker examples replaced with npx/local alternatives
  • npx @copilotkit/aimock -f ... bin resolution: 22+ flag-driven invocations rewritten to npx -p @copilotkit/aimock llmock ... across migration + integration + feature pages
  • Auth header forwarding docs rewritten to describe current strip-list behavior
  • Matching semantics: toolCallId wording corrected, userMessage transform-flip clarified, shadowing wording reconciled between fixtures and multi-turn
  • class="cmt" CSS bug (21 occurrences across 6 pages) → class="cm"
  • Claude model-id migration completed in remaining test fixtures
  • Migration-page quality sweep: Kotlin/Python fail-fast health checks, Go SDK (go-openai), Rust SDK (async-openai), Python on_message signature, invalid JSON, MSW v2 WebSocket claim, Weaviate removal, helm probes, env-var cleanup, proc.wait timeout, subprocess.Popen deadlock, enableRecording cleanup, GH Actions --rm/if: always(), /health standardization

Refuted (dropped from tracking)

  • sidebar.js slug regex collapse — regex actually works
  • history.pushState file:// — modern browsers allow
  • Tool Call response type missing reasoning? — intentionally absent per src/types.ts
  • predicate row "programmatic only" — already present
  • --strict table/body disagree — actually agree per src/server.ts:463
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment