Prune stale docs and update .hermes content

Delete a large set of outdated documentation (many files under docs/ and .hermes/plans/, including audits, design, prd, technical, planning, assets, and todos). Update and consolidate .hermes content: refresh shared-memory pages (decision-log, development-workflow, document-map, pitfalls, project-overview, team-conventions) and several skills/references under .hermes/skills. Also modify AGENTS.md, README.md, UI_CODING_STANDARD.md, docs/README.md and .encoding-check-ignore. Purpose: clean up stale planning/audit material and keep current hermes documentation and related top-level docs in sync.
This commit is contained in:
2026-05-15 06:24:07 +08:00
parent 2eded08bc7
commit 3cb3efb4d0
708 changed files with 4033 additions and 142328 deletions

View File

@@ -709,6 +709,32 @@ function hasMatch3DRuntimeAsset(
return hasMatch3DGeneratedImageAsset(assets);
}
function hasMatch3DRuntimeBackgroundAsset(
profile: Pick<
Match3DWorkSummary,
| 'backgroundImageSrc'
| 'backgroundImageObjectKey'
| 'generatedBackgroundAsset'
| 'generatedItemAssets'
>,
) {
return Boolean(
profile.backgroundImageSrc?.trim() ||
profile.backgroundImageObjectKey?.trim() ||
profile.generatedBackgroundAsset?.imageSrc?.trim() ||
profile.generatedBackgroundAsset?.imageObjectKey?.trim() ||
profile.generatedBackgroundAsset?.containerImageSrc?.trim() ||
profile.generatedBackgroundAsset?.containerImageObjectKey?.trim() ||
profile.generatedItemAssets?.some(
(asset) =>
asset.backgroundAsset?.imageSrc?.trim() ||
asset.backgroundAsset?.imageObjectKey?.trim() ||
asset.backgroundAsset?.containerImageSrc?.trim() ||
asset.backgroundAsset?.containerImageObjectKey?.trim(),
),
);
}
function resolveMatch3DRuntimeGeneratedItemAssets(
run: Match3DRunSnapshot | null,
profile: Match3DWorkProfile | null,
@@ -3773,6 +3799,7 @@ export function PlatformEntryFlowShellImpl({
try {
await preloadMatch3DGeneratedRuntimeAssets(
runtimeProfile.generatedItemAssets,
runtimeProfile.generatedBackgroundAsset,
{ expireSeconds: 300 },
);
const { run } = await match3dRuntimeAdapter.startRun(
@@ -4880,6 +4907,7 @@ export function PlatformEntryFlowShellImpl({
try {
await preloadMatch3DGeneratedRuntimeAssets(
runtimeProfile.generatedItemAssets,
runtimeProfile.generatedBackgroundAsset,
{ expireSeconds: 300 },
);
const { run } = await match3dRuntimeAdapter.startRun(
@@ -6557,7 +6585,10 @@ export function PlatformEntryFlowShellImpl({
try {
let runtimeProfile = profile;
if (!hasMatch3DRuntimeAsset(profile.generatedItemAssets)) {
if (
!hasMatch3DRuntimeAsset(profile.generatedItemAssets) ||
!hasMatch3DRuntimeBackgroundAsset(profile)
) {
try {
const { item } = await getMatch3DWorkDetail(profile.profileId);
runtimeProfile = {
@@ -6579,6 +6610,7 @@ export function PlatformEntryFlowShellImpl({
};
await preloadMatch3DGeneratedRuntimeAssets(
runtimeProfile.generatedItemAssets,
runtimeProfile.generatedBackgroundAsset,
{ expireSeconds: 300 },
);
const runtimeOptions = {
@@ -9314,6 +9346,11 @@ export function PlatformEntryFlowShellImpl({
isBusy={isMatch3DBusy}
error={match3dError}
embedded
hideBackButton
levelName={
activeMatch3DRuntimeProfile?.gameName?.trim() ||
activeEntry.worldName
}
generatedItemAssets={resolveMatch3DRuntimeGeneratedItemAssets(
match3dRun,
activeMatch3DRuntimeProfile,