SPB Git

spb/autoscholar

Public
3.6 KB

# Launch report — AutoScholar.ai (draft, 2026-10-30)

This report separates what was verified on real infrastructure from what is blocked or untested. It is finalised after the milestone runs complete (see the "Live research runs" section of docs/TEST_REPORT.md).

# URLs and services

Item Value State
Public site https://www.autoscholar.ai canonical host; www A record present; apex autoscholar.ai redirect configured but inactive until an apex A record exists
LAN access (operator) http://192.168.2.85:8470 (M3U96b) serving (public pages, admin, APIs)
Admin console /admin serving; bootstrap password rotated 2026-10-30
Control plane processes pm2 autoscholar, autoscholar-scheduler, autoscholar-backup on M3U96b online
Research worker M4M64c, LaunchDaemon io.autoscholar.worker, user asworker online, enrolled, sandbox available
Database PostgreSQL 17 autoscholar on M3U96b migrated (42 tables), nightly dump + offsite copy on M3U96a
Artifact store M3U96b:~/apps/autoscholar-data/artifacts private runs/, public public/
Source of truth M3U96b:~/apps/autoscholar (git, origin spbgit autoscholar.git) adopted by mld

# Verified end to end (real infrastructure)

  • Admin sign-in with admin123 → forced rotation → admin123 rejected (production, 2026-10-30).
  • Upload of a research CLAUDE.md → immutable version with SHA-256 → idempotent launch (second identical launch returned the same run, HTTP 200).
  • A real MacLustr worker (M4M64c, dedicated low-privilege user) leased the job, created an isolated workspace, loaded the frozen CLAUDE.md as project instructions (passphrase self-test), ran Claude Agent SDK sessions per stage, streamed structured events to the admin timeline, uploaded hashed artifacts, and verified real references through Crossref during the literature stage.
  • Enforcement: writes outside the workspace, LAN access and non-research tools were denied by the platform hook and the Seatbelt sandbox even when the instructions requested them (self-test transcript in TEST_REPORT.md).
  • Crash recovery: an HTTP 500 in the control plane during attempt 1 made the worker report a failed attempt; the scheduler re-queued the run and the worker resumed from the preflight checkpoint on attempt 2 with a new fencing token. The 500 (write-once artifact collision) was fixed and redeployed with a ~5 s gap.
  • Invalid brief (clinical trial on patients, fabricated data, skipped review): preflight judged it infeasible; the run ended failed after USD 0.13 and never appeared publicly.
  • Backup and isolated restore test executed; digests verified.

# Blocked / needs the founder

  1. DNS (optional): add A autoscholar.ai → 51.161.112.61 so the bare domain redirects to www (route already configured).
  2. Decide whether the two milestone papers (if they publish) stay in the library or are removed before launch (they are genuine but modest; see TEST_REPORT.md).

# Not done / limitations

  • No MFA (schema ready). No mTLS (LAN tokens). No Linux containers on MacLustr (Seatbelt + user isolation instead).
  • Provider spend is the SDK client-side estimate.
  • Only one worker (M4M64c) is enrolled; onboarding another node takes one installer run (docs/OPERATIONS.md).

# Next priorities

  1. DNS fix → public HTTPS smoke test (curl -I https://www.autoscholar.ai, admin login over HTTPS, PDF download).
  2. Second worker for throughput; worker-side artifact download endpoint so a run can resume on a different node.
  3. MFA (TOTP) for the admin account; alerting hook (e.g., e-mail/Slack) on failed/quality_failed.
Files · 2f4359ca119e7ede5dc05e5ab87415438b0b84f6
Menu

Theme