JonKazama-Hellion 90803bcd3c feat(bootstrap): wire DI host, hosted services, and plugin entry
The plugin is now loadable. Dalamud injects five services into the Plugin
constructor (Lightless pattern), the constructor builds the generic-host
container synchronously, and PluginLifecycle drives StartAsync from
LoadAsync. Module 02+ extends PluginHostFactory; this file set stays put.

- PluginHostDependencies (record): bundles the five Dalamud services
  v0.1.0 needs (IDalamudPluginInterface, IPluginLog, IDataManager,
  IFramework, ISelfTestRegistry).
- PluginHostFactory.Build: HostBuilder + AddDalamudLogging + the four
  service blocks (Dalamud services, Anvil singletons, ISelfTestStep
  collection, IHostedService init chain). Every registration uses an
  explicit factory lambda - the default activator only sees public
  ctors and Anvil follows the internal-sealed convention.
- PluginLifecycle (IAsyncDisposable): owns Host.StartAsync, marshals the
  Host.Dispose call onto the framework thread, idempotency guard via
  Interlocked, ExceptionDispatchInfo.Capture preserves the original
  load-throw stack when a failure cascades.
- Plugin (IAsyncDalamudPlugin): constructor injection of the five
  Dalamud services, builds the dependencies record, kicks off the host
  build, hands DisposeAsync to the lifecycle.
- Hosting/RecipeDataLoadHostedService: dispatches LuminaRecipeAdapter
  .LoadInternal onto the framework thread on StartAsync. Lumina sheet
  reads have no documented thread safety; conservative default.
- Hosting/SelfTestRegistrationHostedService: collects every
  ISelfTestStep registration from DI and hands them to
  ISelfTestRegistry.RegisterTestSteps once the host is up.
- SelfTest/RecipeDataAdapterLoadStep: nine pass criteria per spec §4.1
  (IsLoaded, RecipeCount > 0, ActionCount in 30..80, BuffsByKind.Count
  == 14, ConditionsByKind.Count == 11, Foods >= 30, Medicines >= 5,
  BasicSynthesis.RowIdByClassJob[8] == 100001, Cosmic-surface
  silent-degradation warning). Returns Waiting while the catalog is
  still loading.
- Infrastructure/Logging trio: DalamudLogger maps
  Microsoft.Extensions.Logging levels to IPluginLog, the provider
  emits an Anvil bootstrap banner with a Forge-Bronze fingerprint on
  ctor, the extension wires the provider into the ILoggingBuilder via
  TryAddEnumerable.
2026-05-27 21:58:38 +02:00
2026-05-27 19:16:36 +02:00
2026-05-27 19:16:36 +02:00
2026-05-27 19:16:36 +02:00
2026-05-27 19:16:36 +02:00

Anvil

An independent Hellion Forge plugin for FINAL FANTASY XIV crafting.

Anvil is a privacy-focused, zero-telemetry crafting helper for Dalamud (API level 15+). It provides a crafting simulator, a solver wrapper, recipe bookmarks, and an opt-in Auto-Craft hook.

Status: v0.1.0 — early development. The crafting simulator, solver wrapper, macro engine, hooks, IPC provider, bookmark store, and UI layers are being built module-by-module under the Anvil clean-room pipeline. The Recipe Data layer (module 01) is the first ground-up piece.

Features (planned)

  • Crafting Simulator — state machine for FFXIV crafting steps, conditions, buffs, and actions, with full Cosmic Exploration schema support.
  • Solver Wrapper — bridge to the Raphael Rust solver (bundled binary).
  • Recipe Note Overlay — anchors next to FFXIV's recipe-note addon.
  • Synth Helper Overlay — live next-action hint during synthesis.
  • Macro Editor — compose, replay, export to FFXIV macros and MacroMate.
  • Recipe Bookmarks — local list with notes, tags, and quick-open.
  • Auto-Craft (opt-in) — UseAction hook with explicit warning modal.
  • IPC Provider — exposes theme, macros, and crafting status to other Hellion Forge plugins.
  • Bilingual EN/DE UI with Hellion Anvil-Boutique styling (Forge-Bronze on dark surface).

Privacy

Zero telemetry. No network calls. Everything stays on your machine. See PRIVACY.md for the full statement.

Attribution

Anvil is a clean-room re-implementation, not a fork. The plugin is inspired by Craftimizer by Asriel Camora (MIT) — see NOTICE.md for the goodwill attribution.

License

MIT — Copyright (c) 2026 Hellion Online Media.

Install

The custom Dalamud repository URL for Anvil is:

https://gitea.hellion-forge.cloud/JonKazama-Hellion/Anvil/raw/branch/main/repo.json

Add this URL under Dalamud → Settings → Experimental → Custom Plugin Repositories, then install Anvil from the plugin installer.

S
Description
No description provided
Readme MIT 156 KiB
Languages
C# 97%
Shell 3%