Commit Graph
534 Commits
Author SHA1 Message Date
ДмитрийandClaude Opus 5.5 048d746d29 Channel source selection lives in coa-core; e2e checks for the published channel and SQUID servers
preview_channel_e2e installs from the stable channel, takes the preview from the published preview channel
the way the Manager does, and checks the server is current afterwards. preview_migration_e2e gains a squid
mode that keeps SQUID's SQL journals and expects SQUID's Playerbots instead of Companions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 07:23:41 +05:00
ДмитрийandClaude Opus 5.5 4facefc5dc e2e example prints the plugin boot report from Core/plugins
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 18:53:37 +05:00
ДмитрийandClaude Opus 5.5 229ffe1257 Plugins identify themselves by their module id
The core matches a DLL's .coapl id with its plugin lock entry. The adapter
used the repository name (mod-coa-content-scaling) while the registry and
lock use the module id (content-scaling), so the stable->preview e2e saw the
core reject Content Scaling. The build now writes the module id and refuses
a DLL that does not carry it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:43:40 +05:00
ДмитрийandClaude Opus 5.5 1ca4e12870 Preview packages never need a Manager older than their stable content
derive-preview takes the higher of the requested minimum and the stable
package's. Adds the stable->preview migration e2e example (disposable server,
own ports, seeded character and module setting, production updater).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:27:35 +05:00
ДмитрийandClaude Opus 5.5 2bec907fa7 Merge Manager 0.9.9 (master) into the Modules Preview
Stable packages from 0.261104.94 need Manager 0.9.8; the preview was 0.9.7.
Conflicts kept the preview's module screen and plugin-aware module logic, took
master's requires-squid compatibility value and version 0.9.9 under the
preview's own product name and identifier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:23:05 +05:00
ДмитрийandClaude Opus 5.5 53789b9bdd Derive the Modules Preview update from a signed stable update
coa-release derive-preview verifies the stable update package, unpacks it,
replaces the core binaries with the plugin host build (same core commit),
adds Core/plugin-sdk.zip and Core/plugins/recommended.json, and repacks it
with the stable migrations, configuration and scripts unchanged. The result
is signed with the preview key by coa-release sign.

Tried on server-0.261104.94 and a CI plugin host: 37256 files, 3417
migrations, signature/archive/schema contract verified; the stable key
rejects the package (env-driven test).

New servers in the preview Manager are installed from the stable image; the
preview core arrives as the first update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:09:29 +05:00
ДмитрийandClaude Opus 5.5 df4a97bff2 Preview update channel with its own signing key
- keys/preview-signing.pub: preview packages and the preview pointer are
  signed with a separate key, so a stable Manager (stable key only) can never
  accept them. The preview Manager trusts both keys for packages (it starts
  from stable servers and stable base packages); each channel pointer must
  carry its own key's signature.
- Channel 'preview': pointer preview.json on the preview-channels branch,
  releases preview-server-<version>. The app resolves it first and falls back
  to stable until a preview release exists.
- coa-release public-key prints the public half of the signing key;
  sign-channel writes the channel's own release tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 16:00:02 +05:00
ДмитрийandClaude Opus 5.5 9153e3ece5 Install the modules a plugin-host core recommends before its first start
A core that loads Content Scaling, Companions and SQUID as plugins ships
Core/plugins/recommended.json with the module repositories and commits. During
the update (the move from a monolithic stable server) the Manager downloads
each module as GitHub's archive of that commit (no git needed), builds it with
its bundled trees, installs and enables it, before the trial start. Rules keep
the bot choice: SQUID only if it was switched on in playerbots.conf, otherwise
Companions. Handled modules are remembered so a removed module is not
reinstalled; a failed one is retried at the next core change.

Verified on a CI core: Content Scaling (+packs) and Companions downloaded,
built, installed and written to the plugin lock in 225 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:48:23 +05:00
ДмитрийandClaude Opus 5.5 3be5fe9609 Install the pinned MSVC toolset from the Manager
Modules must be compiled by the core's exact compiler. The Toolchain tab now
offers Microsoft's stable-channel Build Tools bootstrapper (VS 18) with the
14.44 toolset, core build tools, Windows SDK 26100 and CMake preselected:
downloaded from aka.ms, Authenticode-checked for Microsoft, run in its own UI
(modify mode for an existing Build Tools 18). Shows the required and selected
cl.exe versions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:38:58 +05:00
ДмитрийandClaude Opus 5.5 da94fb49a4 Rebuild installed modules for the new core during an update
The core changes almost daily and a plugin loads only into the core it was
built for. update::apply now brings every enabled plugin to the new core
before the trial start: a build already in the store is reused, otherwise it
is rebuilt from the sources recorded at its last build (build recipe). A
plugin that cannot be rebuilt is switched off with the reason (and plugins
that depend on it); the core update always goes ahead. A rollback puts the
builds for the restored core back. The update result lists rebuilt and
switched-off modules.

Also: plugin.json records the real compiler instead of a fixed string.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 15:36:16 +05:00
ДмитрийandClaude Opus 5.5 76be1d3238 Module builds: skip unbuilt dirs for the loader, compile bundled packs once
- The loader is chosen only from directories the build compiles: Companions
  has a reference pilot/ whose loader was picked and never compiled (LNK2019).
- A bundled tree inside the primary one (Content Scaling's content-packs/)
  is compiled only as the bundle (was LNK2005 on every pack symbol).
- Env-driven test builds the preview modules against a CI core pair and
  requires the realm's host fingerprint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 11:38:33 +05:00
ДмитрийandClaude Opus 5.5 46fcc780bd Build modules with the exact MSVC the core's SDK names
Finds every Visual Studio / Build Tools install with vswhere, reads each toolset's cl.exe
version, and calls vcvars64 (or VsDevCmd in a minimal Build Tools install) with -vcvars_ver
for the one the SDK's compiler= input names. A missing toolset is reported with the version
needed and the ones installed. CMake/Ninja come from any install, not only VS 18 Insiders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 08:47:41 +05:00
ДмитрийandClaude Opus 5.5 c29945095b Unpack the SDK a core package ships (Core/plugin-sdk.zip) for its own host only
A core update or rollback then always brings the matching SDK; an archive of
another core is ignored.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 20:14:18 +05:00
ДмитрийandClaude Opus 5.5 e8ac3151a3 Plugin SDK per realm core, Dungeon Clear bundle, reliable incremental builds
- The host records its own ABI fingerprint (.coapl); the manager reads it from
  worldserver.exe instead of hardcoded fingerprints (solver, provenance, analyzer).
- SDK store per realm: <realm>/.manager/sdk/<16 hex of fingerprint>/, chosen by
  the host fingerprint; install_realm_sdk refuses an SDK of another core.
- Dungeon Clear is built into the SQUID DLL (bundle); persistent build cache.
- Refuse layouts whose header paths exceed Ninja's Windows path limit (such
  headers counted as changed and every build became a full rebuild).
- Compile jobs limited by free RAM; full build log kept in build.log; failures
  without an MSVC diagnostic report the failed step and the log tail.

Bundle test: full build 1425 s, after a one-file change 9.7 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 19:26:09 +05:00
github-actions[bot] 3a5558f388 Update published Manager changelog 2026-11-04 11:39:56 +00:00
ДмитрийandClaude Opus 5.5 0a56bc7cf2 fix(builder): build Companions whole, against real host exports; verify the DLL's ABI fingerprint
- Removed COMPANIONS_SHIMS_CPP: it redefined core functions inside the plugin as
  stubs (Unit::CalculateSpellDamage/SpellDamageBonusDone/Taken -> 0,
  AuraEffect::GetMiscValue -> 0, LFGMgr::GetDungeon/GetOptions/GetLockedDungeons,
  Player::HasQuestForItem -> false, ...) and replaced the whole training arena
  with empty functions. The DLL linked, but bots silently lost real damage, LFG
  and quest logic. The core now exports those symbols (spike/plugin-host 9575b8d8e,
  plus SQUID's in the next commit there).
- Stopped dropping training/ and world/encounters/ sources and the string
  rewriting of BotMgr.cpp (upstream already uses the public guild API).
- Qualification reads the fingerprint from the DLL's .coapl section and compares
  it with the SDK's sdk.json instead of a hard-coded constant.
- Real-build tests take turns (the engine allows one build at a time).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 12:16:17 +05:00
Дмитрий c0260247ba feat: integrate Dungeon Clear with strict SQUID dependency and mutual exclusion in modules-v2 2026-11-04 10:28:58 +05:00
Дмитрий 3597b196e3 catalog: add Zyth45/mod-dungeon-clear as recommended SQUID companion module 2026-11-03 20:40:49 +05:00
Дмитрий 173248efbe Prepare Manager 0.9.9 with isolated login validation and translated release notes v0.9.9 2026-11-03 19:44:03 +05:00
Дмитрий 5697a1d36e Merge commit '076fba1' into release/20261103-manager 2026-11-03 19:41:07 +05:00
Дмитрий 03722a1d9d fix: automated verified builds for all recommended modules mutual bot exclusion and UX fixes 2026-11-03 19:22:00 +05:00
Дмитрий fb55eb97a9 fix(builder): force ninja response files for win32 cmdline limits, fix git cache repo name detection 2026-11-03 17:50:44 +05:00
Дмитрий 4ebf86d222 fix(builder): preserve module tree structure, sanitize cmake include paths, and suppress console windows 2026-11-03 17:00:18 +05:00
Дмитрий c2bf8ecbb6 fix(modules-preview): isolate dll detection, deduplicate plugins, fix toggle exclusivity and metadata resolution 2026-11-03 16:26:37 +05:00
Дмитрий 221f4a93d3 fix(modules-preview): fix bot builds, scaling recognition, and add live build progress bar 2026-11-03 16:02:41 +05:00
Дмитрий be644f8c54 fix(modules-preview): chain build on card click, fix MSVC definitions & include shadowing, humanize errors 2026-11-03 14:40:14 +05:00
Дмитрий 6334402542 fix(builder): resolve build target url correctly and normalize custom-races catalog card 2026-11-03 13:57:58 +05:00
Дмитрий 508ebb6ad1 fix(analyzer): raise repository and file size limits for data-heavy modules 2026-11-03 13:25:18 +05:00
Дмитрий 4b16157d10 fix(catalog): enforce DLL presence for installed status and improve recommended UI 2026-11-03 13:16:04 +05:00
Дмитрий 86482fe278 fix(build): embed frontend dist into preview binary without devUrl 2026-11-03 12:31:46 +05:00
Дмитрий 7d062faa1a merge: bring preview/modules-v2 up to date with master (base 0.9.7) 2026-11-03 12:01:47 +05:00
Дмитрий 223dc56c7d fix(modules): show tbc-content and wotlk-content only when content-scaling is installed 2026-11-03 11:50:29 +05:00
Дмитрий d736bc0c47 fix(ui): format build and analysis errors with human-readable messages 2026-11-03 11:45:48 +05:00
Дмитрий e5386d6133 fix(catalog): remove Solocraft from recommended, exclude vanilla playerbots and dungeon-clear 2026-11-03 11:38:28 +05:00
Дмитрий cba8ea3a87 fix(ui): align PublicCatalogueItem fields and prevent TypeError on item.id 2026-11-03 11:20:36 +05:00
Дмитрий d9f9d0f0c2 docs: add module catalogue implementation report 2026-11-03 10:50:11 +05:00
Дмитрий d0c57f9b75 feat(ui): integrate dual-group public AzerothCore catalogue into ModulesPage 2026-11-03 10:49:20 +05:00
Дмитрий c53fc64d8b feat(ipc): expose public module catalogue Tauri command and API client 2026-11-03 10:49:10 +05:00
Дмитрий 6bbdef1989 feat(analyzer): enforce CoA module blocklist in analyzer and build engine 2026-11-03 10:49:04 +05:00
Дмитрий 4e661e6986 feat(core): implement AzerothCore module catalogue engine, overlay and caching 2026-11-03 10:48:56 +05:00
Дмитрий 3dbfffba76 fix(preview): separate app updater manifest, enable preview self-update, add qualification evidence 2026-11-03 08:06:10 +05:00
Дмитрий c3664b881d docs(preview): add architecture, qualification, matrix, migration, tester guide, and handoff runbook 2026-11-03 01:22:06 +05:00
Дмитрий 3b06b75a66 feat(preview): authoritative module inventory, contract solver, server migration center, isolated preview updater 2026-11-03 01:19:27 +05:00
Дмитрий 4fbcc4d29b feat(preview): full modules UX redesign, custom races per-race toggles, time-is-time settings, clean names, and official protection 2026-11-03 00:28:38 +05:00
Дмитрий 3e44ca7455 feat(ui): unified installed modules, supported-only catalog, inline github bar, dynamic conf parsing 2026-11-02 23:51:19 +05:00
Дмитрий 2c37c4e29a feat(preview): implement SDK v0.3.2 capability integration, honest verified catalog, official modules settings, and clean module identity 2026-11-02 23:01:07 +05:00
Дмитрий f8312976a7 fix(preview): embed production frontend assets and remove devUrl from build config 2026-11-02 20:47:14 +05:00
Дмитрий d5ae38440d fix(preview): resolve Tauri updater plugin config deserialization panic on launch 2026-11-02 20:10:29 +05:00
Дмитрий 3367be2e99 chore(preview): add automated qualification runner script 2026-11-01 16:31:58 +05:00
Дмитрий bd98d3eb73 feat(preview): implement CSM Modules Preview standalone edition with Controlled Build Engine, SQL review gate, and test realm integration 2026-11-01 16:29:35 +05:00