Add migration 0008 for the knowledge pipeline schema.
harryagasi
66e70ca
- Create knowledge_documents table
- Create knowledge_extraction_runs table
- Create knowledge_entries table
- Create knowledge_reviews table
- Create knowledge_jobs table
- Add knowledge pipeline indexes and constraints
- Add document provenance, content, and withdrawal fields
- Add review mode and decision authorization fields
- Keep migration idempotent with IF NOT EXISTS
- Preserve existing message traceability migrations
feat(analysis): add success/failed status to chat messages
harryagasi
981b42b
Add status and note columns to analyses_messages, require message_id
for AI-role replies, and fall back to a reserved default identifier
with hardcoded error content when it's missing. role=user messages
always ignore any client-supplied message_id and get a system-generated
one instead. Update API contract and Swagger docs accordingly.
feat(storage): add Supabase object storage and reduce exposed API surface
harryagasi
e4eafe1
- add provider-selectable object storage with Supabase S3 support
- refactor document upload/process/delete to use object storage abstraction
- update health and dependency checks to report provider-neutral storage status
- require business_questions in analysis creation contract
- add analysis-scoped data catalog rebuild coverage
- unwire deprecated and skills endpoint groups from active routing
- remove deprecated/skills endpoints from generated Swagger docs
- add tests for storage config, document storage flow, health, and disabled routes
[KM-418]feat: align analysis flow contracts and scoped catalog rebuild
harryagasi
80fa986
- document frontend and Python agentic API contracts
- require business_questions when creating analyses
- persist role-explicit analysis conversation messages
- add analysis-scoped catalog rebuild from data_bind
- update generated Swagger docs for frontend integration
ticket: https://bukittechnology.atlassian.net/browse/KM-573
Root cause confirmed: Windows TCP Autotuning shrinks the receive window
to ~4 KB on loopback (RTT ≈ 0), causing 675 syscalls × 26ms delayed-ACK
= ~17.5s to read a 2.76 MB body. Azure upload itself takes only ~300ms.
Changes:
- cmd/server/main.go: wrap listener with uploadFriendlyListener that sets
TCP_NODELAY and SO_RCVBUF=1MB on every accepted connection
- internal/documents/handler.go: replace r.MultipartReader() with a custom
multipart.NewReader over bufio.NewReaderSize(r.Body, 1MB) to reduce
syscall count; add POST /api/v1/document/upload-local for benchmarking
- internal/documents/service.go: split upload into two timed phases
(body received / azure upload) for diagnostics; add UploadLocal method
that writes to files/ folder for storage backend comparison
- internal/documents/azure_blob.go: tune BlockSize to 1MB, Concurrency 4
- internal/repository/postgres/db.go: append binary_parameters=yes to
connection st…
[KM-467] [DED][AI] Go service full migration — add auth, rooms, documents, DB clients, catalog modules, DB init, and user seeder
room based session management and interview result API
ticket: https://bukittechnology.atlassian.net/browse/KM-462
- Add user_id and room_id to session creation; each room maps to one
active session so re-interviews replace the previous result
- Return full InterviewResultDTO (sections, Q&A pairs, insights) from
POST /sessions/{id}/finish instead of a local file path
- Add GET /rooms/{room_id}/result endpoint to retrieve the latest
finished interview result for a room
- Add CORS middleware with ALLOWED_ORIGINS env support so browser
clients can reach the API
- Update API_CONTRACT_INTERVIEW.md and README.md to reflect all changes