Project Culper: Month 2 Week 1 Progress Update
This week’s work spanned three areas: backend route development, frontend containerization, and repository housekeeping.
Backend Route Layer

With authentication wired and all 12 tables live, the focus shifted to implementing the API routes the frontend will actually call. The entries route now has a full CRUD set: POST to create, GET to list all entries scoped to the authenticated tenant, GET by ID, PUT to update, and DELETE. Every endpoint is protected behind the CurrentUser dependency, meaning the API rejects any request without a valid JWT. Remaining route files for entities, tenants, NER, graph, and chat are stubbed and ready for Month 3.
Frontend Container and the Windows CRLF Problem
Getting the frontend Docker container running surfaced a classic Windows development issue. The docker-entrypoint.sh script was saved with Windows-style CRLF line endings rather than the Unix LF endings Linux containers expect. The container tried to execute /bin/sh\r, which does not exist, producing a cryptic error. A one-line PowerShell replacement stripped the carriage returns. A .gitattributes file was then committed to enforce LF endings on all shell and Python files going forward, regardless of what OS a team member develops on.
README Overhaul
The repository README was restructured to communicate the platform’s feature roadmap across four tiers: MVP, Alpha, Beta, and Version 2.0. A shields.io tech stack badge section was also added.