Patryk GenschandClaude Opus 5 2a051c561b Add script decoding, full-text search and catalog entities
Script pipeline:
- decode: ScriptDecypher from :core into a content-addressed cache keyed by
  blob SHA-1, so a script shared by several images is decoded once. Cache
  invalidation is driven by artifact.tool_version, i.e. the pinned :core tag.
- find/cat: FTS5 index over decoded bodies. tokenchars '_' keeps identifiers
  whole; a query that fails to parse as FTS5 is retried as a quoted phrase.

Catalog entities:
- analyze: MetadataDetector reads dane/application.def for build date, game
  version, engine version and episodes. The APPLICATION object is located by
  type, not by name, since it is GAME, UFO or PIRACI depending on the title.
  CREATIONTIME is recorded separately from release_date because it is the
  project creation date, shared across a whole series.
- promote: builds titles and editions. KnownHashes entries conflate levels
  ("Reksio i UFO (pierwsza wersja)" is title plus edition label), so the
  parenthetical is split off and both UFO releases land under one title.
  Editions are merged on a fingerprint of engine DLL plus application.def
  hash; the DLL alone cannot separate the Herkules/Odyseusz two-in-one disc.
- set/lang: manual metadata a detector cannot infer - provenance, language
  lists with roles, engine/compiler/date overrides. Re-running promote only
  touches mechanical fields and leaves curated ones intact.

Schema:
- edition is rebuilt: dll_sha1 loses UNIQUE, since the two-in-one disc shares
  one engine library across two games. fingerprint becomes the merge key and
  *_override columns hold curated values. The rebuild only runs on an empty
  table; otherwise it fails loudly rather than dropping curated data.
- script_fts, an FTS5 virtual table keyed by blob rather than by file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 22:17:52 +02:00
2026-08-20 21:40:10 +02:00
2026-08-20 21:40:10 +02:00
2026-08-20 21:40:10 +02:00
S
Description
A utility app for organizing Aidem Media games and making it easier to analyze them
286 KiB
Languages
Java 86%
HTML 13%
Dockerfile 0.8%
Shell 0.2%