Skip to content

feat(knb): auto-compile (Issue #43) - #50

Merged
mitselek merged 1 commit into
mainfrom
feat/knb-auto-compile-issue-43
Jan 14, 2026
Merged

feat(knb): auto-compile (Issue #43)#50
mitselek merged 1 commit into
mainfrom
feat/knb-auto-compile-issue-43

Conversation

@mitselek

@mitselek mitselek commented Jan 14, 2026

Copy link
Copy Markdown
Owner

Export compiler function compileKnowledgeBase and auto-compile runner; tests pass locally (45 tests). See Issue #43.


Note

Introduces EdgeDB-backed compilation and validates auto-compile flow end-to-end.

  • Extends compileKnowledgeBase to accept source (filesystem | edgedb) and implement EdgeDB compilation: queries Experience, emits YAML + article content, and writes _compiled_context.md.
  • Adds vitest integration test integration-auto-compile.test.ts that creates an Experience, triggers the auto-compile runner, and asserts compiled output.
  • Preserves existing filesystem-based compilation as the default behavior.

Written by Cursor Bugbot for commit 41e3fe6. This will update automatically on new commits. Configure here.

…ebounced auto-compile runner, wire server write handlers to schedule auto-compiles, add unit & integration tests, and fix dynamic import in integration test.
@codecov

codecov Bot commented Jan 14, 2026

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered ☂️

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Comment thread scripts/build_context.ts
tags: { name, category } ORDER BY .name
}
ORDER BY .dates.` + "`start` DESC"
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EdgeDB query missing fields used in output generation

Medium Severity

The EdgeDB query does not select verification_status or last_verified fields, but the code at lines 105-106 attempts to use e.verification_status and e.last_verified. Since these fields are not in the query result, they will always be undefined, causing the nullish coalescing to always use fallback values ('verified' and today's date). The actual database values for these fields are silently discarded.

Additional Locations (1)

Fix in Cursor Fix in Web

@mitselek

Copy link
Copy Markdown
Owner Author

Proposed checklist and smoke test (follow-ups recommended):\n\n- [ ] Run the integration suite locally with EdgeDB: then

cv_system_compiler@1.0.0 test
vitest

DEV v1.6.1 /home/michelek/Documents/github/cv_system

stdout | tests/build_context.test.ts > compileKnowledgeBase generates expected markdown structure for experiences
Knowledge base compiled to /tmp/kb-test-ZsEB7X/_compiled_context.md

✓ tests/build_context.test.ts (1 test) 9ms
stdout | mcp-servers/knowledge-base/src/services/tests/skill.test.ts > Skill CRUD
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/experience.test.ts > Experience CRUD
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/integration-auto-compile.test.ts > adding experience in EdgeDB triggers compile via auto-runner (integration)
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/tag.test.ts > Tag/Classifier CRUD
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/achievement.test.ts > Achievement CRUD
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/experience.test.ts > Experience Search
EdgeDB connected: [ 1 ]

✓ mcp-servers/knowledge-base/src/services/tests/experience.test.ts (10 tests) 387ms
stdout | mcp-servers/knowledge-base/src/services/tests/integration-auto-compile.test.ts > adding experience in EdgeDB triggers compile via auto-runner (integration)
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/integration-auto-compile.test.ts > adding experience in EdgeDB triggers compile via auto-runner (integration)
Knowledge base compiled (EdgeDB) to /tmp/knb-int-tq52NA/_compiled_context.md

✓ mcp-servers/knowledge-base/src/services/tests/compileHook.test.ts (1 test) 505ms
stdout | mcp-servers/knowledge-base/src/services/tests/skill.test.ts > Skill Search
EdgeDB connected: [ 1 ]
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/tag.test.ts > Tag Usage Statistics
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/tag.test.ts > Fuzzy Tag Matching
EdgeDB connected: [ 1 ]

✓ mcp-servers/knowledge-base/src/services/tests/integration-auto-compile.test.ts (1 test) 739ms
✓ mcp-servers/knowledge-base/src/services/tests/tag.test.ts (13 tests) 740ms
✓ mcp-servers/knowledge-base/src/services/tests/skill.test.ts (10 tests) 949ms
stdout | mcp-servers/knowledge-base/src/services/tests/achievement.test.ts > Achievement Search
EdgeDB connected: [ 1 ]

stdout | mcp-servers/knowledge-base/src/services/tests/achievement.test.ts > Achievement Search
EdgeDB connected: [ 1 ]

✓ mcp-servers/knowledge-base/src/services/tests/achievement.test.ts (9 tests) 1136ms

Test Files 7 passed (7)
Tests 45 passed (45)
Start at 16:31:47
Duration 10.17s (transform 400ms, setup 2ms, collect 906ms, tests 4.46s, environment 2ms, prepare 802ms)

PASS Waiting for file changes...
press h to show help, press q to quit
Cancelling test run. Press CTRL+c again to exit forcefully. (or use VS Code task 'Test MCP Knowledge Base').\n- [ ] Add a CI job that starts EdgeDB and runs the integration suite (isolated job).\n- [ ] Add an e2e test that invokes MCP server write handlers through the transport to validate full end-to-end wiring.\n\nManual smoke test (quick):\n1. Start EdgeDB: \n2. Run tests:

cv-system-knb-mcp@0.1.0 test
vitest --run

RUN v1.6.1 /home/michelek/Documents/github/cv_system/mcp-servers/knowledge-base

stdout | src/services/tests/skill.test.ts > Skill CRUD
EdgeDB connected: [ 1 ]

stdout | src/services/tests/skill.test.ts > Skill Search
EdgeDB connected: [ 1 ]
EdgeDB connected: [ 1 ]

✓ src/services/tests/skill.test.ts (10 tests) 400ms
stdout | src/services/tests/experience.test.ts > Experience CRUD
EdgeDB connected: [ 1 ]

stdout | src/services/tests/experience.test.ts > Experience Search
EdgeDB connected: [ 1 ]

✓ src/services/tests/experience.test.ts (10 tests) 279ms
stdout | src/services/tests/tag.test.ts > Tag/Classifier CRUD
EdgeDB connected: [ 1 ]

stdout | src/services/tests/tag.test.ts > Tag Usage Statistics
EdgeDB connected: [ 1 ]

stdout | src/services/tests/tag.test.ts > Fuzzy Tag Matching
EdgeDB connected: [ 1 ]

✓ src/services/tests/tag.test.ts (13 tests) 333ms
stdout | src/services/tests/achievement.test.ts > Achievement CRUD
EdgeDB connected: [ 1 ]

stdout | src/services/tests/achievement.test.ts > Achievement Search
EdgeDB connected: [ 1 ]
EdgeDB connected: [ 1 ]

✓ src/services/tests/achievement.test.ts (9 tests) 233ms
stdout | src/services/tests/integration-auto-compile.test.ts > adding experience in EdgeDB triggers compile via auto-runner (integration)
EdgeDB connected: [ 1 ]

stdout | src/services/tests/integration-auto-compile.test.ts > adding experience in EdgeDB triggers compile via auto-runner (integration)
EdgeDB connected: [ 1 ]

stdout | src/services/tests/integration-auto-compile.test.ts > adding experience in EdgeDB triggers compile via auto-runner (integration)
Knowledge base compiled (EdgeDB) to /tmp/knb-int-E16wbm/_compiled_context.md

✓ src/services/tests/integration-auto-compile.test.ts (1 test) 661ms
✓ src/services/tests/compileHook.test.ts (1 test) 502ms

Test Files 6 passed (6)
Tests 44 passed (44)
Start at 17:07:49
Duration 3.01s (transform 241ms, setup 0ms, collect 310ms, tests 2.41s, environment 0ms, prepare 114ms)\n\nRationale: the unit + integration tests provide strong coverage; the above items reduce risk of regressions in CI and production while avoiding brittle, slow e2e tests in normal PR runs.

@mitselek
mitselek merged commit 3a0a26f into main Jan 14, 2026
3 checks passed
@mitselek
mitselek deleted the feat/knb-auto-compile-issue-43 branch January 14, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant