chore(plugins): remove the Smoke gate plugin; MossTank shelf icon 0x06002C41
Owner direction 2026-09-06: the owner visually accepted all three connected
gates from the plugin-shelf/DAT-icon work — the movable plugin shelf
(Slice A), the DAT icon markup (Slice B), and the retained-UI outline-order
fix (761a7519f). With that gate passed, the Smoke plugin's job as the gate
artifact is done, so it is deleted outright rather than merely hidden:
src/AcDream.Plugins.Smoke/ (SmokePlugin.cs, SmokeIconPanel.cs, csproj, lock
files).
Reference sites cleaned:
- AcDream.slnx: removed the project entry.
- src/AcDream.App/AcDream.App.csproj: removed the Smoke ProjectReference and
the CopySmokePluginToBuildOutput/CopySmokePluginToPublishOutput targets;
the MossTank equivalents are untouched.
- .github/workflows/headless-portability.yml: the Linux package-contract
step no longer asserts a Smoke plugin.dll/plugin.json pair — repointed at
MossTank's, since the step's job was to prove the plugin-copy packaging
mechanism works end to end, not specifically to prove Smoke.
- tests/AcDream.Core.Tests/Plugins/PluginManifestTests.cs: the inline JSON
fixture used Smoke's manifest values as arbitrary test data; swapped for
MossTank's so the parser test still proves the same thing.
- tests/AcDream.App.Tests/Rendering/LinuxPlatformBoundaryTests.cs: the
shipped-plugin-copy shape test counted 4 GetTargetPath targets (Smoke +
MossTank, build + publish); now 2 (MossTank only).
- tests/AcDream.App.Tests/Plugins/AppAutomationSurfaceIconInstalledDatTests.cs:
reworded a doc comment that named the now-deleted SmokeIconPanel.
- README.md, docs/plugin-ui-markup.md: dropped Smoke-specific mentions,
kept the icon markup example/grammar (now citing MossTank's own real
IconSurfaceId).
- docs/plans/2026-09-06-plugin-shelf-and-dat-icons.md: recorded the owner's
2026-09-06 acceptance and the Smoke removal in the review ledger; deleted
the now-moot "before shipment" Smoke-in-release-zip warning.
- docs/reviews/coverage-ledger.md, docs/reviews/findings-ledger.md: left
untouched — both are frozen audit snapshots ("complete for baseline
<hash>"), so their Smoke rows are historical record, not live claims.
- docs/ISSUES.md: left untouched — its Smoke mentions are inside closed
issue #193's historical write-up of a past investigation.
MossTank plugin shelf icon: MossTankPlugin.cs's PluginPanelDescriptor now
sets IconSurfaceId = 0x06002C41 (IconText = "MT" remains the fallback).
Verified against the installed retail DAT with a new InstalledDat-lane test,
tests/AcDream.App.Tests/UI/MossTankIconInstalledDatTests.cs, mirroring
RetailMarkupIconResolverInstalledDatTests's convention: confirms the id is a
real Portal/HighRes RenderSurface and that RetailMarkupIconResolver.ResolveDid
returns a non-zero texture for it.
Verified: dotnet build AcDream.slnx -c Release green; a stale
plugins/AcDream.Plugins.Smoke output folder from a prior build was deleted
and a fresh build does not recreate it. Full App suite: 7,363 passed / 97
skipped / 36 failed (was 7,362/97/36) — the failing set is unchanged and
none are plugin-related; the one new pass is the MossTank DAT-icon test.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
ce05c4fb03
commit
ece2104189
17 changed files with 102 additions and 359 deletions
|
|
@ -21,8 +21,8 @@ icon, and the parser that turns markup into a live `UiElement` tree
|
|||
host.Ui.AddPanel(
|
||||
new PluginPanelDescriptor("main", "MossTank")
|
||||
{
|
||||
IconText = "MT", // fallback initials if IconSurfaceId is 0
|
||||
IconSurfaceId = 7735, // Decal-style bare index OR a full DID — both normalize
|
||||
IconText = "MT", // fallback initials if IconSurfaceId is 0
|
||||
IconSurfaceId = 0x06002C41, // Decal-style bare index OR a full DID — both normalize
|
||||
StartVisible = true,
|
||||
ShowInSidePanel = true,
|
||||
},
|
||||
|
|
@ -32,9 +32,8 @@ host.Ui.AddPanel(
|
|||
|
||||
`RegisterPanel` (same signature, returns `IDisposable`) removes the window
|
||||
independently of the plugin's own lifetime. `RegisterPanelContent` takes an
|
||||
in-memory KSML string instead of a file path — the route `AcDream.Plugins.Smoke`
|
||||
uses for its icon-surface proof panel (`SmokeIconPanel.cs`), when a panel is
|
||||
small enough not to need its own shipped `.xml` asset.
|
||||
in-memory KSML string instead of a file path — the route to reach for when a
|
||||
panel is small enough not to need its own shipped `.xml` asset.
|
||||
|
||||
Every registered window gets a stable persisted key
|
||||
(`plugin:{pluginId}:{windowId}`), drag, resize (where the markup opts in),
|
||||
|
|
@ -263,9 +262,7 @@ There is no way to mix kinds within a single list. Two consequences:
|
|||
that wants the badge look has no `did`-space escape hatch.
|
||||
|
||||
MosswartMassacre-style example — a list column composited from spell ids,
|
||||
with the spell's own raw art DID printed alongside the name for comparison
|
||||
(`AcDream.Plugins.Smoke`'s own proof panel, `SmokeIconPanel.cs`, is exactly
|
||||
this pattern):
|
||||
with the spell's own raw art DID printed alongside the name for comparison:
|
||||
|
||||
```csharp
|
||||
// iconkind="spell": the values MUST be spell ids (what ResolveSpell composites
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue