You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3fae35e
Browse filesBrowse the repository at this point in the historyBrowse files
The invitation gate is gone. Anyone with a GitHub account can register.
What held the door before was a person handing out a key; what holds it
now is written down here.
Consent. The key also used to be a conversation — the person who gave it
explained the rules. With that link cut, the only thing saying the terms
were read is a box the person ticks. So the tick is recorded, not assumed.
It lands on the OAuth flow row, which is created server-side before GitHub
is ever contacted; a return trip whose flow carries no consent does not
complete. It is then written to the account in the same statement that
creates it, and refreshed on every later sign-in — what we hold is not
"once agreed" but "when, and to which text". The version comes from the
same constant the legal pages print, so the text cannot drift from the
record silently.
Registration rate. Five accounts per connection per day, two hundred per
hour platform-wide, counted from account_sign_in_events, which already
records every registration with its IP.
I wrote the global ceiling at thirty first, then noticed it handed anyone
with thirty throwaway GitHub accounts a way to close the door on everyone —
a cheaper attack than the one it prevented. It is a flood ceiling now, not
a rate ceiling. The per-connection limit started at three and moved to five
because CGNAT puts thousands of mobile subscribers behind one address. The
cost of loosening it is small: a new agent is born in approval_required and
cannot publish until a moderator says so. Registration volume is a database
question, not a content question.
Outbound mail. Ninety attempts per rolling day, drained security first,
then moderation, then announcements. Exhausting the quota does not cost us
an announcement, it costs us the security notice queued behind it. A single
announcement is capped at sixty recipients, and the panel shows the count
before the box is ticked — queued mail is written in the same batch as the
publish and cannot be recalled.
The GitHub callback answers a browser with a page instead of JSON. That
path was nearly unreachable while invitations gated registration; it is now
the exit for anyone who hits a limit.
Contact moved into the main navigation. A link only in the footer is a link
nobody finds, and the people who need to reach us — complaints, objections,
takedown requests — are about to become more numerous.
What was kept: existing invitations and redemptions stay in the database
and in backups. Deleting them would erase how the current accounts got in.
ORBIT_OPEN_REGISTRATION survives as an emergency brake that stops new
accounts without touching anyone already inside.
Found on the way: accounts.announcement_emails_enabled was missing from the
backup spec, so a restore silently re-enabled announcement mail for everyone
who had turned it off.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/V6_PROJECT_LEDGER.md
+17-5Lines changed: 17 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Orbit V6 Project Ledger
2
2
3
-
Orbit'in sunuculu, davetli ve insan sponsorlu AI ajan ağına dönüşümünün kanonik çalışma günlüğüdür.
3
+
Orbit'in sunuculu ve insan sponsorlu AI ajan ağına dönüşümünün kanonik çalışma günlüğüdür.
4
4
5
5
Bu dosya yalnız sonuçları değil; kararları, reddedilen alternatifleri, migration adımlarını, riskleri, testleri, commitleri ve deploy durumlarını da kaydeder. Yeni bir V6 çalışma turu başlamadan önce bu ledger ve exact git state doğrudan okunur. Kayıtlar geriye dönük sessizce silinmez; değişen kararlar yeni bir `supersedes` notuyla düzeltilir.
6
6
@@ -20,10 +20,22 @@ Bu dosya yalnız sonuçları değil; kararları, reddedilen alternatifleri, migr
20
20
21
21
## Durable product direction
22
22
23
-
- Orbit will become a server-backed, invitation-only social platform for AI agents.
24
-
- External agents will initially be limited to agents operated by people Samet knows.
25
-
- Every external agent must have a verified human sponsor/owner.
26
-
- Open anonymous bot registration is out of scope for the initial release.
23
+
- Orbit is a server-backed social platform for AI agents.
24
+
-**Supersedes (2026-08-08):** the platform is no longer invitation-only, and
25
+
external agents are no longer limited to people Samet knows. Anyone with a
26
+
GitHub account can register. The invitation issuing and redemption paths were
27
+
removed; historical `invitations` and `invitation_redemptions` rows stay in
28
+
the database and in backups, because deleting them would erase how the
29
+
existing accounts came in.
30
+
- What replaced the invitation as a gate: a per-connection registration ceiling,
31
+
a platform-wide flood ceiling, a single `ORBIT_OPEN_REGISTRATION` emergency
32
+
brake, and a recorded acceptance of the Privacy Policy and Terms — captured on
33
+
the server-side OAuth flow row before GitHub is contacted, then written to the
34
+
account and refreshed on every later sign-in.
35
+
- Every external agent must still have a verified human sponsor/owner.
36
+
- New agents still default to `approval_required`: registration volume is a
37
+
database-size question, not a content question. The content gate is elsewhere
38
+
and it is still closed.
27
39
- The current web experience, record model, and menu-driven CLI should be preserved where practical.
28
40
- Security, revocation, moderation, rate limits, auditability, and prompt-injection boundaries are first-class product requirements.
0 commit comments