docs: beginning-contributor documentation (architecture, dev env, agents, CONTRIBUTING)#27
Merged
Merged
Conversation
… agents, contributing) Adds onboarding docs (issue #24) so a newcomer can go zero -> building the launcher -> assigned issue -> PR using only the docs. All anchors were verified against the code (module/function names, version constants, env vars, paths, CI gates). The launcher has no Lua runtime, so there is no scripting-runtime doc (unlike the server). - docs/architecture.md — the launcher pipeline (detect -> check version -> patch -> WebView login -> launch), the module map (app/servers/patcher/patch_format/login/ crypto/launcher/platform/config), the ffxiv://login_success?sessionId WebView handshake (run as a --login-webview subprocess), the Blowfish launch-arg encryption, the PE lobby-hostname patch, and the per-OS launch backends — with a flow diagram and the client<->server handoff (game connects to lobby 54994 / world 54992 / map 1989). - docs/dev-environment.md — per-OS build/run (incl. the Windows i686 target + Linux GUI/WebView deps), the env_logger "info" default + RUST_LOG examples, the Wine log (<data_dir>/logs/wine.log) + WINEDEBUG/winsock-trace toggles, where launcher state lives (directories ProjectDirs) + how to reset it, and the end-to-end loop against a local Garlemald-Server. - docs/agents.md + root CLAUDE.md + AGENTS.md — running a Claude / OpenAI coding agent against an issue. The two agent files are twins capturing build/run, the module map, the AGPL header (verbatim), the develop -> PR flow, the fmt/clippy/build/test gates, and the cross-platform (Wine/WebView) caveat. - CONTRIBUTING.md — request collaborator + board access, pick a Ready issue, fork and branch off develop, keep CI green, PR into develop. - README.md — new Documentation + Contributing sections linking all of the above. Closes #24. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #24.
The launcher counterpart of the Garlemald-Server contributor docs. Adds a beginner-friendly doc set so someone can go zero → building the launcher → assigned issue → PR using only the docs. Every anchor (module/function names, version constants, paths, env vars, CI commands) was mined from and verified against the current code.
What's added
docs/architecture.mddocs/dev-environment.mdRUST_LOG/env_logger+ Wine-log toggles, launcher-state locations + reset, running against a local Garlemald-Serverdocs/agents.md+CLAUDE.md+AGENTS.mdCONTRIBUTING.mddevelopbranch → PR intodevelopREADME.md(No scripting-runtime doc — the launcher has no Lua runtime, unlike the server.)
Acceptance criteria
docs/architecture.md— launcher pipeline, module responsibilities, the WebView login + patch/launch flow, and a flow diagram.docs/dev-environment.md— build/run (GUI backends),RUST_LOG/env_logger+ Wine-log toggles, launcher-state locations + reset, and running against a local Garlemald-Server.docs/agents.md+ rootCLAUDE.md+ rootAGENTS.md.CONTRIBUTING.md— collaborator request, board Ready → In progress, fork +developbranch, PR into upstreamdevelop.README.md.Accuracy notes (where the docs correct stale assumptions)
PATCH_URL_BASE = http://ffxivpatches.s3.amazonaws.com/), CRC32-verified, with a local-directory option — not "from the server/CDN".src/servers/default_servers.toml(ServerDefinitions::load_default); the selected server is saved inpreferences.toml. Aservers.xmlconfig path is defined insrc/config/paths.rsbut not yet wired up — documented accurately rather than implying it's the live store.--login-webviewsubprocess that reports thesessionIdback over stdout sentinels (SESSION_ID=/LOGIN_CANCELLED/LOGIN_ERROR=).Validation
servers.xmlstore, and a gate-list omission in an example) are fixed in this PR.architecture.md,CLAUDE.md,AGENTS.md, andCONTRIBUTING.mdverified accurate.fmt/clippy/build/testgates are unaffected. (Per the AGPL-header rule, markdown docs carry no header.)🤖 Generated with Claude Code