Commit Graph

482 Commits

Author SHA1 Message Date
JonKazama-Hellion 960114c142 Force -p:Platform=x64 in workflow dotnet build steps
Security / scan (push) Successful in 17s
Build / Build (Release) (push) Successful in 26s
Release / Build and attach release ZIP (push) Successful in 34s
Project-level dotnet build defaults to AnyCPU and emits to
Craftimizer/bin/Release/, even though the csproj declares
<Platforms>x64</Platforms> and <RuntimeIdentifier>win-x64</RuntimeIdentifier>.
That mismatch silently broke the first v0.1.0 release run
(/JonKazama-Hellion/Craftimizer/actions/runs/387): build succeeded
but 'find Craftimizer/bin/x64/Release -name latest.zip' returned
'No such file or directory' so the release-action got nothing to attach.

Local builds via 'dotnet build Craftimizer.sln' work because solution-
level builds inherit the per-project Platforms list as the default,
which is a different code path from project-level builds.

Add -p:Platform=x64 to both build.yml and release.yml dotnet steps so
the CI build agrees with the find paths in the same workflow.

After this push, the v0.1.0 release can be re-triggered via Gitea's
workflow_dispatch on the tag (Actions UI -> Release -> Run workflow,
pick v0.1.0 from the Ref dropdown). The tag itself stays unchanged.
v0.1.0
2026-05-26 20:54:26 +02:00
JonKazama-Hellion 356da24feb Extend .gitattributes: source files to eol=lf
Security / scan (push) Successful in 17s
Build / Build (Release) (push) Successful in 28s
Release / Build and attach release ZIP (push) Failing after 29s
csharpier check fails with 'different line endings than formatting would
result in' when .cs files are CRLF. Linux dev box and Gitea Actions
runners both work with LF natively. Extend the LF-override to .cs,
.csproj, .sln, .yml, .yaml, .json, .md.

Asriel's original CRLF default still applies to file types not listed,
to keep the diff against upstream minimal.
2026-05-26 20:25:32 +02:00
JonKazama-Hellion c7917afd67 Add LF override for shell scripts in .gitattributes
Upstream defaults all text files to CRLF (Windows-only dev). On Linux,
bash refuses to execute shell scripts with CRLF line endings, which
blocked the v0.1.0 pre-push hook with 'env: »bash\r«: nicht gefunden'.

Override the default for *.sh, .githooks/*, and scripts/* to eol=lf
so the hook + preflight runs cleanly on both Linux and Windows.
2026-05-26 20:24:02 +02:00
JonKazama-Hellion 862fb4782c Merge branch 'feature/v0.1.0-release-pipeline' 2026-05-26 20:22:05 +02:00
JonKazama-Hellion 614e97abf7 Add release pipeline, custom repo manifest, and pre-push linter
First release-ready cycle for Forgeimizer. Bumps the version to 0.1.0,
introduces the Hellion Forge custom repo distribution path, and wires
up the HellionChat-style pre-push lint gate.

Version:
- csproj <Version> 2.9.1.1 → 0.1.0. Forgeimizer adopts its own SemVer
  line starting at 0.1.0; the upstream Craftimizer 2.9.1.1 base is
  documented in the manifest description, CHANGELOG, README, and
  NOTICE for each release.

Release pipeline (.gitea/workflows/):
- build.yml on push/PR/dispatch: downloads Dalamud staging, dotnet
  restore + build of Craftimizer/Craftimizer.csproj. Fails the workflow
  if the plugin no longer compiles against current SDK 15.
- release.yml on v*-tag + dispatch: builds Release, locates the
  packager-produced latest.zip under Craftimizer/bin/x64/Release/,
  extracts the matching ## vX.Y.Z block from CHANGELOG.md via awk,
  appends .gitea/release-footer.md, and attaches everything to the
  Gitea release via gitea.com/actions/release-action.
- release-footer.md: install path with the custom-repo URL, conflict
  notice, attribution to Asriel Camora, MIT licence reference,
  Hellion Forge footer.
- security.yml: references the shared
  JonKazama-Hellion/security-workflows/security-scan.yml@main
  workflow (Semgrep + Trivy) on push/PR + weekly Monday schedule +
  dispatch.

Custom Dalamud repo manifest:
- repo.json at the repo root. AssemblyVersion 0.1.0.0,
  TestingAssemblyVersion 0.1.0.0, all three DownloadLink* pointing
  at releases/download/v0.1.0/latest.zip, embedded Changelog block,
  full description, tag list, icon and image URLs hosted off the
  Hellion Gitea. Subscribers add the raw URL of this file to
  Dalamud's Custom Plugin Repositories list.

Linter tooling:
- dotnet-tools.json with csharpier 1.2.6 as a local tool.
- .markdownlint.json copied from HellionChat (atx headers, dash
  bullets, underscore italics, asterisk strong) with MD060 disabled
  for our long-cell tables.
- renovate.json adapted from HellionChat: weekly schedule, grouped
  minor/patch updates per ecosystem, major updates get their own
  breaking-change PR, weekly lock file refresh, OSV vulnerability
  alerts.

Pre-push lint gate (.githooks/ + scripts/):
- .githooks/pre-push runs scripts/preflight.sh.
- preflight.sh: 4 blocks A (version consistency), B (dotnet build),
  C (dotnet csharpier check Craftimizer/), D (markdownlint via npx).
- verify-version-consistency.sh: csproj <Version> matches
  repo.json AssemblyVersion + TestingAssemblyVersion + a vX.Y.Z
  tag string is present in all three DownloadLink* URLs. Block A
  fails loud with a Fix: hint if anything drifts.
- setup-hooks.sh: sets core.hooksPath to .githooks, chmod +x the
  scripts. Run once after cloning.

CHANGELOG:
- New CHANGELOG.md at the repo root. First entry is v0.1.0 with the
  Hellion-style block (date, summary, bullet list, upstream-base
  attribution, full-history link). The release workflow extracts
  this entry verbatim as the Gitea release body.

Docs:
- README header updated with the new version badge, a release badge,
  and a build badge. New CHANGELOG reference, slash-command table,
  install section with both custom-repo and dev-install paths,
  conflict notice paragraph.

Plugin Version 0.1.0 stays in line with the verify-version-consistency
check; tag v0.1.0 is intentionally NOT pushed in this commit. Once the
user enables Gitea Actions on the repo, push the tag separately to
trigger the first release build.
2026-05-26 20:21:54 +02:00
JonKazama-Hellion b598c03e9e Apply csharpier reflow across source tree
Reformats the entire Craftimizer source tree with dotnet csharpier 1.2.6
to match the Hellion Forge house style (matches what HellionChat enforces
in its pre-push pipeline). Pure whitespace + using-block sorting; no
semantic changes.

This is a one-time noisy commit. Future code edits in this fork should
land csharpier-clean because the pre-push hook (introduced in the next
commit) runs `dotnet csharpier check Craftimizer/` as Block C of the
preflight gate.

Trade-off acknowledged: this widens the merge gap with upstream
Craftimizer should Asriel ever resume maintenance. Given the upstream
has been dormant since FFXIV 7.4 and the fork is light-rename only
(internal namespaces unchanged), the marginal cost is acceptable.
2026-05-26 20:21:21 +02:00
JonKazama-Hellion a52b9e8d76 Merge branch 'feature/forgeimizer-rebrand'
Build / build (push) Failing after 31s
Build / bench (push) Has been cancelled
2026-05-26 20:03:30 +02:00
JonKazama-Hellion 923d421e57 Rebrand fork to Forgeimizer with Craftimizer conflict detector
User-facing rebrand of the Hellion Forge maintenance fork so it installs
as a separate Dalamud plugin slot named Forgeimizer and refuses to load
in parallel with upstream Craftimizer. Internal namespaces stay as
Craftimizer.* — this is a deliberate light-rename so a future upstream
merge stays straightforward.

Manifest and build:
- csproj AssemblyName = Forgeimizer (DLL is now Forgeimizer.dll)
- csproj PackageProjectUrl points at the Hellion Gitea
- csproj Authors dual-credits Asriel Camora and Hellion Forge
- Craftimizer.json renamed to Forgeimizer.json with Name/InternalName/
  Punchline/Description/RepoUrl/IconUrl/ImageUrls/Tags updated to
  Forgeimizer + Hellion-hosted URLs

Conflict detector:
- New Utils/CraftimizerConflictDetector.cs checks
  pluginInterface.InstalledPlugins for an active InternalName=="Craftimizer"
  and throws InvalidOperationException with /xlplugins guidance if found
- Plugin.cs constructor calls the detector before Service.Initialize so
  no Dalamud state is touched on conflict

Other user-facing strings:
- WindowSystem name "Craftimizer" -> "Forgeimizer"
- Settings about-tab header "Craftimizer" -> "Forgeimizer", hyperlink
  retargeted to the Hellion Gitea repo (upstream attribution stays on
  the WorkingRobot author line below)
- Configuration.MacroMateName default "Craftimizer" -> "Forgeimizer"
- /craftimizer slash command gains a /forgeimizer alias (all other
  upstream commands stay unchanged for muscle-memory compatibility)

Docs:
- README rewritten with Forgeimizer title, install section, conflict
  notice, slash command table, dual-holder license footer
- COPYRIGHT title and source-code block updated to call out both the
  rebrand and the SDK 15 migration as Hellion Forge fork maintenance
- NOTICE.md direct-word-to-Asriel section now also covers the rebrand
  scope and the conflict detector language, with explicit invitation
  to flag anything that does not sit right

LICENSE remains unchanged — Asriel Camora's MIT notice is mandatory.
Plugin Version stays at 2.9.1.1; this is a rebrand cycle, not a
version bump.
2026-05-26 20:03:23 +02:00
JonKazama-Hellion 19c7c784f8 Add Hellion fork README, NOTICE, and COPYRIGHT
Build / build (push) Failing after 1m45s
Build / bench (push) Has been cancelled
Initial Hellion Forge documentation for the Craftimizer fork.

- Replace stub README with full project page (badges, fork scope table,
  tech stack, build instructions, project status, license block, FFXIV
  disclaimer, Hellion Forge footer)
- Add NOTICE.md with acknowledgement to Asriel Camora as the upstream
  author, direct word on fork intent, scope of changes, contact path,
  and explicit non-upstreaming rationale
- Add COPYRIGHT with dual-holder source code block (Asriel 2023 +
  Hellion Online Media 2026 for the SDK 15 maintenance), visual asset
  block (Hellion Forge logo by Florian Eck, all-rights-reserved), and
  bundled binary attribution (Raphael solver)
- Drop in the Hellion Forge logo under docs/images/

LICENSE remains unchanged — Asriel Camora's original MIT notice is
mandatory under MIT clause 3.
2026-05-26 19:45:24 +02:00
JonKazama-Hellion 531b103e8e Merge branch 'feature/dalamud-sdk-15-bump' 2026-05-26 19:35:53 +02:00
JonKazama-Hellion 8d6b603963 Bump Dalamud SDK 14.0.1 → 15.0.0 for FFXIV 7.5 API compatibility
- Update Dalamud.NET.Sdk version in csproj
- Regenerate packages.lock.json against SDK 15
- Migrate FFXIVClientStructs.FFXIV.Component.GUI.ValueType → AtkValueType
  (SynthesisValues.cs)
- Introduce local IEndObject interface in ImRaii2.cs (Dalamud's nested
  ImRaii.IEndObject was removed in SDK 15)
- Switch direct Dalamud ImRaii returns to typed disposables
  (ImRaii.TabItemDisposable, ImRaii.ColorDisposable)
- Replace `if (!panel)` / `if (plot)` with `.Success` checks for the
  local IEndObject helpers
- Fix ref-bool lifetime issue in Settings.TabItem by using the
  ImRaii.TabItem(label, flags) overload
2026-05-26 19:35:42 +02:00
Asriel Camora be349a29a4 Version 2.9.1.1
Signed-off-by: Asriel Camora <asriel@camora.dev>
2026-01-03 09:52:17 -08:00
Asriel Camora 9b69d1bc2a Use MinVer for versioning
Signed-off-by: Asriel Camora <asriel@camora.dev>
2026-01-03 08:02:45 -08:00
Asriel Camora e800bc4c75 Remove redundant check
Signed-off-by: Asriel Camora <asriel@camora.dev>
2026-01-03 07:56:07 -08:00
Asriel fdb31b5720 Merge pull request #58 from Narzaal/fix/requiredquality
fix: RequiredQuality for non expert recipes
2026-01-03 07:54:48 -08:00
Asriel Camora f26d958a5c Update Rapahel.Net
Signed-off-by: Asriel Camora <asriel@camora.dev>
2026-01-03 07:53:47 -08:00
Asriel Camora a041fc6ebf Update for 7.4 2025-12-21 23:55:42 -08:00
Narzaal 88a1be2738 Update RecipeData.cs
Allow quality calculation for recipes when RequiredQuality > 0 but not expert
2025-10-20 11:08:20 +02:00
Asriel 67430ed38e Merge pull request #57 from PYRiTEmonark/main
Added new option to automatically collapse the Synth Helper window
2025-09-28 12:23:18 -07:00
Asriel dcc9ce4a2c Merge pull request #56 from octylFractal/fix/job-level-recipes-on-level-up
Reload recipe data on job level change
2025-09-28 12:22:15 -07:00
Iris Scoffin 3b176e68a8 Added new option to automatically collapse the Synth Helper window 2025-09-20 13:25:49 +01:00
Octavia Togami 78220ac7ab Reload recipe data on job level change
This fixes recipes that adjust to the job level (i.e., Cosmic
Exploration) not being set to the right level after a level up when the recipe
doesn't change. This happens frequently during Red Alerts.

This can be considered an extended fix for #43.
2025-09-14 23:33:23 -07:00
Asriel Camora 3359748d13 Release 2.8.0.0 2025-08-19 00:11:45 -07:00
Asriel Camora d4de8524c6 No more ExtractText or soft hyphens 2025-08-19 00:07:53 -07:00
Asriel Camora 14b5bd66c0 Minor warnings/lints 2025-08-18 23:56:49 -07:00
Asriel Camora d10332fb9d Update solver 2025-08-18 23:56:40 -07:00
Asriel Camora b9da027283 Fix #43 2025-08-18 22:44:26 -07:00
Asriel Camora 3dbd09dd7b Move around custom CS structs 2025-08-18 22:44:04 -07:00
Asriel Camora 050fddbcd0 Update for 7.3 2025-08-18 22:43:31 -07:00
Asriel Camora fd1651cef9 Release 2.7.2.1 2025-04-29 14:41:11 -07:00
Asriel 9148f0ec00 Merge pull request #38 from Haselnussbomber/strip-soft-hyphen
Strip soft hyphens and resolve names via SeStringEvaluator
2025-04-29 14:40:11 -07:00
Asriel Camora 0c613524e2 The curse of stg 2025-04-29 14:38:53 -07:00
Asriel Camora 95135bc7b7 Release 2.7.2.0 2025-04-29 14:35:06 -07:00
Asriel Camora 8403fa57c7 Update offset & obsolete field names 2025-04-29 14:34:41 -07:00
Asriel Camora 419476718a Fix cast 2025-04-29 14:34:23 -07:00
Asriel Camora 9d8e29f069 Update raphael (now threaded and loggable) 2025-04-29 14:28:50 -07:00
Asriel Camora fb959e07fc Minor nitpick 2025-04-29 14:28:22 -07:00
Asriel Camora 70fd756068 Fix crashes (better) 2025-04-29 14:28:10 -07:00
Asriel Camora d34e54c3a8 Fix crash 2025-04-29 14:16:44 -07:00
Asriel Camora 1ce3c401ea Update dependencies 2025-04-28 22:37:36 -07:00
Haselnussbomber 02138bde78 Revert evaluating PlaceName 2025-04-24 20:18:20 +02:00
Haselnussbomber 4f6c10d170 Resolve names via SeStringEvaluator 2025-04-24 18:55:17 +02:00
Haselnussbomber 5b9ca4f5f8 Strip soft hyphens 2025-04-24 18:54:53 +02:00
Asriel Camora bdaefa5896 Release 2.7.1.0 2025-04-24 02:12:22 -07:00
Asriel Camora 742b13f597 Add WKS support (and manual level sync) to MacroEditor 2025-04-24 01:49:08 -07:00
Asriel Camora 7a1a91210a Add WKS support to RecipeNote 2025-04-24 01:48:51 -07:00
Asriel Camora 3a84fe2fb0 Hopefully fix the minor initial stall in synth helper initalization 2025-04-24 01:48:32 -07:00
Asriel Camora b451902290 Add WKS collectables 2025-04-24 01:47:49 -07:00
Asriel Camora 8737d497cd Add sheets 2025-04-24 01:47:40 -07:00
Asriel Camora 12afada408 Add WKS level sync support 2025-04-24 01:47:33 -07:00