Skip to content

Merge PRs #2 and #3 into main#4

Merged
jpr5 merged 10 commits into
mainfrom
mme/collect
Apr 2, 2026
Merged

Merge PRs #2 and #3 into main#4
jpr5 merged 10 commits into
mainfrom
mme/collect

Conversation

@jpr5

@jpr5 jpr5 commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

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.

mme and others added 10 commits April 2, 2026 20:09
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
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.

2 participants