Notechondria

Version: 0.1.69 Build Date: 2026-04-23T00:00

What's Changed

CI — docs now rebuild on push

  • frontend-pages.yml used to fire only on push.branches: [codex]. After the 0.1.68 codex → main merge, day-to-day commits land on main, so the workflow stopped firing and the hosted docs site (trance-0.github.io/Notechondria/docs/) froze mid-0.1.x. Fix: filter switched to main. Also added frontend/notechondria_shared/** and README.md to the paths: list so edits to the shared package or the root readme trigger a rebuild too.
  • As a side-effect this closes the user-visible complaint that docs/server/notes.html on the Pages site hadn't been updating per push.

CI — portal-release linux-arm64 leg removed

  • The linux-arm64 matrix entry on .github/workflows/portal-release.yml was failing every release with Unable to determine Flutter version for channel: stable version: any architecture: arm64 from subosito/flutter-action@v2. Flutter does not publish official arm64 Linux release archives today (storage.googleapis.com/flutter_infra_release/releases/releases_linux.json only lists x64 URLs), so the action cannot resolve a stable version for that runner. Entry removed; re-enable once Flutter ships arm64 Linux binaries or we add a self-hosted arm64 runner with a manually built Flutter checkout. Tracked in docs/TODO.md under Release / CI.

Docs — server backend description refreshed

  • docs/server/creators.md brought up to date with 0.1.65–0.1.68 changes:
    • Creator model field list now matches backend/creators/models.py (previous doc listed display_name / avatar / email_verified_at that don't exist on the model).
    • Removed the wrong CreatorApiKey / CreatorInvitation / CreatorOauthIdentity rows — actual auxiliary models are SocialAccount, VerificationCode, InvitationCode, Session (0.1.65). Session doc block covers its key / device_label / user_agent / ip_hash / created_at / last_seen_at / revoked_at shape plus SESSION_IDLE_TIMEOUT = 1d / SESSION_ABSOLUTE_TIMEOUT = 3d constants.
    • Authentication section rewritten: DRF default is now MultiSessionAuthentication (0.1.65), TokenAuthentication replaced. SessionApiView special case (empty authentication_classes) documented with pointer to 0.1.64.
    • Login / session / logout endpoint table: logout now revokes only the current session (0.1.65), not every token.
    • Login response example updated to the full 0.1.65 shape (includes session, multi_device, other_sessions_count).
    • New "Active sessions (multi-device)" section documents GET /api/v1/auth/sessions/ and DELETE /api/v1/auth/sessions/<id>/ with a full example response (never leaks raw key, includes ip_hash_prefix).
  • docs/server/backend.md updates:
    • Django-apps note clarifies rest_framework.authtoken stays installed for migration compat but is no longer the active auth source.
    • URL topology row for /api/v1/ points at the new /auth/sessions/ sub-section of creators.md.
    • Entrypoint step-list gained the 0.1.65 "wipe all creators.Session rows on deploy" step.

Docs — new notechondria_shared package doc

  • docs/client/notechondria_shared.md — first-class description of the shared Dart/Flutter package used by all three apps. Covers why it exists (de-duplicating 63+ byte-identical methods across app_shells), the app_shell / components / models / settings / utils subfolder layout, every public mixin / widget / model / helper, the exports barrel (notechondria_shared.dart), dependencies, how to consume from each app's pubspec.yaml, and the "extract when three apps have byte-identical methods" heuristic for when to add new shared code.
  • docs/SUMMARY.md indexes the new doc under Client (frontend apps).

Docs — README ↔ docs cross-linking

  • README.md "Useful docs" list replaced with a single pointer to the hosted docs site (trance-0.github.io/Notechondria/docs/) plus entry-point links to docs/readme.md, docs/index.md, docs/client/, docs/server/, docs/deployment/, docs/versions/, and docs/TODO.md. Stale TASK.md reference fixed (it's TODO.md now).
  • docs/readme.md opening paragraph now points at the repo-root README as the elevator-pitch entry point, so browsers arriving from GitHub and browsers arriving from the docs site both land on a coherent reading order.

Files Changed

  • VERSION — bumped 0.1.68 → 0.1.69.
  • .github/workflows/frontend-pages.yml — trigger switched from codex to main; paths: list gained the shared package and root README.
  • .github/workflows/portal-release.ymllinux-arm64 matrix entry removed; header comment documents why.
  • docs/server/creators.md — major refresh (model list, auth, sessions endpoints, updated login response example).
  • docs/server/backend.md — authtoken compat note, URL topology cross-ref, entrypoint session-wipe step.
  • docs/client/notechondria_shared.md — new file.
  • docs/SUMMARY.md — Client section indexes the shared package.
  • README.md — docs-site pointer; TASK.mdTODO.md fix.
  • docs/readme.md — cross-link to root README.
  • docs/versions/0.1.69.md — this file.

Notes — about the upcoming 0.2.0 bump

The owner flagged that 0.2.0 is coming with no major functional changes. Practically that means the third-digit-only rule from AGENTS.md §1 still holds for routine work; 0.2.0 will be a minor-bump reset (0.2.0 → 0.2.1 → …) driven by the owner, not by this agent. If the VERSION file shows 0.2.x on a future round, continue with third-digit increments from there.