jlightner
62a94d51c8
fix: restore complete project tree from ub01 canonical state
...
Auto-mode commit e57d425 accidentally deleted 78 files (14,814 lines) during M005
execution. Subsequent commits rebuilt some frontend files but backend/, alembic/,
tests/, whisper/, docker configs, and prompts were never restored in this repo.
This commit restores the full project tree by syncing from ub01's working directory,
which has all M001-M007 features running in production containers.
Restored: backend/ (config, models, routers, database, redis, search_service, worker),
alembic/ (6 migrations), docker/ (Dockerfiles, nginx, compose), prompts/ (4 stages),
tests/, whisper/, README.md, .env.example, chrysopedia-spec.md
2026-03-31 02:10:41 +00:00
jlightner
d218a85e4e
feat: Built backend/watcher.py with PollingObserver-based folder watchi…
...
- "backend/watcher.py"
- "backend/requirements.txt"
GSD-Task: S03/T01
2026-03-30 19:17:47 +00:00
jlightner
e57d42582b
fix: Fixed syntax errors in pipeline event instrumentation — _emit_even…
...
- "backend/pipeline/stages.py"
GSD-Task: S01/T01
2026-03-30 08:27:53 +00:00
jlightner
872ffe0543
test: Added version list/detail API endpoints, Pydantic schemas, versio…
...
- "backend/schemas.py"
- "backend/routers/techniques.py"
- "backend/tests/test_public_api.py"
GSD-Task: S04/T02
2026-03-30 07:27:40 +00:00
jlightner
a4d298502c
feat: Added TechniquePageVersion model, Alembic migration 002, pipeline…
...
- "backend/models.py"
- "alembic/versions/002_technique_page_versions.py"
- "backend/pipeline/stages.py"
GSD-Task: S04/T01
2026-03-30 07:27:40 +00:00
jlightner
769746197c
feat: Added video_filename field to KeyMomentSummary schema and populat…
...
- "backend/schemas.py"
- "backend/routers/techniques.py"
GSD-Task: S03/T01
2026-03-30 06:50:01 +00:00
jlightner
2de51fb1a7
fix: Creators endpoint returns paginated response, review queue limit raised to 1000, added GET /review/moments/{id} endpoint
...
- Creators: response_model changed from list to {items, total, offset, limit} matching frontend CreatorBrowseResponse
- Review queue: limit raised from 100 to 1000
- New GET /review/moments/{moment_id} endpoint for direct moment fetch
- MomentDetail uses fetchMoment instead of fetching full queue
- Merge candidates fetch uses limit=100
2026-03-30 01:26:12 -05:00
jlightner
527216b768
feat: Log LLM response token usage (prompt/completion/total, content_len, finish_reason)
2026-03-30 06:15:24 +00:00
jlightner
b3531fadb6
feat: Switch to FYN-LLM-Agent models — chat for stages 2/4, think for stages 3/5
2026-03-30 05:42:27 +00:00
jlightner
ef78401806
fix: Bump max_tokens to 65536 (model supports 94K context, extraction needs headroom)
2026-03-30 04:57:44 +00:00
jlightner
9bb40f57e4
chore: Bump LLM max_tokens to 32768, commit M002/M003 GSD artifacts
...
- max_tokens bumped from 16384 to 32768 (extraction responses still hitting limits)
- All GSD planning/completion artifacts for M002 (deployment) and M003 (DNS + LLM routing)
- KNOWLEDGE.md updated with XPLTD domain setup flow and container healthcheck patterns
- DECISIONS.md updated with D015 (subnet) and D016 (Ollama for embeddings)
2026-03-30 04:22:45 +00:00
jlightner
e09147760d
fix: Add max_tokens=16384 to LLM requests (OpenWebUI defaults to 1000, truncating pipeline JSON)
2026-03-30 04:08:29 +00:00
jlightner
f73e602995
feat: Per-stage LLM model routing with thinking modality and think-tag stripping
...
- Added 8 per-stage config fields: llm_stage{2-5}_model and llm_stage{2-5}_modality
- LLMClient.complete() accepts modality ('chat'/'thinking') and model_override
- Thinking modality: appends JSON instructions to system prompt, strips <think> tags
- strip_think_tags() handles multiline, multiple blocks, and edge cases
- Pipeline stages 2-5 read per-stage config and pass to LLM client
- Updated .env.example with per-stage model/modality documentation
- All 59 tests pass including new think-tag stripping test
2026-03-30 02:12:14 +00:00
jlightner
5906f286b3
test: Added 18 integration tests for search and public API endpoints (t…
...
- "backend/tests/test_search.py"
- "backend/tests/test_public_api.py"
GSD-Task: S05/T02
2026-03-30 00:01:32 +00:00
jlightner
740fb59d9d
feat: Created async search service with embedding+Qdrant+keyword fallba…
...
- "backend/search_service.py"
- "backend/schemas.py"
- "backend/routers/search.py"
- "backend/routers/techniques.py"
- "backend/routers/topics.py"
- "backend/routers/creators.py"
- "backend/main.py"
GSD-Task: S05/T01
2026-03-29 23:55:52 +00:00
jlightner
b43e4a079a
test: Built 9 review queue API endpoints (queue, stats, approve, reject…
...
- "backend/routers/review.py"
- "backend/schemas.py"
- "backend/redis_client.py"
- "backend/main.py"
- "backend/tests/test_review.py"
GSD-Task: S04/T01
2026-03-29 23:13:43 +00:00
jlightner
e27a86518d
test: Added 10 integration tests covering pipeline stages 2-6, trigger…
...
- "backend/tests/test_pipeline.py"
- "backend/tests/fixtures/mock_llm_responses.py"
- "backend/tests/conftest.py"
GSD-Task: S03/T05
2026-03-29 22:51:26 +00:00
jlightner
aa2ef4e153
feat: Wired automatic run_pipeline.delay() dispatch after ingest commit…
...
- "backend/routers/pipeline.py"
- "backend/routers/ingest.py"
- "backend/main.py"
GSD-Task: S03/T04
2026-03-29 22:41:02 +00:00
jlightner
f59718f8c7
feat: Created sync EmbeddingClient, QdrantManager with idempotent colle…
...
- "backend/pipeline/embedding_client.py"
- "backend/pipeline/qdrant_client.py"
- "backend/pipeline/stages.py"
GSD-Task: S03/T03
2026-03-29 22:39:04 +00:00
jlightner
7cb78e7427
feat: Created 4 prompt templates and implemented 5 Celery tasks (stages…
...
- "prompts/stage2_segmentation.txt"
- "prompts/stage3_extraction.txt"
- "prompts/stage4_classification.txt"
- "prompts/stage5_synthesis.txt"
- "backend/pipeline/stages.py"
- "backend/requirements.txt"
GSD-Task: S03/T02
2026-03-29 22:36:06 +00:00
jlightner
b68751f0db
chore: Extended Settings with 12 LLM/embedding/Qdrant config fields, cr…
...
- "backend/config.py"
- "backend/worker.py"
- "backend/pipeline/schemas.py"
- "backend/pipeline/llm_client.py"
- "backend/requirements.txt"
- "backend/pipeline/__init__.py"
- "backend/pipeline/stages.py"
GSD-Task: S03/T01
2026-03-29 22:30:31 +00:00
jlightner
a9de7f97ea
test: Added 6 integration tests proving ingestion, creator auto-detecti…
...
- "backend/tests/conftest.py"
- "backend/tests/test_ingest.py"
- "backend/tests/fixtures/sample_transcript.json"
- "backend/pytest.ini"
- "backend/requirements.txt"
- "backend/models.py"
GSD-Task: S02/T02
2026-03-29 22:16:15 +00:00
jlightner
88170a41f6
feat: Created POST /api/v1/ingest endpoint that accepts Whisper transcr…
...
- "backend/routers/ingest.py"
- "backend/schemas.py"
- "backend/requirements.txt"
- "backend/main.py"
GSD-Task: S02/T01
2026-03-29 22:09:46 +00:00
jlightner
03b1d53fcb
chore: Built FastAPI app with DB-connected health check, Pydantic schem…
...
- "backend/main.py"
- "backend/config.py"
- "backend/schemas.py"
- "backend/routers/__init__.py"
- "backend/routers/health.py"
- "backend/routers/creators.py"
- "backend/routers/videos.py"
GSD-Task: S01/T03
2026-03-29 21:54:57 +00:00
jlightner
b2bb23930c
fix: Created SQLAlchemy models for all 7 entities, Alembic async migrat…
...
- "backend/models.py"
- "backend/database.py"
- "alembic/versions/001_initial.py"
- "alembic/env.py"
- "alembic.ini"
- "alembic/script.py.mako"
- "docker-compose.yml"
- ".gsd/KNOWLEDGE.md"
GSD-Task: S01/T02
2026-03-29 21:48:36 +00:00
jlightner
c404270f49
feat: Created full Docker Compose project (xpltd_chrysopedia) with Post…
...
- "docker-compose.yml"
- ".env.example"
- "docker/Dockerfile.api"
- "docker/Dockerfile.web"
- "docker/nginx.conf"
- "backend/main.py"
- "backend/requirements.txt"
- "config/canonical_tags.yaml"
GSD-Task: S01/T01
2026-03-29 21:42:56 +00:00