Skip to content

docs: beginning-contributor documentation (architecture, dev env, agents, CONTRIBUTING)#27

Merged
swstegall merged 1 commit into
developfrom
docs/contributor-onboarding
Jun 6, 2026
Merged

docs: beginning-contributor documentation (architecture, dev env, agents, CONTRIBUTING)#27
swstegall merged 1 commit into
developfrom
docs/contributor-onboarding

Conversation

@swstegall

Copy link
Copy Markdown
Owner

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

File Deliverable
docs/architecture.md 1 — launcher pipeline, module map, the WebView login + patch/launch client↔server flow, flow diagram
docs/dev-environment.md 2 — per-OS build/run + GUI backends, RUST_LOG/env_logger + Wine-log toggles, launcher-state locations + reset, running against a local Garlemald-Server
docs/agents.md + CLAUDE.md + AGENTS.md 3 — AI-agent setup (Claude + OpenAI) and the in-repo agent guides
CONTRIBUTING.md 4 — collaborator/board request → Ready→In progress → fork+develop branch → PR into develop
README.md new Documentation + Contributing sections linking all of the above

(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 + root CLAUDE.md + root AGENTS.md.
  • CONTRIBUTING.md — collaborator request, board Ready → In progress, fork + develop branch, PR into upstream develop.
  • All new docs are linked from README.md.

Accuracy notes (where the docs correct stale assumptions)

  • Patches come from a fixed S3 host (PATCH_URL_BASE = http://ffxivpatches.s3.amazonaws.com/), CRC32-verified, with a local-directory option — not "from the server/CDN".
  • The server list is the embedded src/servers/default_servers.toml (ServerDefinitions::load_default); the selected server is saved in preferences.toml. A servers.xml config path is defined in src/config/paths.rs but not yet wired up — documented accurately rather than implying it's the live store.
  • The login WebView runs as a --login-webview subprocess that reports the sessionId back over stdout sentinels (SESSION_ID= / LOGIN_CANCELLED / LOGIN_ERROR=).

Validation

  • All 67 internal doc links resolve.
  • An adversarial multi-agent fact-check read each doc against the code; the two concrete discrepancies it found (the servers.xml store, and a gate-list omission in an example) are fixed in this PR. architecture.md, CLAUDE.md, AGENTS.md, and CONTRIBUTING.md verified accurate.
  • Markdown-only — no Rust touched, so the cross-platform fmt/clippy/build/test gates are unaffected. (Per the AGPL-header rule, markdown docs carry no header.)

The companion site change (garlemald-software-site) surfaces these under the scalable per-project Contributing section; it fetches them from develop, so they appear there once this merges.

🤖 Generated with Claude Code

… 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>
@swstegall
swstegall merged commit a07f21f into develop Jun 6, 2026
6 checks passed
@swstegall
swstegall deleted the docs/contributor-onboarding branch June 6, 2026 22:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant