Skip to content

feat: diffity as a hosted multi-user server - #117

Merged
fiddur merged 11 commits into
developfrom
hosted-server
Oct 8, 2026
Merged

fiddur merged 11 commits into
developfrom
hosted-server

Conversation

@fiddur

@fiddur fiddur commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Turns this branch into the hosted diffity server, and nothing else. The local CLI, its git and GitHub packages, the inbox and the skills are removed. What remains: packages/server, the UI (trimmed to what the server serves), api and parser.

  • Agents create review sessions on pushed code (a PR, a sha pair, or a patch) through an OAuth-protected MCP endpoint. The server also serves a review prompt to go with them.
  • Users sign in through Google IAP (dev login on localhost only) and are isolated: each user sees only their own sessions and comments.
  • The store is Postgres (PGlite on localhost and in tests). GitHub access comes from the GitHub App's user connect, with a pasted token as fallback. Reviews post to GitHub as the user.
  • deploy.yml (manual trigger) deploys to Cloud Run in nc-innovation. The infra is NaturalCycles/NCInfraIaC#234.

Plan: https://claude.ai/code/artifact/7b249d08-31d4-4de5-b920-5dafbab2cca3

🤖 Generated with Claude Code

https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w

fiddur and others added 3 commits September 25, 2026 17:23
…endpoint

New packages/server: sessions on a PR, a sha pair or a patch against pushed code, served
per session to the existing UI, with the agent commands as MCP tools. Users are isolated.
Dev login and a pasted GitHub token for now; Firebase login and the GitHub App come next.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
…itHub and posts reviews

The UI keeps only what the server serves; the api package and the repo's build, CI, deploy
and docs are for the server alone.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
The local CLI, its git and GitHub packages and the skills are gone; what remains is simplified
around the server, and the deploy takes the IAP audience from a repository variable.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
@fiddur fiddur changed the title feat: hosted multi-user diffity server (phase 1) feat: diffity as a hosted multi-user server Sep 26, 2026
fiddur and others added 8 commits September 28, 2026 10:03
The UI builds into its own dist and the server build copies it in, since the UI's build
resolves its dependencies from where it writes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
…estions in a background shell

The agent gets a session-scoped live token over MCP and long-polls /live/await with curl, so its
chat never blocks and it works in cloud sessions.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
…s review

Fetched from GitHub on page load with the user's token, filtered by per-user settings (skipped
titles, drafts), with a link to the existing session or a button that creates one. The same list
is an MCP tool, list_review_requests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
…across their sessions

A live token without a session waits on the user's whole queue, which now carries review
requests as well as questions. Create and review on the Sessions page queues one; the diff page
shows it queued, under way and ready, and a Reload button takes in the findings and reading order.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
…n can be handed to it

A claimed request or a started review counts as work, so "listening" holds while an answer is
being written; the asked comment, the review banner and the Sessions page say so. Reply and
review_start extend the agent's claims. A review can be requested for an existing session from the
banner and from the Sessions page.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bwp5QefjsjMFeq6CK6cT6w
@fiddur
fiddur merged commit 62196aa into develop Oct 8, 2026
@fiddur
fiddur deleted the hosted-server branch October 8, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant