-
0414913bc7
fix(api): serialise RedeemPlayerBindCode — concurrent redeem 500s become clean 400s/idempotent converges
Lemon-miaow
2026-09-22 20:08:38 +08:00
-
dcc3b7403e
fix(api): fill ListPendingOpLogins username/created_at (PG lagged the interface+fake)
Lemon-miaow
2026-09-22 20:04:32 +08:00
-
52549f7b3a
fix(api): ConsumeLoginEmailOTP honesty — wrong/expired/consumed codes are ErrOTPInvalid 400, not a 500
Lemon-miaow
2026-09-22 19:51:04 +08:00
-
9309ff5a7f
chore: apply the missed S1016 conversions in handlers_users
Lemon-miaow
2026-09-22 17:57:03 +08:00
-
e690b058db
fix(restore): wait for the tracking finalizer before recreating
Lemon-miaow
2026-09-22 17:54:01 +08:00
-
90ccbfede4
fix(restore): replace a finished Job so retries enqueue; replicate felis-config
Lemon-miaow
2026-09-22 17:50:04 +08:00
-
fd0794d04d
chore(deps): pgx v5.9.2, x/net v0.55.0, x/text v0.39.0
Lemon-miaow
2026-09-22 17:50:04 +08:00
-
a05edc934c
chore: gofmt the tree, clear staticcheck, add a CI gofmt gate
Lemon-miaow
2026-09-22 17:49:54 +08:00
-
a56c326518
chore: stop tracking the docs/changes ledger
flyemoji
2026-09-22 15:02:47 +09:00
-
7b5b28c587
fix(bootstrap): keep the nano build toolchain under /opt/felis
flyemoji
2026-09-22 14:59:39 +09:00
-
0faec2b02a
fix(bootstrap): open the nano port to the proxy alone
flyemoji
2026-09-22 14:51:49 +09:00
-
99c31c1d4e
fix(config): refuse plaintext auth-source urls to public hosts
flyemoji
2026-09-22 14:24:41 +09:00
-
e9f74f3f0f
fix(nano): stop trusting an expired free name while mojang is failing
flyemoji
2026-09-22 14:17:53 +09:00
-
fa7b54f5ab
fix(bootstrap): refuse an unbracketed ipv6 nano listen address
flyemoji
2026-09-22 14:08:11 +09:00
-
928a1fdfff
docs(bootstrap): credit velocity, not authlib, with the hasjoined call
flyemoji
2026-09-22 13:55:12 +09:00
-
b58c20311c
test(bootstrap): pin the nano listen default to loopback
flyemoji
2026-09-22 13:54:31 +09:00
-
cf65ffdae5
fix(bootstrap): open up a nano-only config dir an older run left 0750
flyemoji
2026-09-22 13:54:18 +09:00
-
2458ee1722
docs(bootstrap): say auth_source tags are permanent and order is trust
flyemoji
2026-09-22 13:53:15 +09:00
-
6794e66c4d
fix(bootstrap): fail a tokenless private clone instead of prompting
flyemoji
2026-09-22 13:53:03 +09:00
-
34f73ba19f
fix(bootstrap): detect a missing terminal by opening /dev/tty
flyemoji
2026-09-22 13:52:51 +09:00
-
0758b9c5d7
docs(bootstrap): pass tunables on the sudo line, not by export
flyemoji
2026-09-22 13:52:40 +09:00
-
02c079c893
fix(bootstrap): verify the go toolchain tarball against a pinned digest
flyemoji
2026-09-22 13:52:29 +09:00
-
3b0fc7a3e0
fix(bootstrap): print the address nano binds in the install summary
flyemoji
2026-09-22 13:52:18 +09:00
-
404d1172a6
fix(bootstrap): refuse a nano listen address without a usable port
flyemoji
2026-09-22 13:52:08 +09:00
-
3918a4b11a
fix(bootstrap): install only the full control plane under felis setup
flyemoji
2026-09-22 13:52:00 +09:00
-
515c4a6496
fix(bootstrap): keep a nano host's listen address and mode on re-run
flyemoji
2026-09-22 13:51:52 +09:00
-
17b4396460
fix(bootstrap): carry auth_source tables with spaced or quoted headers
flyemoji
2026-09-22 13:51:45 +09:00
-
c2a5645c55
fix: keep internal section numbers out of runtime messages
flyemoji
2026-09-22 13:44:38 +09:00
-
9ee8c48fff
docs(openapi): list every answer hasjoined gives
flyemoji
2026-09-22 13:43:08 +09:00
-
1ebd73a309
docs(nano): describe the hasjoined path as it works
flyemoji
2026-09-22 13:42:03 +09:00
-
59ec23d4a8
test(nano): cover the nano delivery path and its loopback default
flyemoji
2026-09-22 13:37:51 +09:00
-
e0ad78af98
test(config): make the identity-key test fail when the key is accepted
flyemoji
2026-09-22 13:36:29 +09:00
-
30b4e1dfb2
test(nano): cover the bar-list error, bad identity id and ip relay
flyemoji
2026-09-22 13:35:50 +09:00
-
942e9a5ff8
test(nano): cover the premium-name cache rules
flyemoji
2026-09-22 13:34:43 +09:00
-
3f7274d29f
test(nano): pin the auth namespace and one rewritten uuid as literals
flyemoji
2026-09-22 13:32:45 +09:00
-
a7fe525bfc
test(api): keep the package's tests off the live mojang profile api
flyemoji
2026-09-22 13:31:53 +09:00
-
8e9c8ca4e6
fix(nano): say that [server] listen is ignored instead of defaulting it
flyemoji
2026-09-22 13:30:23 +09:00
-
1d6c73007e
fix(nano): drain in-flight logins on shutdown
flyemoji
2026-09-22 13:28:59 +09:00
-
fa3eda5228
fix(nano): quote and cap the request log line
flyemoji
2026-09-22 13:27:28 +09:00
-
1905cac950
fix(config): refuse auth-source tags padded with whitespace
flyemoji
2026-09-22 13:24:23 +09:00
-
72a2750461
fix(config): refuse mojang as an auth-source tag
flyemoji
2026-09-22 13:23:37 +09:00
-
2c74080b78
fix(config): reject auth-source urls the resolver cannot query
flyemoji
2026-09-22 13:23:02 +09:00
-
3338d6f0fe
fix(nano): drop oversized hasJoined parameters before asking sources
flyemoji
2026-09-22 13:21:43 +09:00
-
a4779186a4
fix(nano): refuse hasJoined requests that declare a body
flyemoji
2026-09-22 13:19:55 +09:00
-
ff81295aa9
fix(nano): report failing sources instead of treating them as a no
flyemoji
2026-09-22 13:18:33 +09:00
-
a0f54df2a6
fix(bootstrap): fail the nano install when the unit does not stay up
flyemoji
2026-09-22 13:05:42 +09:00
-
26f685be0e
fix(bootstrap): create the nano config dir world-searchable
flyemoji
2026-09-22 13:04:34 +09:00
-
1dd62a9bdc
fix(nano): cap upstream response headers at 16 KiB
flyemoji
2026-09-22 13:02:48 +09:00
-
2180e77cf5
chore: drop tool-name markers from source comments
flyemoji
2026-09-22 12:57:19 +09:00
-
4e98ae6e56
fix(config): reject auth-source tags that contain a colon
flyemoji
2026-09-22 12:53:35 +09:00
-
1976fca809
fix(nano): always relay properties as an array
flyemoji
2026-09-22 12:52:04 +09:00
-
28d3638952
fix(nano): stop following redirects from upstream Yggdrasil roots
flyemoji
2026-09-22 12:50:56 +09:00
-
07bafebf0d
fix(bootstrap): keep the operator's auth sources across re-runs
flyemoji
2026-09-22 12:49:25 +09:00
-
8fe255e38f
fix(api): relay Mojang logins when no auth source is configured
flyemoji
2026-09-22 12:46:00 +09:00
-
800a9042a1
test: use placeholder domains in setup and system-server tests
flyemoji
2026-09-22 12:43:54 +09:00
-
d9246ddae6
feat(bootstrap): verify Paper and Velocity jars against Fill's digest
flyemoji
2026-08-04 17:36:47 +09:00
-
3f2b28d0ec
fix(bootstrap): ship deploy/paper in the embedded game-stack tar
flyemoji
2026-08-04 16:34:09 +09:00
-
587f183191
Merge pull request #19 from MliroLirrorsIngenuity/chore/issue-sweep
flyemoji
2026-07-29 01:52:15 +09:00
-
-
503240db7b
ci: stop running the whole suite twice on every pull-request push
chore/issue-sweep
flyemoji
2026-07-28 18:20:40 +09:00
-
584d31fc49
feat(bootstrap): refuse to install an unverified Velocity fork jar
flyemoji
2026-07-28 18:01:39 +09:00
-
4f5014d033
feat(bootstrap): make the legacy-forwarding backend list overridable
flyemoji
2026-07-28 17:27:02 +09:00
-
4e5a809dad
docs(nano): drop the promise of a
felis setup --nano that should not exist
flyemoji
2026-07-28 17:27:02 +09:00
-
afdbfac7a8
docs: index the deferred integration seams and correct two stale markers
flyemoji
2026-07-28 17:27:01 +09:00
-
23792d6251
fix(crd): remove spec.storage.retainOnDelete rather than leave it inert
flyemoji
2026-07-28 17:27:01 +09:00
-
417769407f
ci: run the checks on push and pull request
flyemoji
2026-07-28 17:27:00 +09:00
-
82a1275fcf
docs(plugins): say which plugin jars an install actually produces
flyemoji
2026-07-28 14:33:37 +09:00
-
3af5cc360c
docs(troubleshooting): correct four fields the runbook documents as inert
flyemoji
2026-07-28 13:49:07 +09:00
-
71e1664c36
build: pin line endings to LF so the embedded bootstrap.sh ships without CRs
flyemoji
2026-07-28 12:58:46 +09:00
-
-
5d4f3063a9
feat(operator): make any Paper image joinable behind the forwarding proxy
flyemoji
2026-07-28 07:45:53 +09:00
-
0798f903b0
feat(bootstrap): allow the Felis-Legacy Velocity fork to be installed as the proxy
flyemoji
2026-07-23 03:31:08 +09:00
-
c9f3aa68f6
fix(velocity): stop the lobby tile failing for players already in the lobby
flyemoji
2026-07-23 00:00:59 +09:00
-
8480387c50
fix(velocity): pin ViaRewind 4.1.3, the release that matches ViaVersion 5.11.0
flyemoji
2026-07-22 18:10:53 +09:00
-
f532684249
feat(velocity): let 1.8.x players through the modern-forwarding proxy
flyemoji
2026-07-22 17:03:01 +09:00
-
0e69ade1b3
docs(license): state AGPL-3.0 in the READMEs, matching the LICENSE file
flyemoji
2026-07-22 15:01:25 +09:00
-
37ab87f07c
docs(mail): say plainly what a green SMTP self-test does not prove
flyemoji
2026-07-22 14:40:58 +09:00
-
a8c4077202
fix(api): log the panic value and stack behind the opaque 500
flyemoji
2026-07-22 14:40:42 +09:00
-
c4c964578e
fix(setup): stop the forced-onboarding gate trapping players who have no email
flyemoji
2026-07-22 14:40:28 +09:00
-
60b0ec97ac
feat(invite): let a player bring a friend to the server they're on
flyemoji
2026-07-22 14:32:51 +09:00
-
a0064adfdd
fix(setup): stop the login gate sending players to the old console after a re-domain
flyemoji
2026-07-21 00:47:04 +09:00
-
80a29ba653
feat(lobby): ship LuckPerms in the lobby image so the panel's permission controls work
flyemoji
2026-07-21 00:39:46 +09:00
-
694e3cb800
feat(rcon): provision per-server RCON so the console, player list and permissions work
flyemoji
2026-07-21 00:12:37 +09:00
-
b3989fa4af
fix(mail): prove SMTP deliverability before saving, and stop losing the relay
flyemoji
2026-07-21 00:11:40 +09:00
-
32be3e17b7
docs(readme): give an install command that works against a private repo
flyemoji
2026-07-20 20:25:51 +09:00
-
ecbeb20761
fix(bootstrap): reuse the installed root domain instead of re-deriving it
flyemoji
2026-07-20 20:25:33 +09:00
-
f7815629bf
fix(update): say that setup cannot move felis-api to a newer release
flyemoji
2026-07-20 19:53:55 +09:00
-
8b25114fb4
fix(update): say that setup cannot move felis-api to a newer release
flyemoji
2026-07-20 19:53:55 +09:00
-
8675cda001
fix(setup): refuse --dev rather than silently installing the release channel
flyemoji
2026-07-20 19:53:32 +09:00
-
e5ea51c0db
fix(bootstrap): wrap the downloaded binary in the same base CI ships
flyemoji
2026-07-20 19:53:04 +09:00
-
646d514a65
test(updates): pin the ordering of a dev build's own version stamp
flyemoji
2026-07-20 19:05:19 +09:00
-
d9ef5e4ffd
chore(deps): tidy the module files
flyemoji
2026-07-20 18:53:25 +09:00
-
c4300cb005
feat(updater): authenticate GitHub polling and track the real release repo
flyemoji
2026-07-20 18:53:12 +09:00
-
659c8e5e9f
feat(bootstrap): install the published release build instead of compiling on the host
flyemoji
2026-07-20 18:53:01 +09:00
-
d146f1ccd7
fix(bootstrap): keep the install alive on a host with only felis-api
flyemoji
2026-07-20 18:30:19 +09:00
-
fe4c92c1c5
feat(files): add the server file editor
flyemoji
2026-07-20 14:33:29 +09:00
-
05cb8f6320
feat(cli): report component updates and make the router a data table
flyemoji
2026-07-20 14:32:58 +09:00
-
f36d5b87f6
feat(images): mark platform-curated images and seed the lobby
flyemoji
2026-07-20 14:31:14 +09:00
-
d26acc20ae
feat(api): let in-game staff manage any server without claiming it
flyemoji
2026-07-20 11:10:23 +09:00
-
f0b79e9edd
feat(mail): deliver email one-time codes over SMTP and add the setup email screen
flyemoji
2026-07-20 10:24:52 +09:00
-
7860152f57
feat(auth)!: go fully passwordless and fix cross-check review findings
flyemoji
2026-07-20 04:47:32 +09:00
-
c96b36a41f
fix(bootstrap): retry transient Fill failures when resolving build jars
flyemoji
2026-07-19 19:21:26 +09:00