Phase 1a — Foundation & Accounts #1
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
marvin8/xique#1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Xique has no code yet — only an initial commit, README, and LICENSE.
Before any user-facing feature (Jellyfin sync, Trakt import, recommendations, browse UI) can be built, the project needs its foundation: a Python package scaffold, configuration, a persistent store with schema migrations, and a way for people to have accounts and sign in. Xique is multi-user, with each user connecting their own Jellyfin server, so the account system is not optional — it is the substrate every later feature hangs off.
This issue covers that foundation and the invite-only account system: first-run admin setup, login/logout, invite links, server-side sessions, CSRF protection, and a worker process skeleton with a job table (the coordination mechanism later sync/import work will use).
Design spec: .superpowers/specs/2026-10-08-xique-design.md (local working artifact, not committed per AGENTS.md).
Plan of attack
Full plan:
.superpowers/plans/2026-10-08-xique-01-foundation.md(local working artifact; not committed per AGENTS.md).Approach. FastAPI app factory with per-request aiosqlite connections; Jinja2 server-rendered templates; zero JavaScript. A separate worker process owns schema migrations and claims jobs from a
jobstable in the same SQLite DB. Sessions are server-side (opaque token hashed at rest). Python 3.14; every compiled dependency has a 3.14 wheel.Key files.
pyproject.toml,ruff.toml,src/xique/config.py,src/xique/db/{__init__,schema,users,jobs}.py,src/xique/services/auth.py,src/xique/web/{app,deps,server}.py+ routes/templates,src/xique/worker.py, tests alongside.Sequence (7 tasks, each TDD with its own commit):
Branch:
feat/issue-1-phase-1a-foundationCommits:
:sparkles: feat: project scaffold, tooling, and settings:sparkles: feat: sqlite connection and migration mechanism:sparkles: feat: password, session-token, and CSRF primitives:sparkles: feat: users, sessions, and invites data access:sparkles: feat: FastAPI app factory, per-request DB, and auth dependencies:sparkles: feat: setup, login, logout, and invite routes:sparkles: feat: worker skeleton and job queuePR (opened once work is complete):
Merged in PR #2 (merge commit
0788c8b). Phase 1a delivered: scaffold/settings, SQLite+migrations, auth primitives, users/sessions/invites access, app factory+deps, auth routes (setup/login/logout/invite), worker+jobs. CI green (pr-review, gitleaks, checks).