Merge PRs #2 and #3 into main#4
Merged
Merged
Conversation
Sources without a `repo` field are treated as local: files are read directly from the configured path, repo_url is stored as NULL, and the orchestrator always reindexes them on startup since there is no remote HEAD to compare against. - Make SourceConfig.repo optional with branch-requires-repo refinement - Add local source path handling in SourceIndexer (computeLocalSha, local walk root, nullable repo_url) - Add full-reindex-local job type in orchestrator with startup reindex - Validate local source paths exist at config load time - Make repo_url column nullable in DB schema and stats query
Default GITHUB_WEBHOOK_SECRET to empty string so the server starts without it (webhooks simply reject with 403). Guard on missing/ whitespace-only secret, return generic "Forbidden" instead of leaking configuration state.
When DATABASE_URL starts with pglite://, use an in-process PGlite instance instead of connecting to an external PostgreSQL server. The PGlite wrapper duck-types as pg.Pool, supporting the query/ connect/end surface used by queries.ts.
Adds a fixture with correct and intentionally broken API docs for testing search quality and LLM grounding. Includes npm scripts for running the fixture server, fixture MCP instances, and launching Claude Code against a local instance.
Adds a collect tool to both Breeze fixture configs so agents can report whether search results were accurate. Updates the search tool description to prompt agents to submit feedback after using results.
- Use tool object (not toolType var) in exhaustive switch default - Remove unused intermediate type variable in server dispatch - Remove redundant blank line in collect tool - Remove backwards-compat config defaulting tests (covered by schema) - Improve MCP request logging with type-aware formatting - Simplify claude npm script variable naming - Fix README search tools header casing
…tests
- index.ts: fix shutdown catch to suppress both PGlite ("not initialized")
and pg ("DATABASE_URL") expected errors instead of only the latter
- source-indexer.ts: throw instead of returning silently when local source
path doesn't exist, so orchestrator records status: 'error'
- source-indexer.ts: clarify computeLocalSha JSDoc (uses mtimes, not content)
- orchestrator.ts: fix isStale JSDoc to say "configured threshold" not "24h"
- tool-config.test.ts: restore backwards-compat defaulting tests
Support local filesystem sources, PGlite, and dev fixtures
Add collect tools and Breeze API fixture for feedback testing
Merged
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PRs #2 and #3 were stacked on
mme/collect(PR #1's branch) and merged into their base branches instead of main. This PR brings all that work to main.Includes:
All code reviewed clean through multiple CR rounds.