Skip to content

Better Fabric Console v2#143

Draft
jpenilla wants to merge 56 commits intomasterfrom
sock
Draft

Better Fabric Console v2#143
jpenilla wants to merge 56 commits intomasterfrom
sock

Conversation

@jpenilla
Copy link
Owner

@jpenilla jpenilla commented Feb 5, 2026

  - remove unused COMMAND_RESPONSE protocol type/payload/serializer mappings
  - switch InteractiveConsoleHooks.CommandExecutor to void and stop replying from CommandHandler
  - update FabricCommandExecutor to match fire-and-forget execution
  - treat only EOFException as clean frame close in FrameCodec
  - make SocketTransport request/response sends fail fast when not connected (avoid timeout on unsent requests)
  - drop unreachable message == null path in performHandshake()
  - keep timeout behavior as immediate close (no extra protocol reply attempt)
…sport delay simulation

- make remote highlighting non-blocking with prefix-cache fallback and redraw coordination
- avoid enter latency by skipping remote parse on ACCEPT_LINE
- add TransportDelaySimulator and wire SocketTransport to queued delay/jitter simulation
- expose client test delay JVM args defaults
- adjust socket protocol timing constants for remote use
…uffering races

- replace Selector-based timeout logic in TestClient with TimedRead over framed blocking reads
- avoid channel-readiness vs buffered-stream desync that caused intermittent null reads
- add explicit non-null assertion before reading initial interactivity payload in interactivityAndClientReadyFlow
…artup

- add BetterFabricConsoleAppender as a Log4j plugin appender and remove runtime root-logger appender patching
- add bundled better-fabric-console-default-log4j2.xml and extract/ reconfigure it from prelaunch
- add EndermuxStripAnsi pattern converter and wire it into file/gui/tracy layouts
- move Endermux ownership into ConsoleState, split startup (start) from interactivity enablement
- rename config section consoleSocket -> endermux and migrate config path into a dedicated mod config dir
- bump minecraft/fabric-api versions and add Log4j annotation processor dependencies

closes #144
@jpenilla jpenilla changed the title Endermux protocol, client, server, and Fabric implementation Better Fabric Console v2 Feb 14, 2026
@jpenilla jpenilla mentioned this pull request Feb 14, 2026
Some metadata is currently lost over endermux, needs work to solve (compare to Paper, iirc we had some code there to forward extended trace info)
Log4j 2.25.0 changed how this works...
…dering

  - pass forwarding appender layout directly to RemoteLogForwarder
  - update default log4j config to use EndermuxRichMessage fallback patterns
  - replace old ThreadContext JSON hook in MinecraftServerMixin
  - push rich component scope around sendSystemMessage log calls
  - use MixinExtras @share LocalRef for per-invocation scope lifecycle
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