Skip to content

Better Fabric Console v2#143

Draft
jpenilla wants to merge 58 commits into
masterfrom
sock
Draft

Better Fabric Console v2#143
jpenilla wants to merge 58 commits into
masterfrom
sock

Conversation

@jpenilla
Copy link
Copy Markdown
Owner

@jpenilla jpenilla commented Feb 5, 2026

@jpenilla jpenilla force-pushed the sock branch 2 times, most recently from 595b480 to 3b60f3f Compare February 8, 2026 22:02
@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
jpenilla added 21 commits April 16, 2026 11:46
This commit was made with heavy assistance from Opencode (Claude Sonnet/Opus 4.5, Codex 5.2)
  - 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)
jpenilla added 25 commits April 16, 2026 11:46
…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
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
@jpenilla jpenilla mentioned this pull request Apr 16, 2026
@jpenilla jpenilla mentioned this pull request Apr 29, 2026
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