-
7a88a2d4b9
app: make the relay come back by itself, and report within seconds
master

mrambossekandClaude Opus 5
2026-08-02 15:27:32 +02:00
-
97515f7090
app: put the relay switch where it is looked for, and fix why it found nothing

mrambossekandClaude Opus 5
2026-08-02 15:21:45 +02:00
-
c414534e03
app: pick the discovery listeners, and say when one was not asked

mrambossekandClaude Opus 5
2026-08-02 15:13:44 +02:00
-
9ee7d554a6
app: listen to what the segment says unprompted
server-v0.11.4

mrambossekandClaude Opus 5
2026-08-02 14:58:41 +02:00
-
93125a4b1d
app: 0.3.0 — run modes and the dev relay

mrambossekandClaude Opus 5
2026-08-02 14:46:25 +02:00
-
0071e00003
app: long runs that watch, and a relay for the port that keeps moving

mrambossekandClaude Opus 5
2026-08-02 14:43:33 +02:00
-
ae63bd7c7f
server: relay a test device's adb endpoint, because mDNS does not cross subnets

mrambossekandClaude Opus 5
2026-08-02 14:31:01 +02:00
-
ab6e278272
app: an IMS network is not a blocked measurement

mrambossekandClaude Opus 5
2026-08-02 14:11:08 +02:00
-
d420a71a01
docs: v0.11.3 live on fmr, trains validated 120/120; two mint bugs logged

mrambossekandClaude Opus 5
2026-08-02 14:04:46 +02:00
-
d621611bdd
docs: the v0.11.2 mystery was an unstamped-tag problem, not lost code

mrambossekandClaude Opus 5
2026-08-02 13:54:42 +02:00
-
c5f3c2e7af
app: learn probe durations per device; stop claiming VPN after teardown
server-v0.11.3

mrambossekandClaude Opus 5
2026-08-02 13:41:10 +02:00
-
3214cc877a
app: parse the Shizuku dumps into link.ra_source and sec.arp_watch

mrambossekandClaude Opus 5
2026-08-02 13:34:52 +02:00
-
515a6aef04
app: speak train (0x03-0x05) and mark downtrains with DSCP

mrambossekandClaude Opus 5
2026-08-02 13:34:52 +02:00
-
d574c76630
docs: log the prober fold and server v0.9.2 feature work
server-v0.9.2

mrambossekandClaude Opus 5
2026-08-02 13:04:54 +02:00
-
8118e213ae
server: upstream trains, observed TTL/DSCP/ECN, rate limits, action ids

mrambossekandClaude Opus 5
2026-08-02 13:04:54 +02:00
-
f6849f8e6a
app: fold the prober's validated capabilities into core-probe

mrambossekandClaude Opus 5
2026-08-02 12:39:52 +02:00
-
7d98a43866
docs: close the VPN, v6, reserved-probe and signing items in the build log

mrambossekandClaude Opus 5
2026-08-02 12:32:02 +02:00
-
a49bef5821
server: refuse unsigned releases and polluted reserved addresses

mrambossekandClaude Opus 5
2026-08-02 12:32:02 +02:00
-
20cfecf566
app: name what a VPN blocked, and prove v6 broken before saying so

mrambossekandClaude Opus 5
2026-08-02 12:31:44 +02:00
-
987b2ceb47
server: read the verdict from where the schema puts it

mrambossekandClaude Opus 5
2026-08-02 10:52:25 +02:00
-
d5b1bab577
app: stop the autorun upload pointing at a listener that is gone

mrambossekandClaude Opus 5
2026-08-02 10:36:49 +02:00
-
a17c3fd9e6
app: catch a search domain that swallows DNS queries

mrambossekandClaude Opus 5
2026-08-02 10:29:04 +02:00
-
cfa58e8d60
app: a DNS reply is not a DNS answer

mrambossekandClaude Opus 5
2026-08-02 10:10:36 +02:00
-
2ed4d1f478
Reach the server by address when its name will not resolve

mrambossekandClaude Opus 5
2026-08-02 10:03:14 +02:00
-
d65dbbc75a
app: tell a broken device resolver apart from a broken network

mrambossekandClaude Opus 5
2026-08-02 09:44:49 +02:00
-
40e76c52ca
adminui: show the enrolment link as a QR code

mrambossekandClaude Opus 5
2026-08-02 08:48:02 +02:00
-
5b02d40802
app: notice when Shizuku is authorised

mrambossekandClaude Opus 5
2026-08-02 08:37:45 +02:00
-
416b783647
app: lay the server facts out in real columns

mrambossekandClaude Opus 5
2026-08-02 08:24:00 +02:00
-
c4f2a10790
app: show what the server reports as facts, not as inputs

mrambossekandClaude Opus 5
2026-08-02 08:14:42 +02:00
-
fe4ec23ba1
app: show the server by the name its operator handed out

mrambossekandClaude Opus 5
2026-08-02 08:07:55 +02:00
-
33799b8135
adminui: the enrolment link was rendered as a dead anchor

mrambossekandClaude Opus 5
2026-08-02 08:04:56 +02:00
-
f6e093944c
build: document the poisoned build cache; compare like with like

mrambossekandClaude Opus 5
2026-08-02 08:01:58 +02:00
-
bc384531e6
app: enrollment feedback beside its own button

mrambossekandClaude Opus 5
2026-08-02 00:48:36 +02:00
-
082a2314ef
protocol: enrollment links carry the public name, not the endpoint

mrambossekandClaude Opus 5
2026-08-02 00:13:27 +02:00
-
a720e84411
app: one activity for deep links, and say what re-enrolling actually does

mrambossekandClaude Opus 5
2026-08-01 23:54:08 +02:00
-
30d9501507
app: confirm before an enrollment link replaces an existing one

mrambossekandClaude Opus 5
2026-08-01 23:42:37 +02:00
-
c639d58043
adminui: make the enrolment link followable on the phone being enrolled

mrambossekandClaude Opus 5
2026-08-01 23:39:55 +02:00
-
6d042a9d89
server: control plane shares port 443 with the admin UI

mrambossekandClaude Opus 5
2026-08-01 23:25:23 +02:00
-
4aaaa5f5d4
app: probe the server this device is enrolled with, not ours

mrambossekandClaude Opus 5
2026-08-01 23:20:52 +02:00
-
e0428b4c84
server: enroll against fmr.echo-lot.app; mint links from the CLI

mrambossekandClaude Opus 5
2026-08-01 23:16:23 +02:00
-
8001234e8b
adminui: render the self-test instead of dumping it

mrambossekandClaude Opus 5
2026-08-01 23:04:55 +02:00
-
332b6f3589
adminui: give the admin UI the instrument's own visual language

mrambossekandClaude Opus 5
2026-08-01 22:45:33 +02:00
-
621ee99b77
adminui: make the web UI usable on a phone

mrambossekandClaude Opus 5
2026-08-01 22:33:41 +02:00
-
89b084338f
docs: fmr is on .150/::150 only; ::2 removed and verified across a reboot

mrambossekandClaude Opus 5
2026-08-01 22:27:57 +02:00
-
23ed835e00
docs: record that a revived beacon belongs in the web UI, not its own listener

mrambossekandClaude Opus 5
2026-08-01 22:17:55 +02:00
-
5b5a54db7d
server: reserve measurement addresses; serve the UI on both families

mrambossekandClaude Opus 5
2026-08-01 22:17:29 +02:00
-
d9ee8bc2ae
app: don't report ICMPv6 silence that was never measured

mrambossekandClaude Opus 5
2026-08-01 21:32:34 +02:00
-
7a5004f293
server: a non-admin account can manage its own uploads

mrambossekandClaude Opus 5
2026-08-01 21:10:38 +02:00
-
7eaf0c4190
app: name the two half-configured IPv6 shapes, per network

mrambossekandClaude Opus 5
2026-08-01 20:42:03 +02:00
-
fec374abf5
findings: v6.broken claimed a cause it had no evidence for

mrambossekandClaude Fable 5
2026-08-01 20:16:37 +02:00
-
b5c8dda9a2
app: sign in to the server's identity provider

mrambossekandClaude Fable 5
2026-08-01 19:53:38 +02:00
-
4e6f2da3fb
runs: scope by account; app: the PKCE half of signing in
server-v0.9.1

mrambossekandClaude Fable 5
2026-08-01 19:46:32 +02:00
-
0eaba6150b
adminui: an admin interface, behind authentication without exception
server-v0.9.0

mrambossekandClaude Fable 5
2026-08-01 19:31:06 +02:00
-
7bb54e1ec8
docs: record the admin-listener exposure, and the encrypted-upload design

mrambossekandClaude Fable 5
2026-08-01 19:04:09 +02:00
-
c7750fbf0b
oidc: one verifier per issuer, because IdPs mint one per application
server-v0.8.3

mrambossekandClaude Fable 5
2026-08-01 18:47:34 +02:00
-
5d7f59a66a
acme: answer HTTP-01 from the server itself, on port 80
server-v0.8.2

mrambossekandClaude Fable 5
2026-08-01 18:16:09 +02:00
-
6afcb131ef
admin: terminate TLS in the binary, with a certificate that reloads itself

mrambossekandClaude Fable 5
2026-08-01 17:51:58 +02:00
-
cd187f9ef5
config: the OIDC client secret, admin TLS, and a stop on plaintext admin

mrambossekandClaude Fable 5
2026-08-01 17:49:26 +02:00
-
3a4cb1c327
cli: survive the --serve transition when nobody is watching
server-v0.8.1

mrambossekandClaude Fable 5
2026-08-01 17:44:33 +02:00
-
3cdbccee18
cli: serving is an explicit verb; no arguments prints usage
server-v0.8.0

mrambossekandClaude Fable 5
2026-08-01 17:42:20 +02:00
-
80d2092f1b
oidc: accept both the app's public client and the server's confidential one

mrambossekandClaude Fable 5
2026-08-01 17:31:33 +02:00
-
89a5ff9139
adminauth: a break-glass local admin alongside OIDC

mrambossekandClaude Fable 5
2026-08-01 17:12:54 +02:00
-
ce6d0c2f64
oidc: the server becomes a relying party, and devices can carry an account
server-v0.7.0

mrambossekandClaude Fable 5
2026-08-01 16:52:56 +02:00
-
57a5ef8796
app: the stable-pseudonym switch was live at a level that pseudonymizes nothing

mrambossekandClaude Fable 5
2026-08-01 16:16:36 +02:00
-
c19f382640
privacy: scrub identifiers inside raw shell output

mrambossekandClaude Fable 5
2026-08-01 16:12:13 +02:00
-
d04babff51
engine: live test for upstream throughput

mrambossekandClaude Fable 5
2026-08-01 15:56:51 +02:00
-
892e952a8e
throughput: the upstream direction, counted by the only party that can
server-v0.6.3

mrambossekandClaude Fable 5
2026-08-01 15:54:09 +02:00
-
8646bab52d
findings: adopt the registry in the app module; rename ipv6.* to v6.*

mrambossekandClaude Fable 5
2026-08-01 15:47:52 +02:00
-
6bba420845
app: the history row was naming the wrong document's privacy level

mrambossekandClaude Fable 5
2026-08-01 15:37:05 +02:00
-
ac6c653115
privacy: pseudonymize the whole ULA prefix, not just its tail

mrambossekandClaude Fable 5
2026-08-01 15:26:09 +02:00
-
305d21f8a7
app: insets on the two newer screens, and one source for the run count

mrambossekandClaude Fable 5
2026-08-01 15:20:57 +02:00
-
172afb421d
privacy: fix a real leak - global IPv6 addresses were uploaded verbatim

mrambossekandClaude Fable 5
2026-08-01 14:45:52 +02:00
-
e7afc2210f
findings: a registry, because the codes had already drifted

mrambossekandClaude Fable 5
2026-08-01 14:25:54 +02:00
-
f7701c2d2f
engine: throughput is opt-in in the run config; document the work

mrambossekandClaude Fable 5
2026-08-01 14:14:20 +02:00
-
3c9af04e6f
grant: replace the rate check with a token bucket
server-v0.6.2

mrambossekandClaude Fable 5
2026-08-01 14:10:30 +02:00
-
3333788d9e
throughput: paced downstream rate, with the qualifier that makes it honest
server-v0.6.1

mrambossekandClaude Fable 5
2026-08-01 14:05:23 +02:00
-
35744c609e
docs: record frag_send and the current testing state

mrambossekandClaude Fable 5
2026-08-01 13:49:43 +02:00
-
a7dccf7da2
frag_send: crafted IP fragments, so ordering can be tested and not just delivery
server-v0.6.0

mrambossekandClaude Fable 5
2026-08-01 13:45:09 +02:00
-
4ffa6e4ae2
engine: split packet loss by direction using the server's observations

mrambossekandClaude Fable 5
2026-08-01 13:09:59 +02:00
-
3e7e3b8d33
scripts: one command to mint an enrollment link, QR included

mrambossekandClaude Fable 5
2026-08-01 12:12:28 +02:00
-
199807a8c9
docs: enrollment link encoding rules in the spec, session log in build-status

mrambossekandClaude Fable 5
2026-08-01 12:11:37 +02:00
-
5291bdd045
enrollment: actually emit enroll_uri from the admin endpoint
server-v0.5.4

mrambossekandClaude Fable 5
2026-08-01 12:08:11 +02:00
-
fe3658e009
chore: ignore the Kotlin compiler's .kotlin scratch directory

mrambossekandClaude Fable 5
2026-08-01 12:06:47 +02:00
-
ad85f3bfcd
enrollment: the server mints the §2.1 bootstrap link, the app consumes it
server-v0.5.3

mrambossekandClaude Fable 5
2026-08-01 12:06:22 +02:00
-
8166611af1
docs: record the compatibility-window work in build-status

mrambossekandClaude Fable 5
2026-08-01 11:43:02 +02:00
-
33a6acb0bf
compat: stop mangling refusal messages with HTML escapes
server-v0.5.2

mrambossekandClaude Fable 5
2026-08-01 11:41:00 +02:00
-
9d6572bc33
compat: fix the too-new message's grammar, add a live gate test
server-v0.5.1

mrambossekandClaude Fable 5
2026-08-01 11:38:45 +02:00
-
0c5b021b63
compat: SemVer version windows between app and server
server-v0.5.0

mrambossekandClaude Fable 5
2026-08-01 11:36:34 +02:00
-
277e33da75
chore: drop core-measurement/bin from the index too

mrambossekandClaude Fable 5
2026-08-01 10:54:48 +02:00
-
14e5fad1b2
engine: downstream MTU and downstream train in the measurement document

mrambossekandClaude Fable 5
2026-08-01 10:54:38 +02:00
-
ce1aaa332a
server: send granted traffic from the address the session actually used
server-v0.4.2

mrambossekandClaude Fable 5
2026-08-01 10:45:43 +02:00
-
7a94c9a3d7
chore: ignore the VSCodium Java extension's bin/ output
server-v0.4.1

mrambossekandClaude Fable 5
2026-08-01 10:26:30 +02:00
-
2521d39989
server: DF-mode big_send + uploaded-run storage with an operator policy

mrambossekandClaude Fable 5
2026-08-01 10:26:19 +02:00
-
7e1015c211
server: §3.4 asymmetric grants + downtrain and big_send actions
server-v0.4.0

mrambossekandClaude Opus 5
2026-08-01 10:09:13 +02:00
-
c75a9f5eb7
app: accurate Shizuku handoff — name the steps, add developer-options shortcut

mrambossekandClaude Opus 5
2026-08-01 10:03:03 +02:00
-
1d9e2063bf
app: make the Shizuku banner actionable (open Shizuku / request permission)

mrambossekandClaude Opus 5
2026-08-01 09:58:39 +02:00
-
d7dda40e4e
app: tell the user before the run when Shizuku is installed but not started

mrambossekandClaude Opus 5
2026-08-01 09:51:01 +02:00
-
217818f7b3
app: progress bar with ETA, cancel button, and cutout-safe layout

mrambossekandClaude Opus 5
2026-08-01 09:48:18 +02:00
-
2e34463c0a
app: router identification verified on-device — named a MikroTik RouterOS 7.23.2

mrambossekandClaude Opus 5
2026-08-01 09:42:06 +02:00
-
38f8036252
app: link.ra_source router identification + brand icons + DEV build variant

mrambossekandClaude Opus 5
2026-08-01 09:35:54 +02:00