Skip to content

Releases: havaianasdestruido/FNF-Phoenix-Engine

v0.0.1-pre1

v0.0.1-pre1 Pre-release
Pre-release

Choose a tag to compare

@havaianasdestruido havaianasdestruido released this 17 Oct 23:26
5d5c176

What's Changed

Full Changelog: v0.0.1-beta...v0.0.1-pre1

v0.0.1-beta

v0.0.1-beta Pre-release
Pre-release

Choose a tag to compare

@havaianasdestruido havaianasdestruido released this 16 Oct 15:18
Immutable release. Only release title and notes can be modified.
27ea5a6

What's Changed

Summary

One cohesive batch fixing all 18 open Arena AI audit issues (#42–#55, #57–#60; #56 does not exist). Root causes were: dependency manifests that disagreed and tracked moving branch heads, CI automation wired to workflows/labels/sites that do not exist, hard-coded/inherited upstream version + update-check data, dead timing wiring, script-hook signatures that drifted from their documentation, an unreachable 'link' option type, library patches vendored in the wrong classpath folder, duplicate backend.Mods type paths, dead build hooks, a missing Python sentinel global, and a NO_PRELOAD_ALL code path that could not compile.

Issue coverage

Issue Title Fix implemented Relevant commits/files Tests Status
#42 hmm.json and setup scripts install two different hxcpp forks hmm.json now uses the MSVC-required FunkinCrew/hxcpp fork; tools/check_dependencies.py fails when hmm/setup disagree; windows-msvc-fix.ps1 verifies the checkout remote is FunkinCrew 05fe9c1 — hmm.json, setup/unix.sh, setup/windows.bat, setup/windows-msvc-fix.ps1, tools/check_dependencies.py test_manifests_agree_and_pinned, test_hxcpp_is_the_funkincrew_fork_everywhere ✅ Fixed
#43 Conductor.recalculateTimings() never called / Safe Frames no-op Safe Frames option gets onChange = () -> Conductor.recalculateTimings(); InitState calls it after loadPrefs(); docs corrected (hit windows come from ClientPrefs.*Window, timeScale only scales accuracy) 7cdc13e — GameplaySettingsSubState.hx, InitState.hx, conductor-and-timing.md test_safe_frames_wires_recalculate_timings ✅ Fixed
#44 Script hook argument lists don't match script-hooks.md Engine now passes documented 5th strumTime to onSpawnNote; onEvent/eventEarlyTrigger documented + templated in their real 4-arg form (Lua and Python, which rejects surplus args) 1ecbf7a — PlayStateNotes.hx, script-hooks.md, docs/TemplateScript.lua/.py test_hook_argument_lists_match_docs_and_templates ✅ Fixed
#45 Options with type 'link' silently coerced to 'bool' Option.get_type() round-trips 'link'; link options no longer read/write non-existent ClientPrefs fields; ACCEPT on a link runs its onChange with the confirm sound in BaseOptionsMenu f1508fb — Option.hx, BaseOptionsMenu.hx test_link_options_round_trip ✅ Fixed
#46 Library patches vendored under source/ instead of source-haxelib-patches/ Five files git mv'd to source-haxelib-patches/flixel/… (100% renames, no content change), added to the patch table, stale doc references updated, guard test added 4f3053d — source-haxelib-patches/flixel/**, haxelib-patches.md, README.md, overview.md, editors.md test_no_vendored_library_files_under_source ✅ Fixed
#47 Bug report template points to upstream JS Engine tracker All issue templates point at this repo's tracker, fictional "automatically be rejected" wording removed, version question now asks for the Phoenix version line; crash-report links in CrashHandler also point here 35aab05, 5066179 — .github/ISSUE_TEMPLATE/*.yml, CrashHandler.hx test_bug_templates_point_at_this_repo ✅ Fixed
#48 'status: pending triage' and 'stale' labels used by workflows don't exist Verified both labels now exist on the live repo (gh label list); workflows are now self-healing (create the label + core.warning if missing) so the failure can never be silent again 35aab05 — autotriage.yml, autolock.yml test_triage_labels_are_self_healing + live gh label list ✅ Fixed (labels pre-existed server-side; code hardened)
#49 jekyll-gh-pages.yml can overwrite the Docusaurus site Deleted the stock Jekyll sample workflow; docs.yml is the only Pages publisher 35aab05 — deleted .github/workflows/jekyll-gh-pages.yml test_no_jekyll_workflow_can_overwrite_pages ✅ Fixed
#50 project.hxp references non-existent Prebuild.hx/Postbuild.hx Removed the dead constants, the commented-out invocations, and the docs row (recommended smaller option) 16aa28b — project.hxp, project-configuration.md test_no_dead_prebuild_hooks ✅ Fixed
#51 python-scripting.md documents Function_StopLua for Python Python host now also publishes Function_StopLua (same sentinel as Function_StopAll, so the PlayState dispatcher matches it); docs state both names 4a030d9 — PythonScript.hx, python-scripting.md, script-hooks.md test_python_exposes_function_stoplua ✅ Fixed
#52 backend.Mods and backend.ModsStub declare the same type paths Stub class renamed to backend.ModsStub and aliased as Mods in import.hx only for non-MODS builds; shared ModsList typedef moved to its own backend/ModsList.hx; dead identical #if/#else removed; hard import backend.Mods lines removed so the conditional selection is authoritative 32c8d6e — Mods.hx, ModsStub.hx, ModsList.hx, import.hx, 6 call-site files test_mods_and_stub_have_distinct_type_paths ✅ Fixed
#53 Update checker fetches upstream JS Engine changelog Checker (and the debug-menu test screen) poll this repo's THECHANGELOG.md and compare against the Phoenix version; OutdatedState shows Phoenix version and links to this repo's releases 5066179 — TitleState.hx, OutdatedState.hx, SuperSecretDebugMenu.hx test_update_checker_uses_this_repo_and_phoenix_version ✅ Fixed
#54 Engine version strings hard-coded, contradict project.hxp/THECHANGELOG.md phoenixEngineVersion is now derived from app metadata (project.hxp VERSION, also exposed as ENGINE_VERSION define); 'pre-alpha' gone; THECHANGELOG.md top entry is 0.3.2;; JSE string documented as an upstream compatibility marker only; AGENTS.md versionName/versionCode claim corrected 5066179, 6bc657b — MainMenuState.hx, project.hxp, THECHANGELOG.md, AGENTS.md, project-configuration.md test_version_comes_from_project_metadata ✅ Fixed
#55 -DNO_PRELOAD_ALL build fails (no LoadingState constructor, no hasSound) Added the expected LoadingState(target, stopMusic, directory) constructor + create() hand-off under NO_PRELOAD_ALL; sound/library checks now use OpenFlAssets (which has hasSound); flag documented 5f4645d — LoadingState.hx, project-configuration.md test_no_preload_all_branch_compiles_statically ✅ Fixed (statically; see Limitations)
#57 CI cache key doesn't pin resolved revisions, invalidated by unused files Key is now per-job (matrix.setup) and hashes only hmm.json, which after #58 records every git revision as a commit SHA; resolved revisions are printed in CI logs ecd756b — .github/workflows/main.yml test_cache_key_pins_dependency_set_per_job ✅ Fixed
#58 Git dependencies installed from moving branch heads Every git dependency in hmm.json, setup/unix.sh and setup/windows.bat pinned to a full 40-char commit (current heads verified via the GitHub API); drift guard in tools/check_dependencies.py 05fe9c1 — hmm.json, setup/unix.sh, setup/windows.bat, tools/check_dependencies.py test_manifests_agree_and_pinned ✅ Fixed
#59 'Comment on pull request' workflow triggers on a non-existent workflow Trigger changed to workflows: ['Build'] (the real main.yml name); guard test asserts every workflow_run trigger names an existing workflow 35aab05 — .github/workflows/nightly.yml test_nightly_trigger_names_a_real_workflow ✅ Fixed
#60 mobile.yml builds with Haxe 4.3.6 vs required 4.3.7 Both workflows use HAXE_VERSION: "4.3.7" via ${{ env.HAXE_VERSION }}; mobile now installs deps via setup/unix.sh (same path as desktop, no ` trueswallowing); leftoverUPDATE HAXE TO 4.3.7.txt` deleted ecd756b — main.yml, mobile.yml, deleted txt file

Closes #42, Closes #43, Closes #44, Closes #45, Closes #46, Closes #47, Closes #48, Closes #49, Closes #50, Closes #51, Closes #52, Closes #53, Closes #54, Closes #55, Closes #57, Closes #58, Closes #59, Closes #60

Technical details

  • Dependencies (#42/#58): one pin set, three manifests. SHAs are the current branch heads of each fork (verified with api.github.com on 2026-10-16); bumping a dependency is now a deliberate edit to all three files, enforced by tools/check_dependencies.py (the historical hscript vs hscript-improved naming for the same CodenameCrew URL is normalised there).
  • CI (#57/#59/#60): compiler version is a workflow-level HAXE_VERSION env referenced by setup-haxe and the cache key in both build workflows; the haxelib cache key identifies the pinned dependency set per job setup instead of install scripts most jobs never read.
  • Versions (#53/#54): no new hard-coded release strings in game code — the only literal left is a fallback in MainMenuState that the test suite asserts equals project.hxp VERSION and the first THECHANGELOG.md entry. Upstream-facing "donate"/credits links to JS Engine were intentionally left alone; only user-facing bug-report/update links moved.
  • Engine (#43/#44/#45/#51/#52/#55): all changes are additive or behaviour-restoring (new onChange call, new documented argument scripts already expected, new Python global alias, distinct stub type path, new constructor that only exists under NO_PRELOAD_ALL), so existing Psych/JSE mods and normal builds keep their current behaviour.

Full Changelog: v0.0.1-alpha...v0.0.1-beta

v0.0.1-alpha

v0.0.1-alpha Pre-release
Pre-release

Choose a tag to compare

@havaianasdestruido havaianasdestruido released this 15 Oct 21:07
Immutable release. Only release title and notes can be modified.
cb93fe0

What's Changed

  • Bug Fix: Android APK missing libc++_shared.so (dlopen failure at launch) by @arena-ai-coding-agent[bot] in #20
  • docs: document how the source-haxelib-patches work by @arena-ai-coding-agent[bot] in #23
  • Fix mobile buttons not appearing + font copy failures on install by @arena-ai-coding-agent[bot] in #21
  • Bug Fix: mobile hitboxes/buttons followed the gameplay camera (unplayable on mobile) by @arena-ai-coding-agent[bot] in #22
  • Android platform layer + mobile editor support (TODO.md mobile P1/P2 tasks) by @arena-ai-coding-agent[bot] in #24
  • Enhancement: expand every TBD section in CODESTYLE.md by @arena-ai-coding-agent[bot] in #26
  • feat: add Phoenix URI deep links for Android, iOS and Windows by @arena-ai-coding-agent[bot] in #25
  • Add MP3 and OGG compression tools by @arena-ai-coding-agent[bot] in #27
  • tools: fix audio compressor root default and the File.Replace() failure by @arena-ai-coding-agent[bot] in #28
  • build: add NO_BUILTIN_CONTENT content-stripped (copyright-safe) build flag by @arena-ai-coding-agent[bot] in #29
  • Compress all images (~19% smaller) + image compression scripts in tools/ by @arena-ai-coding-agent[bot] in #30
  • docs: full codebase documentation site (Docusaurus) by @havaianasdestruido in #31
  • ⚡ Bolt: Optimize loop in PlayStateRating.updateNps by @havaianasdestruido in #32
  • ⚡ Bolt: record performance findings in journal (no runtime change) by @havaianasdestruido in #33
  • ⚡ Bolt: Avoid O(n) indexOf when no scripts are active by @havaianasdestruido in #34
  • ⚡ Bolt: Avoid O(n) indexOf when no scripts are active by @havaianasdestruido in #35

Full Changelog: fix-ci...v0.0.1-alpha

Fixed CI now (mobile, windows) + fixes

Choose a tag to compare

@havaianasdestruido havaianasdestruido released this 26 Sep 01:20
Immutable release. Only release title and notes can be modified.
cd53ef6

Fixed FULLY CI now (mobile, windows)

What's Changed

New Contributors

  • @arena-ai-coding-agent[bot] made their first contribution in #19

Full Changelog: pre-pre-pre-alpha...fix-ci

First release hell yeah

Choose a tag to compare

@havaianasdestruido havaianasdestruido released this 15 Sep 14:37
Immutable release. Only release title and notes can be modified.

What's Changed

New Contributors

Full Changelog: https://github.com/havaianasdestruido/FNF-Phoenix-Engine/commits/pre-pre-pre-alpha