docs: update README to reflect security hardening, config wiring, and dev/test setup changes - #17
Merged
Merged
Conversation
… dev/test setup changes Brings README.md up to date with PRs #9-16 without touching sections that were already accurate: - Configuration: document configs/repos.yaml (indexed repo list) and configs/index_config.yaml (llm_model), both wired in PR #10, including their fallback-to-hardcoded-default behavior when missing/empty - Requirements > Generation Model: drop stale "hardcoded in engine.py" wording now that the model name is config-driven - Authentication: document the fail-fast startup checks from PR #14 (api/auth.py's validate_auth_config(), refuses to start rather than silently accepting an empty JWT secret) and PR #15 (the equivalent Docker/nginx-level check for the internal proxy auth header) - Running Tests: note that CI (PR #13) also runs a separate frontend build/test job alongside the Python lint+test job - Known Limitations: remove the stale "chunker word-wrap planned" entry -- processing/chunker.py already does paragraph/word-boundary splitting, so the limitation and its V7 roadmap item no longer apply - Minor: fix a stray "hard character-slice" reference in the dedup/MIN_CHUNK_CHARS description to match the current chunker Verified every new claim against the actual current contents of requirements.txt, requirements-dev.txt, configs/repos.yaml, configs/index_config.yaml, api/auth.py, api/main.py, Dockerfile, processing/chunker.py, scripts/build_index.py, and .github/workflows/ci.yml. The "Install Dependencies" / "Running Tests" commands were already correct (added in PR #16) -- confirmed, not rewritten. Documentation-only change; no code files touched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XaLTXgv4NNGzg2snnnYRZV
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.
What
Updates
README.mdto reflect the cumulative changes from PRs #9–#16, without touching sections that were already accurate. This is a documentation-only change —git diff --statconfirmsREADME.mdis the only file touched.Changes and why
Configuration — new subsections for PR #10's config wiring:
## configs/repos.yamlunder "Configuration": documents that it drives the repo listscripts/build_index.pyindexes, and that it falls back to the same 19-repo hardcoded list if missing/empty/unparseable.## configs/index_config.yamlunder "Configuration": documents thellm_modelkey read byrag/engine.py(ollama_generate()'s default andRAGEngine.stream_llm()), with the same fallback-to-"llama3"behavior.rag/engine.py" wording in favor of pointing at the config file.configs/repos.yaml.Authentication — PR #14 and PR #15's fail-fast startup checks:
api/auth.py'svalidate_auth_config(): the app now refuses to start (raises at the FastAPI startup event) ifAUTH_ENABLED=trueandJWT_SECRETis unset/empty, closing the previous silent-bypass-via-empty-HMAC-secret issue.CMDscript exits before nginx/FastAPI start under the same condition, sodevhub.conf'sX-Devhub-Internalheader is never generated with an empty/placeholder secret.Running Tests — PR #13's frontend CI job:
Frontend Build & Testjob (npm ci/npm run build/npm test) alongside the PythonLint & Testjob. (No standalone "CI" section existed in the README, so this was folded into the existing "Running Tests" note added by PR chore: split dev/test dependencies into requirements-dev.txt #16 rather than creating a new top-level section.)Chunking — stale limitation removed:
processing/chunker.pyalready splits at paragraph/word boundaries (not a hard character slice) — confirmed by reading the current implementation. Replaced the "Chunker word-wrap (planned)" limitation with a "Resolved" note, and removed the now-done "Chunker word-boundary snapping" line from the V7 roadmap.chunker.py" in the dedup/MIN_CHUNK_CHARSdescription.Confirmed, not changed:
pip install -r requirements.txt(prod) vs.pip install -r requirements.txt -r requirements-dev.txt(dev/test) from PR chore: split dev/test dependencies into requirements-dev.txt #16 — verified against the actual currentrequirements.txtandrequirements-dev.txtcontents, left as-is.chunker.py's markdown-aware implementation — left as-is.Verification
Every new claim was checked against the actual current file contents, not intended/assumed behavior:
requirements.txt,requirements-dev.txtconfigs/repos.yaml,configs/index_config.yamlapi/auth.py,api/main.py,Dockerfileprocessing/chunker.py,scripts/build_index.py.github/workflows/ci.yml🤖 Generated with Claude Code