Point links at the extant2000 GitLab group

The messenger repositories move from gitlab.com/paulhitt to
gitlab.com/extant2000. Old web and git URLs redirect; the relay's container
image path does not, so docker-compose.yml names the new registry path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Paul Hitt
2026-09-28 14:38:56 -04:00
co-authored by Claude Opus 5.5
parent 24364d400c
commit ac57651fd5
17 changed files with 45 additions and 45 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# Why this repository pins flamenet-e2e
`.e2e-ref` is the commit of [flamenet-e2e](https://gitlab.com/paulhitt/flamenet-e2e)
`.e2e-ref` is the commit of [flamenet-e2e](https://gitlab.com/extant2000/flamenet-e2e)
that the `conformance` and `doc-pages` jobs check against.
**It exists because a merge in that repository could stop all work in this
+4 -4
View File
@@ -217,7 +217,7 @@ conformance:
- apt-get install -y -qq nodejs
script:
- swift build
- git clone https://gitlab.com/paulhitt/flamenet-e2e.git /tmp/e2e
- git clone https://gitlab.com/extant2000/flamenet-e2e.git /tmp/e2e
- cd /tmp/e2e && git checkout -q "$(cat "$CI_PROJECT_DIR/.e2e-ref")"
- FN_RELAY_DIR="$CI_PROJECT_DIR" node test/relay.mjs
timeout: 40 minutes
@@ -240,7 +240,7 @@ doc-pages:
script:
- apk add --no-cache python3 git >/dev/null
# Same pinned clone the conformance job uses, see `.e2e-ref`.
- git clone https://gitlab.com/paulhitt/flamenet-e2e.git /tmp/e2e
- git clone https://gitlab.com/extant2000/flamenet-e2e.git /tmp/e2e
- (cd /tmp/e2e && git checkout -q "$(cat "$CI_PROJECT_DIR/.e2e-ref")")
- python3 Scripts/check-doc-pages.py --engine /tmp/e2e
@@ -284,7 +284,7 @@ conformance-head:
- apt-get install -y -qq nodejs
script:
- swift build
- git clone --depth 1 https://gitlab.com/paulhitt/flamenet-e2e.git /tmp/e2e-head
- git clone --depth 1 https://gitlab.com/extant2000/flamenet-e2e.git /tmp/e2e-head
- |
echo "pinned: $(cat .e2e-ref)"
echo "at HEAD: $(cd /tmp/e2e-head && git rev-parse HEAD)"
@@ -298,7 +298,7 @@ doc-pages-head:
image: alpine:3.20
script:
- apk add --no-cache python3 git >/dev/null
- git clone https://gitlab.com/paulhitt/flamenet-e2e.git /tmp/e2e-head
- git clone https://gitlab.com/extant2000/flamenet-e2e.git /tmp/e2e-head
# Say WHY this fired, not only what to run. relay#56 records an hour
# spent blaming the runner for a red that a merge in another repository had
# caused, the message told you to regenerate and not why regenerating had
+2 -2
View File
@@ -18,7 +18,7 @@ the split carried the history with it. If you find a comment claiming this is a
mirror, it is stale and worth a patch of its own.
What still spans repositories is the conformance harness: the protocol and its
§8 test suite live in [flamenet-e2e](https://gitlab.com/paulhitt/flamenet-e2e),
§8 test suite live in [flamenet-e2e](https://gitlab.com/extant2000/flamenet-e2e),
and CI clones it at HEAD rather than vendoring a copy. That coupling is
deliberate, the harness carries the spec, and a relay tested against a pinned
old harness is tested against a pinned old spec.
@@ -131,7 +131,7 @@ For the HTTP-level suite, §8 conformance, driven over real sockets by the
protocol's own harness, clone `flamenet-e2e` and point it back here:
```bash
git clone --depth 1 https://gitlab.com/paulhitt/flamenet-e2e.git /tmp/e2e
git clone --depth 1 https://gitlab.com/extant2000/flamenet-e2e.git /tmp/e2e
cd /tmp/e2e && FN_RELAY_DIR=/path/to/flamenet-relay node test/relay.mjs
```
+2 -2
View File
@@ -121,12 +121,12 @@ Stated here because a rewrite implies it fixed everything it touched.
## Tests
The conformance harness lives in
[flamenet-e2e](https://gitlab.com/paulhitt/flamenet-e2e), because it carries the
[flamenet-e2e](https://gitlab.com/extant2000/flamenet-e2e), because it carries the
spec it is testing against:
```bash
swift build # the harness drives the BINARY, build it first
git clone --depth 1 https://gitlab.com/paulhitt/flamenet-e2e.git /tmp/e2e
git clone --depth 1 https://gitlab.com/extant2000/flamenet-e2e.git /tmp/e2e
cd /tmp/e2e && FN_RELAY_DIR=/path/to/flamenet-relay node test/relay.mjs
```
+4 -4
View File
@@ -19,7 +19,7 @@ directly.</p>
<table>
<tbody>
<tr>
<td><a href="https://gitlab.com/paulhitt/flamenet-e2e">flamenet-e2e</a>
<td><a href="https://gitlab.com/extant2000/flamenet-e2e">flamenet-e2e</a>
<code>src/</code></td>
<td>JavaScript</td>
<td>Reference cryptographic engine. Normative where implementations
@@ -27,7 +27,7 @@ disagree. This repository.</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-messenger-ios">flamenet-messenger-ios</a>
href="https://gitlab.com/extant2000/flamenet-messenger-ios">flamenet-messenger-ios</a>
<code>Sources/E2E/</code></td>
<td>Swift (CryptoKit)</td>
<td>iOS engine and app. Checked against the reference in both
@@ -35,7 +35,7 @@ directions.</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-messenger-android">flamenet-messenger-android</a>
href="https://gitlab.com/extant2000/flamenet-messenger-android">flamenet-messenger-android</a>
<code>engine/</code></td>
<td>Kotlin</td>
<td>Android engine and app. Held to the published vectors rather than to
@@ -43,7 +43,7 @@ the other two engines.</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-relay">flamenet-relay</a></td>
href="https://gitlab.com/extant2000/flamenet-relay">flamenet-relay</a></td>
<td>Swift (Vapor)</td>
<td>The relay. Holds no key that opens an encrypted message.</td>
</tr>
+2 -2
View File
@@ -15,7 +15,7 @@ href="docs/SPEC.md"><code>docs/SPEC.md</code></a>, the engine behind
Flamenet Messenger: <a
href="/">https://flamenetmessenger.com</a>.</p>
<h2 id="check-it-yourself">Check it yourself</h2>
<pre><code>git clone https://gitlab.com/paulhitt/flamenet-e2e &amp;&amp; cd flamenet-e2e
<pre><code>git clone https://gitlab.com/extant2000/flamenet-e2e &amp;&amp; cd flamenet-e2e
npm test</code></pre>
<pre><code>274 passed, 0 failed</code></pre>
<p>No install step, no dependencies to fetch, nothing to trust before it
@@ -84,7 +84,7 @@ for a sealed message.</li>
sent-copies</strong>, both client-side only: there is no server route
for either, by design.</li>
<li><strong>The server is published too</strong>, as <a
href="https://gitlab.com/paulhitt/flamenet-relay">flamenet-relay</a>:
href="https://gitlab.com/extant2000/flamenet-relay">flamenet-relay</a>:
its own repository, with its own pipeline. Self-hosting is not a claim
you have to take on trust: the relay is the same code, published.</li>
</ul>
+5 -5
View File
@@ -22,23 +22,23 @@ configuración.</p>
<tbody>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-relay">flamenet-relay</a></td>
href="https://gitlab.com/extant2000/flamenet-relay">flamenet-relay</a></td>
<td>El servidor que estás a punto de ejecutar</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-e2e">flamenet-e2e</a></td>
href="https://gitlab.com/extant2000/flamenet-e2e">flamenet-e2e</a></td>
<td>El protocolo: motor en JavaScript, especificación y vectores de prueba
publicados</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-messenger-ios">flamenet-messenger-ios</a></td>
href="https://gitlab.com/extant2000/flamenet-messenger-ios">flamenet-messenger-ios</a></td>
<td>La aplicación para iOS, y la fuente de verdad de todo lo anterior</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-messenger-android">flamenet-messenger-android</a></td>
href="https://gitlab.com/extant2000/flamenet-messenger-android">flamenet-messenger-android</a></td>
<td>La aplicación para Android, con su propio motor en Kotlin</td>
</tr>
</tbody>
@@ -47,7 +47,7 @@ href="https://gitlab.com/paulhitt/flamenet-messenger-android">flamenet-messenger
que "se puede montar en casa" sea algo que puedas comprobar, y no algo que te
cuentan.</p>
<h2 id="quick-start">Arranque rápido</h2>
<pre class="bash"><code>git clone https://gitlab.com/paulhitt/flamenet-relay
<pre class="bash"><code>git clone https://gitlab.com/extant2000/flamenet-relay
cd flamenet-relay
cp .env.example .env</code></pre>
<p>Genera los tres secretos que pide <code>.env</code>:</p>
+4 -4
View File
@@ -10,15 +10,15 @@
<h2>Dónde está cada cosa</h2>
<ul>
<li><a href="https://gitlab.com/paulhitt/flamenet-e2e"><strong>flamenet-e2e</strong></a>:
<li><a href="https://gitlab.com/extant2000/flamenet-e2e"><strong>flamenet-e2e</strong></a>:
el motor en JavaScript, la <a href="/spec">especificación</a> y los vectores de
prueba publicados a los que se somete cada implementación</li>
<li><a href="https://gitlab.com/paulhitt/flamenet-relay"><strong>flamenet-relay</strong></a>:
<li><a href="https://gitlab.com/extant2000/flamenet-relay"><strong>flamenet-relay</strong></a>:
el servidor en Swift que sirve esta página. Lo que ejecutas para
<a href="/es/self-hosting">montar el tuyo</a></li>
<li><a href="https://gitlab.com/paulhitt/flamenet-messenger-ios"><strong>flamenet-messenger-ios</strong></a>:
<li><a href="https://gitlab.com/extant2000/flamenet-messenger-ios"><strong>flamenet-messenger-ios</strong></a>:
la aplicación para iOS, y la fuente de verdad de todo lo anterior</li>
<li><a href="https://gitlab.com/paulhitt/flamenet-messenger-android"><strong>flamenet-messenger-android</strong></a>:
<li><a href="https://gitlab.com/extant2000/flamenet-messenger-android"><strong>flamenet-messenger-android</strong></a>:
la aplicación para Android, y el motor en Kotlin que lleva debajo</li>
</ul>
+1 -1
View File
@@ -18,7 +18,7 @@ shapes</em> below.</p>
<hr />
<h2 id="the-shortest-thing-that-works">The shortest thing that
works</h2>
<pre class="bash"><code>git clone https://gitlab.com/paulhitt/flamenet-relay /srv/flamenet &amp;&amp; cd /srv/flamenet
<pre class="bash"><code>git clone https://gitlab.com/extant2000/flamenet-relay /srv/flamenet &amp;&amp; cd /srv/flamenet
cp .env.example .env
#("#") The issuer keypair. This mints your users&#("#")39; session tokens; losing it signs
+4 -4
View File
@@ -52,10 +52,10 @@
"addressCountry": "US"
},
"sameAs": [
"https://gitlab.com/paulhitt/flamenet-messenger-ios",
"https://gitlab.com/paulhitt/flamenet-messenger-android",
"https://gitlab.com/paulhitt/flamenet-relay",
"https://gitlab.com/paulhitt/flamenet-e2e"
"https://gitlab.com/extant2000/flamenet-messenger-ios",
"https://gitlab.com/extant2000/flamenet-messenger-android",
"https://gitlab.com/extant2000/flamenet-relay",
"https://gitlab.com/extant2000/flamenet-e2e"
]
},
{
+2 -2
View File
@@ -215,10 +215,10 @@ relay" holds on native and not in the browser.</li>
</ul>
<h2 id="tests">Tests</h2>
<p>The conformance harness lives in <a
href="https://gitlab.com/paulhitt/flamenet-e2e">flamenet-e2e</a>,
href="https://gitlab.com/extant2000/flamenet-e2e">flamenet-e2e</a>,
because it carries the spec it is testing against:</p>
<pre class="bash"><code>swift build #("#") the harness drives the BINARY, build it first
git clone --depth 1 https://gitlab.com/paulhitt/flamenet-e2e.git /tmp/e2e
git clone --depth 1 https://gitlab.com/extant2000/flamenet-e2e.git /tmp/e2e
cd /tmp/e2e &amp;&amp; FN_RELAY_DIR=/path/to/flamenet-relay node test/relay.mjs</code></pre>
<p>It boots this binary and drives it over real HTTP against SPEC.md §8,
including the negative cases, which are the point: a forged proof, a
+5 -5
View File
@@ -23,23 +23,23 @@ licence.</p>
<tbody>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-relay">flamenet-relay</a></td>
href="https://gitlab.com/extant2000/flamenet-relay">flamenet-relay</a></td>
<td>The server you are about to run</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-e2e">flamenet-e2e</a></td>
href="https://gitlab.com/extant2000/flamenet-e2e">flamenet-e2e</a></td>
<td>The protocol: JavaScript engine, specification, published test
vectors</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-messenger-ios">flamenet-messenger-ios</a></td>
href="https://gitlab.com/extant2000/flamenet-messenger-ios">flamenet-messenger-ios</a></td>
<td>The iOS app, and the source of truth for all of the above</td>
</tr>
<tr>
<td><a
href="https://gitlab.com/paulhitt/flamenet-messenger-android">flamenet-messenger-android</a></td>
href="https://gitlab.com/extant2000/flamenet-messenger-android">flamenet-messenger-android</a></td>
<td>The Android app, with its own Kotlin engine</td>
</tr>
</tbody>
@@ -48,7 +48,7 @@ href="https://gitlab.com/paulhitt/flamenet-messenger-android">flamenet-messenger
"self-hostable" is something you can check rather than something you are
told.</p>
<h2 id="quick-start">Quick start</h2>
<pre class="bash"><code>git clone https://gitlab.com/paulhitt/flamenet-relay
<pre class="bash"><code>git clone https://gitlab.com/extant2000/flamenet-relay
cd flamenet-relay
cp .env.example .env</code></pre>
<p>Generate the three secrets <code>.env</code> asks for:</p>
+4 -4
View File
@@ -10,15 +10,15 @@
<h2>Where things are</h2>
<ul>
<li><a href="https://gitlab.com/paulhitt/flamenet-e2e"><strong>flamenet-e2e</strong></a>
<li><a href="https://gitlab.com/extant2000/flamenet-e2e"><strong>flamenet-e2e</strong></a>
the JavaScript engine, the <a href="/spec">specification</a>, and the published
test vectors every implementation is held to</li>
<li><a href="https://gitlab.com/paulhitt/flamenet-relay"><strong>flamenet-relay</strong></a>
<li><a href="https://gitlab.com/extant2000/flamenet-relay"><strong>flamenet-relay</strong></a>
the Swift relay that serves this page. What you run to
<a href="/self-hosting">self-host</a></li>
<li><a href="https://gitlab.com/paulhitt/flamenet-messenger-ios"><strong>flamenet-messenger-ios</strong></a>
<li><a href="https://gitlab.com/extant2000/flamenet-messenger-ios"><strong>flamenet-messenger-ios</strong></a>
the iOS app, and the source of truth for all of the above</li>
<li><a href="https://gitlab.com/paulhitt/flamenet-messenger-android"><strong>flamenet-messenger-android</strong></a>
<li><a href="https://gitlab.com/extant2000/flamenet-messenger-android"><strong>flamenet-messenger-android</strong></a>
the Android app, and the Kotlin engine underneath it</li>
</ul>
+2 -2
View File
@@ -2190,7 +2190,7 @@ tamper rejection and safety numbers.</li>
<h3 id="android-verified">Android, verified</h3>
<p>The Android engine exists and is exchanged with the web engine. It
lives in <a
href="https://gitlab.com/paulhitt/flamenet-messenger-android">flamenet-messenger-android</a>
href="https://gitlab.com/extant2000/flamenet-messenger-android">flamenet-messenger-android</a>
<code>engine/</code>, 18 Kotlin files, and a plain JVM library with no
<code>android.*</code> imports, which is exactly the shape this section
predicted it would need to be testable at all.</p>
@@ -2726,7 +2726,7 @@ taken, first contact with an unpinned device remains downgradable. See
</tr>
<tr>
<td>Relay (Swift, <a
href="https://gitlab.com/paulhitt/flamenet-relay">flamenet-relay</a>)</td>
href="https://gitlab.com/extant2000/flamenet-relay">flamenet-relay</a>)</td>
<td><strong>implemented</strong></td>
</tr>
<tr>
+1 -1
View File
@@ -18,7 +18,7 @@ ALERT_TO="${ALERT_TO:-postmaster@flamenet.io}"
DIR=/srv/prod/monitoring
STATUS="$DIR/fleet-check.status"
LOG="$DIR/fleet-check.log"
REPO="${FLEET_CHECK_REPO:-https://gitlab.com/paulhitt/flamenet-e2e.git}"
REPO="${FLEET_CHECK_REPO:-https://gitlab.com/extant2000/flamenet-e2e.git}"
log() { printf '%s %s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$*" >> "$LOG"; }
+1 -1
View File
@@ -40,7 +40,7 @@ services:
# Pin this to a commit sha (`:abc1234`) rather than `:latest` if you
# want to choose when you move. `latest` is what a person wants the first
# time and rarely what they want on the tenth.
image: registry.gitlab.com/paulhitt/flamenet-relay:latest
image: registry.gitlab.com/extant2000/flamenet-relay:latest
restart: unless-stopped
depends_on:
db:
+1 -1
View File
@@ -14,7 +14,7 @@ credential that works across relays, see *Three shapes* below.
## The shortest thing that works
```bash
git clone https://gitlab.com/paulhitt/flamenet-relay /srv/flamenet && cd /srv/flamenet
git clone https://gitlab.com/extant2000/flamenet-relay /srv/flamenet && cd /srv/flamenet
cp .env.example .env
# The issuer keypair. This mints your users' session tokens; losing it signs