Scaffold pal-e-docs FastAPI service #4
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/pal-e-api!4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "1-scaffold-project"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
?tags=auth,sop)Closes #1
Test plan
pytest— 11 tests passruff check+ruff format --check— cleantofu applyin pal-e-servicesGET /healthzreturns 200 on deployed instance- Notes store HTML rendered from Markdown on write (not raw HTML) - Add PUT /notes/{slug}/links endpoint for managing cross-links - Projects are intentionally not deletable (omission is by design) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>- PUT /notes/{slug}/links sets outgoing links, reverse created automatically - GET returns both incoming and outgoing - Single writer = single admin account, matches SQLite's writer lock Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>Review-Fix Loop
Round 1: 2 blockers (duplicate query from joinedload, metrics returning JSON not text/plain) + 5 nits (links validation order, project update schema, redundant constraint, missing project notes endpoint, memory limit). All fixed in commit
4a92910.Round 2: 0 blockers, 3 quick-win nits (N+1 query in project notes, duplicated DB path default, unused aiosqlite dep). Fixed in commit
7cd40ce.Remaining nits deferred to follow-up (self-link prevention, non-root Dockerfile user, HTML sanitization, error path tests, metrics stub).