chore: bump version to 1.4.7, sync changelog and forge post

- csproj <Version> -> 1.4.7
- repo.json AssemblyVersion + TestingAssemblyVersion -> 1.4.7.0
- repo.json DownloadLink{Install,Update,Testing} URLs -> /v1.4.7/
- repo.json + HellionChat.yaml changelog: prepend v1.4.7 block, retire
  v1.4.3 (slim rule keeps the last 3-4 versions)
- docs/CHANGELOG.md + docs/ROADMAP.md: v1.4.7 section, next-cycle
  pointer flipped to v1.4.8 Hook-Layer-Cycle
- README.md release badge + version stamps + Project Status block
  rewritten for v1.4.7
- .github/forge-posts/v1.4.7.md (new): DE body with subtitle
  "Backlog Cleanup and Mid-Features" / versionsnatur "Mid-Feature-Patch"
- Pin diagnostic logs (RehydratePinnedTabs / TryPin / Unpin /
  PromoteToPermanent) downgraded from Info to Debug so non-debug
  console stays quiet on release builds
This commit is contained in:
2026-05-13 11:00:25 +02:00
parent d5735d8dcc
commit f4ea460644
8 changed files with 167 additions and 48 deletions
+6 -6
View File
@@ -67,7 +67,7 @@ internal sealed class AutoTellTabsService : IDisposable
private void RehydratePinnedTabs()
{
var pinned = Plugin.Config.Tabs.Count(TabLifecycleHelpers.IsInPinnedPool);
Plugin.LogProxy.Info($"[Pin] Rehydrate scan: {pinned} pinned tab(s) found");
Plugin.LogProxy.Debug($"[Pin] Rehydrate scan: {pinned} pinned tab(s) found");
foreach (var tab in Plugin.Config.Tabs)
{
@@ -93,7 +93,7 @@ internal sealed class AutoTellTabsService : IDisposable
// sees the recent conversation, not a blank tab.
PreloadHistory(tab, tab.TellTarget.Name, tab.TellTarget.World, Guid.Empty);
Plugin.LogProxy.Info(
Plugin.LogProxy.Debug(
$"[Pin] Rehydrated '{tab.Name}' -> Tell target {tab.TellTarget.Name}@{tab.TellTarget.World}"
);
}
@@ -456,7 +456,7 @@ internal sealed class AutoTellTabsService : IDisposable
{
if (!tab.IsTempTab || tab.IsPinned)
{
Plugin.LogProxy.Info(
Plugin.LogProxy.Debug(
$"[Pin] TryPin skipped: IsTempTab={tab.IsTempTab} IsPinned={tab.IsPinned}"
);
return false;
@@ -472,7 +472,7 @@ internal sealed class AutoTellTabsService : IDisposable
}
tab.IsPinned = true;
Plugin.LogProxy.Info(
Plugin.LogProxy.Debug(
$"[Pin] Pinned tab '{tab.Name}' target={tab.TellTarget?.Name}@{tab.TellTarget?.World}"
);
_plugin.SaveConfig();
@@ -495,7 +495,7 @@ internal sealed class AutoTellTabsService : IDisposable
}
tab.IsPinned = false;
Plugin.LogProxy.Info($"[Pin] Unpinned tab '{tab.Name}'");
Plugin.LogProxy.Debug("[Pin] Unpinned tab '{tab.Name}'");
_plugin.SaveConfig();
}
@@ -509,7 +509,7 @@ internal sealed class AutoTellTabsService : IDisposable
tab.IsTempTab = false;
tab.IsPinned = false;
tab.TellTarget = TellTarget.Empty();
Plugin.LogProxy.Info(
Plugin.LogProxy.Debug(
$"[Pin] Promoted tab '{tab.Name}' to permanent (tell-binding dropped)"
);
_plugin.SaveConfig();