P23-03: 生活の観察

This commit is contained in:
Agent Control Runner
2026-10-15 10:32:29 +09:00
parent 0b7727a66c
commit 21b5d3a31a
36 changed files with 4133 additions and 66 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,253 @@
# P23-03 offline repair — evidence gap
Status: blocked, not static-complete. No acceptance credit. The failed 0b7727a
OS run remains failure history. No receipts, mirror files, product, values,
styles or test gates were changed. No git writes or engine/OS/collector/full
runs were performed.
## Corrected direction
The three previous pixel assumptions are superseded:
1. `viewport_to_screen` maps to content coordinates, not screenshot pixels.
Actual request-0002 and request-0004 CUA receipt calibration records window
size 1440x810, screenshot 1440x842, titlebar 32, backing scale 1 and stretch 1.
The image lookup must apply the calibrated content origin and independently
check agreement with actual CUA click offsets; the number 32 must not become
a checker constant. Existing affine composition checks remain required.
2. Source RGB cannot be required unchanged after JPEG conversion, NO_STAFF
dimming, ghost outlines and antialiasing. Palette identity is source
provenance, not a screenshot color oracle. Pixel proof needs measured
within-image noise and independent expected-class/state/shift alternatives.
3. Every report row must be accounted for, but not every row is visible. Use
report/audit fields for visible, clipped/clamped, outside with reason,
ghost/inactive and facility-state dimming. Require eligible visible coverage
of all six categories on both FRONT and BACK. Never silently skip a row.
The spec requires draw-consumed rows, pixel rectangles and provenance to
correspond; it does not require unchanged source RGB. The function docstring
now explicitly warns that the implementation still uses the superseded checks.
## Verified material and blocking dependency
Mirror:
`/Users/korizatou114/Projects/TheTree-managed-worktrees/p23-03-code/.runtime/P23-03/offline-os-0b7727a-r07`
All 94 files named by MIRROR_INDEX.json were read and their SHA256 verified;
zero missing files or mismatches. The only indexed conversion record is
`os-pair/A/writer-request-0002/root-early-conversion.json`, with stdout/stderr.
The only decoded PNG is the corresponding `root-early-decoded.png`, SHA256
`206a9aafdc50d1f2f330690e14390de8c7ed5b0df024cedf8f2fbd35326f455a`.
The other three required stable screenshots are JPEG bytes despite .png names:
- `os-pair/A/writer-request-0002/screen-after.png`
- `os-pair/A/writer-request-0004/screen-before.png`
- `os-pair/A/writer-request-0004/screen-after.png`
Their magic starts `ffd8ffe000104a46`. No frozen decoded PNG/conversion records
for these files are in the mirror. Searching the original source root named
by MIRROR_INDEX for `*decoded*.png` and `*conversion*.json` also returned none.
The existing conversion verifier requires a separate PNG, original raw hash,
CUA call attribution and pinned `/usr/bin/sips` conversion record. Creating
replacement conversion assertions, rewriting receipt paths, or silently
changing that converter authority would not preserve this proof gate.
Minimal next input: Root supplies separate decoded PNGs and genuine conversion
records/logs for those three existing raw images, adds their hashes to a new
mirror inventory while preserving the original inventory and receipts. This
does not require another OS capture. Alternatively the commander must explicitly
specify an offline Python JPEG decoder authority and its provenance contract.
Worker must not execute sips under the Python-only direction.
Until then the requested full frozen before/after comparison, BACK cropped
pixel fixtures, calibrated noise and per-row pixel results cannot be submitted
as complete. Geometry/report preparation alone cannot meet all requested tests.
The behavioral repair and new fixtures/tests have not been implemented.
## Local commands and outputs
These read-only Python checks used the mirror path above as `p`:
```python
import json, pathlib, hashlib
p = pathlib.Path('/Users/korizatou114/Projects/TheTree-managed-worktrees/p23-03-code/.runtime/P23-03/offline-os-0b7727a-r07')
j = json.loads((p / 'MIRROR_INDEX.json').read_text())
bad = [r['path'] for r in j['files'] if not (p/r['path']).is_file()
or hashlib.sha256((p/r['path']).read_bytes()).hexdigest() != r['sha256']]
print('indexed', len(j['files']), 'mismatches', bad)
print('conversion records', [r['path'] for r in j['files'] if 'conversion' in r['path']])
```
Output:
```
indexed 94 mismatches []
conversion records ['os-pair/A/writer-request-0002/root-early-conversion.json', 'os-pair/A/writer-request-0002/root-early-conversion.json.stderr', 'os-pair/A/writer-request-0002/root-early-conversion.json.stdout']
```
Calling the existing `screenshot_pixels(p/name)` for each of the three paths
above (without manufacturing a conversion argument) produced:
```
writer-request-0002/screen-after.png: JPEG screenshot requires conversion record
writer-request-0004/screen-before.png: JPEG screenshot requires conversion record
writer-request-0004/screen-after.png: JPEG screenshot requires conversion record
```
Command: `python3 tools/test_p23_life_observation_evidence.py`
```
................................
----------------------------------------------------------------------
Ran 32 tests in 0.058s
OK
```
These are existing unit tests, not the requested new repair tests, and do not
prove the repair or acceptance. Root native/OS/full review remains pending.
Seven conditions, six categories, 30/88, no partial credit, timeout 900 and
cap null remain unchanged.
## Follow-on: 106-entry mirror (2026-10-15)
The missing-conversion dependency above is **resolved**, not a current blocker.
The prior text is retained as failure history. The worker read all 106 indexed
files and verified every byte count and SHA256, plus the preserved initial94
inventory SHA and unchanged entries. No mirror or original receipt was edited.
`OFFLINE_MIRROR_106_DIAGNOSTICS.json` contains the explicit original absolute
path -> mirrored absolute path -> equal indexed SHA256 mapping for all106 files,
including the eight named PNG/conversion files. Each conversion was checked
against its corresponding actual CUA screenshot call ID/raw hash, pinned sips
binary SHA, original argv, output PNG magic/dimensions/hash and stdout/stderr
hashes. Original raw/png path strings and argv remain unchanged. A read-only
resolver locates indexed mirrored bytes; it does not rewrite conversion records.
Direct reads of the source artifact directory were denied by the host
(`PermissionError: Operation not permitted`); equality to the frozen inventory
and conversion-record hashes was verified, not a fresh direct source-directory
comparison. This limitation is not represented as a missing PNG conversion.
New `--offline-mirror` preparation diagnostics check content/image dimensions,
backing scale, content origin derived from recorded titlebar, affine composition,
and agreement with the separately recorded click events. They independently
derive existing audit row identities/local rectangles from report positions and
source palette provenance. Every existing audit row has visible/clipped/outside
accounting and a calibrated screenshot rectangle. Room enum/operation names are
read from the actual FacilityInstance source. Dimming is derived from operation,
not merely the NO_STAFF state name. These are preparation diagnostics, not a
replacement acceptance pixel gate. In particular, audit font_width remains an
engine assertion, and receipt click events have not been verified against the
full helper-definition/tool trace. No source RGB tolerance was invented.
Actual frozen-frame results:
- FRONT request0002: 9 audit rows (3 room,1 queue,2 guest,3 business), all visible.
EV/staff/goods coverage pending. Two rooms are INACTIVE and one OPERATING.
One actual draw-consumed traffic overlay at cell[-6,2,0], local rect
[261,294,60,92], has no corresponding rectangle-audit row.
- BACK request0004: 4 audit rows (2 room,2 business), all visible and both rooms
INACTIVE. Queue/EV/staff/goods coverage pending; no eligible traffic overlay.
- Before/after temporal differences within all13 calibrated audit rectangles
are zero. This establishes stability only, not spatial JPEG error or correct
drawing class/state. It supplies no pixel acceptance credit.
- The existing independent typed-stream checker recomputed all14 frozen stream
records successfully; the CLI still returned blocked/pending(exit2), as required.
Current repair status: **incomplete / blocked**, not genuinely submitted.
The legacy `compare_rectangles` and its normal-OS call site have deliberately
not been relabelled as repaired. Remaining worker work includes an independent
expected-class/state/shift pixel discriminator with measured within-image noise,
state negatives, full ghost/inactive/traffic draw accounting, independent badge
width provenance and integration into the strict OS checker. The added
preparation path does not solve these items and must not be used for acceptance.
Missing frozen provenance includes the FRONT traffic-overlay rectangle audit,
opposite-layer ghost draw audit, and independent font measurements for badge
widths. Existing reports/source can support further preparation; these missing
records do not establish that a fresh OS capture is already necessary.
Local validation: Python AST syntax checks; 42 checker unit tests (existing32
plus10 preparation tests); actual mirrored checker commands above. Tests cover
wrong titlebar/click shifts, PID, nonfinite scales, clipped/outside rectangles,
measured temporal noise, report rectangle/identity/coverage/palette tampering.
They do not include the still-required pixel-state discriminator negatives.
No Godot, native, sips execution, collector, OS run, full regression, git write,
branch/integration, Runner action or agent delegation occurred. Root native,
complete A/B FRONT/BACK pan/zoom/distinct-PID OS matrix, mandatory full regression
and independent Opus review remain pending. Historical baselines remain32 tests,
17+17 semantic,319 native,7153/2585 and7/6/30/88; the new local42 count is not a
replacement acceptance baseline. Timeout900 and cap null are unchanged.
## Owner proof-method repair (2026-10-15)
The owner's recorded decision supersedes the proposed automatic class/state/
style discriminator, shift/swap alternative scoring, measured-noise gate and
independent badge-width measurement gate. They are no longer required work.
Palette RGB is provenance only. Font width remains the recorded engine value;
no independent font measurement or numeric image tolerance was introduced.
All earlier entries above are retained as history, not current requirements.
Implemented within the narrowed Python edit scope:
- Shared `frame_rows` now handles both offline and normal OS screenshot frames,
uses receipt calibration checked against actual click events, checks affine
composition, independently derives row identity/local geometry/text/palette,
validates room state/operation and actor enum names, and retains every audit
row with visibility, clipping reason, calibrated image rectangle and failures.
- The legacy `compare_rectangles` and its tests are removed and replaced by
grounded negatives. Fully outside eligible image crops and exactly uniform
crops fail; source RGB is never compared to screenshot RGB.
- `drawing_rectangle_rows` now expects every draw-consumed traffic overlay.
Missing/extra rows fail the mechanical frame, without synthesizing audit rows.
- Pure-Python PNG crops and review manifests are written for each frozen frame.
Manifests bind decoded whole-image/raw/conversion/request/receipt hashes,
per-row source hash, recorded font width, state, operation, layer and geometry.
A separate SHA file hashes the exact manifest bytes. Normal OS frames use the
same path and emit per-image review materials. Pixel categories receive no
credit without an independent direct-image review verdict bound to that SHA,
covering every eligible row with category/state/position verdicts. The worker
created no actual review verdict; synthetic verdict files exist only inside
temporary unit-test fixtures.
Current scope blocker, found by reading the actual dependencies:
`tests/fixtures/p23-03/passive_observation.gd:150` owns `draw_rectangles`, not
`world_preview.gd`. Its explicit room/queue/cabin/actor/badge loops at lines
152-171 do not consume traffic audit rows from the view or report. The transform
and palette audit path at lines172-182 only processes that locally built array.
`world_preview.gd:762` draws the traffic overlay, but has no existing rectangle
audit emitter or callback. Changing only world_preview cannot connect traffic
rows to the actual request's `rectangles` field without altering the fixture.
No inert emitter, mislabelled badge, or checker-generated observed audit was
added to pretend this connection exists. World source remains unchanged.
Minimal separate scope proposal: permit one read-only traffic-row loop in
`passive_observation.gd::draw_rectangles`, before its existing transform/palette
loop, consuming report traffic rows with density>0 or temporary_block. Use
category `traffic`, comma-separated cell coordinates as id, the report rectangle
and `scenes/main/world_preview.gd` as style source. Alternatively explicitly
authorize wiring a view-owned traffic audit emitter into that same fixture.
The broad contract lists this fixture, but the latest finish recipe explicitly
narrows edits to checker/tests and world only; the worker did not override it.
Step4 is therefore incomplete and this repair is **blocked**, not submitted.
Local validation: both Python files parse with `ast.parse`; 47 local checker
tests pass. New tests exercise blank crops, missing/extra/traffic rows, enum/name
errors, affine/click calibration shifts, image-outside crops, exact crop hashes,
wrong-manifest/missing/extra/rejected review rows and no credit without review.
The r07 offline CLI verified all106 indexed entries and exited2 as blocked:
- FRONT request0002: expected10 rows, observed9; mechanical failure
`offline rectangle coverage`. The traffic overlay at [-6,2,0] remains a genuine
unaudited overlay. EV/staff/goods coverage pending; zero pixel credit.
- BACK request0004: expected4/observed4; mechanical checks pass.
Queue/EV/staff/goods coverage pending; zero pixel credit.
Current review artifacts are in `offline-r07-review/`; complete diagnostics are
in `OFFLINE_REPAIR_OWNER_METHOD_DIAGNOSTICS.json`. The prior
`OFFLINE_MIRROR_106_DIAGNOSTICS.json` is preserved unchanged.
Still pending: Root frozen native checks, fresh A/B FRONT/BACK ordinary pan/zoom
OS observation and formal distinct-PID resume, the exact full177 regression,
and independent Opus direct-image/all-condition review. No Godot, Runner,
native/OS, full regression, git write, integration or agent execution occurred.
All7 conditions, all6 categories on both layers/layouts, source recomputation,
raw/request/CUA/conversion provenance, calibrated geometry, 30/88 without partial
credit, timeout900 and cap null remain unchanged. No acceptance PASS is claimed.
@@ -0,0 +1,922 @@
{
"errors": [
"offline rectangle coverage"
],
"expected_row_count": 10,
"images": [
{
"conversion_sha256": "d9e92a5b1925d6e1855f6eaff2820007d7db8dd79a5348ec801a38251b40fe90",
"raw_sha256": "ab073ed1055ca2356a050fdd47176c454c109ebe5c008b194ea8a5f149efa7f5",
"receipt_sha256": "184d50e702232ce259ca75b830992cb8e91d5175289a21812661325bf0024860",
"request_sha256": "172dc9a8f4bb684583f7417ac4c544172ee66b4134845fe540326df5598e6167",
"whole_image_sha256": "206a9aafdc50d1f2f330690e14390de8c7ed5b0df024cedf8f2fbd35326f455a"
},
{
"conversion_sha256": "b25b2224963f9a02ad87675969ab51c90aff29891b136095198afc2fe95acb73",
"raw_sha256": "7027a7f1813aa8c9fcff38e6e4b022ed718d6f9c9fd13d31ecc3d6d10818ac10",
"receipt_sha256": "184d50e702232ce259ca75b830992cb8e91d5175289a21812661325bf0024860",
"request_sha256": "172dc9a8f4bb684583f7417ac4c544172ee66b4134845fe540326df5598e6167",
"whole_image_sha256": "e6ab48ad864a1b5fdca2da587d95fe7949ac0c59e664a4524db66e3e861a73aa"
}
],
"mechanical_pass": false,
"rows": [
{
"category": "room",
"crops": [
{
"image_index": 0,
"path": "row-0000-image-0.png",
"sha256": "0811d7a2ac82283233b2b5179ddc6ac32a86fac3a211febae2c706ba36513286"
},
{
"image_index": 1,
"path": "row-0000-image-1.png",
"sha256": "0811d7a2ac82283233b2b5179ddc6ac32a86fac3a211febae2c706ba36513286"
}
],
"dimmed": true,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": null,
"id": "facility_00000002",
"layer": 0,
"local_rect": [
131.0,
388.0,
256.0,
192.0
],
"mechanical_pass": false,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 0,
"screenshot_rect": [
210.0,
485.0,
256.0,
192.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"34413b",
"8e6348",
"c39665",
"eee5c9",
"608d84",
"c6b999",
"a6b6a0",
"d4c7a5",
"acb9a5",
"897487",
"f1e9cb",
"b39b77",
"615563",
"a57852",
"587f7b",
"edc97c",
"d6ad52",
"709b94",
"a37b91",
"72b6b8",
"c1e0d4",
"445652",
"a2b2a3",
"d3aa8f",
"ca9c62",
"ffe9a8",
"6c8993",
"adc5b4",
"52836c",
"c7c6a6",
"a8b6aa",
"d8bf89",
"aec0bf",
"8a7155",
"617f82",
"3e514e",
"404f63",
"83958a",
"283a39",
"586c62",
"526177",
"dcc08b",
"9daa8d",
"879eaa",
"556e62",
"4d6472",
"e2bd6c",
"ba7157",
"bfbb9a",
"a9aa91",
"9ab9b3",
"d5e3d0",
"f2ca81",
"fff0d6",
"a67c53"
],
"style_source": "scripts/ui/pixel_tower_art.gd",
"style_source_sha256": "71df9b8400cb883a5bb1c89729f80c77e734df503fc54154be3e486adb8391df",
"text": null
},
{
"category": "room",
"crops": [
{
"image_index": 0,
"path": "row-0001-image-0.png",
"sha256": "bb79fa3c9cc46f2f7b9d31b2de85c3b6f6b4446718d3614cfeeba818ea87cb69"
},
{
"image_index": 1,
"path": "row-0001-image-1.png",
"sha256": "bb79fa3c9cc46f2f7b9d31b2de85c3b6f6b4446718d3614cfeeba818ea87cb69"
}
],
"dimmed": true,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": null,
"id": "facility_00000003",
"layer": 0,
"local_rect": [
1027.0,
388.0,
256.0,
192.0
],
"mechanical_pass": false,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 1,
"screenshot_rect": [
1106.0,
485.0,
256.0,
192.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"34413b",
"8e6348",
"c39665",
"eee5c9",
"608d84",
"c6b999",
"a6b6a0",
"d4c7a5",
"acb9a5",
"897487",
"f1e9cb",
"b39b77",
"615563",
"a57852",
"587f7b",
"edc97c",
"d6ad52",
"709b94",
"a37b91",
"72b6b8",
"c1e0d4",
"445652",
"a2b2a3",
"d3aa8f",
"ca9c62",
"ffe9a8",
"6c8993",
"adc5b4",
"52836c",
"c7c6a6",
"a8b6aa",
"d8bf89",
"aec0bf",
"8a7155",
"617f82",
"3e514e",
"404f63",
"83958a",
"283a39",
"586c62",
"526177",
"dcc08b",
"9daa8d",
"879eaa",
"556e62",
"4d6472",
"e2bd6c",
"ba7157",
"bfbb9a",
"a9aa91",
"9ab9b3",
"d5e3d0",
"f2ca81",
"fff0d6",
"a67c53"
],
"style_source": "scripts/ui/pixel_tower_art.gd",
"style_source_sha256": "71df9b8400cb883a5bb1c89729f80c77e734df503fc54154be3e486adb8391df",
"text": null
},
{
"category": "room",
"crops": [
{
"image_index": 0,
"path": "row-0002-image-0.png",
"sha256": "b90d74efdd21be0eb69555138dccacb62100825a908c6f17958e17a46321056b"
},
{
"image_index": 1,
"path": "row-0002-image-1.png",
"sha256": "b90d74efdd21be0eb69555138dccacb62100825a908c6f17958e17a46321056b"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": null,
"id": "facility_00000007",
"layer": 0,
"local_rect": [
131.0,
292.0,
128.0,
96.0
],
"mechanical_pass": false,
"operation": "OPERATING",
"reason": "whole rectangle in viewport",
"row_index": 2,
"screenshot_rect": [
210.0,
389.0,
128.0,
96.0
],
"state": "OPEN",
"state_name": "OPEN",
"style_colors": [
"34413b",
"8e6348",
"c39665",
"eee5c9",
"608d84",
"c6b999",
"a6b6a0",
"d4c7a5",
"acb9a5",
"897487",
"f1e9cb",
"b39b77",
"615563",
"a57852",
"587f7b",
"edc97c",
"d6ad52",
"709b94",
"a37b91",
"72b6b8",
"c1e0d4",
"445652",
"a2b2a3",
"d3aa8f",
"ca9c62",
"ffe9a8",
"6c8993",
"adc5b4",
"52836c",
"c7c6a6",
"a8b6aa",
"d8bf89",
"aec0bf",
"8a7155",
"617f82",
"3e514e",
"404f63",
"83958a",
"283a39",
"586c62",
"526177",
"dcc08b",
"9daa8d",
"879eaa",
"556e62",
"4d6472",
"e2bd6c",
"ba7157",
"bfbb9a",
"a9aa91",
"9ab9b3",
"d5e3d0",
"f2ca81",
"fff0d6",
"a67c53"
],
"style_source": "scripts/ui/pixel_tower_art.gd",
"style_source_sha256": "71df9b8400cb883a5bb1c89729f80c77e734df503fc54154be3e486adb8391df",
"text": null
},
{
"category": "queue",
"crops": [
{
"image_index": 0,
"path": "row-0003-image-0.png",
"sha256": "eeb6b5a301d017693ba3acd47d22b63348bc6536c5ddcfd593aa0d593e256aac"
},
{
"image_index": 1,
"path": "row-0003-image-1.png",
"sha256": "eeb6b5a301d017693ba3acd47d22b63348bc6536c5ddcfd593aa0d593e256aac"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": 36.0,
"id": "0",
"layer": 0,
"local_rect": [
259.0,
276.0,
42.0,
14.0
],
"mechanical_pass": false,
"operation": null,
"reason": "whole rectangle in viewport",
"row_index": 3,
"screenshot_rect": [
338.0,
373.0,
42.0,
14.0
],
"state": {
"members": [
"guest/guest-auto-00000019"
],
"overflow": 0,
"visible_count": 1
},
"state_name": null,
"style_colors": [
"b5cbb5",
"273c49",
"526d68",
"233d40",
"8cae98",
"749981",
"567e68",
"c6d3b6",
"d5dec4",
"574d39",
"776445",
"8a7350",
"69583d",
"65583e",
"385d45",
"47463e",
"5a594b",
"aaa083",
"829a8d",
"b69465",
"514839",
"8d7951",
"e1bd6c",
"dfd4ad",
"2f493f",
"e4d9b9",
"58784c",
"4c7950",
"5e8b57",
"739957",
"95ad69",
"648957",
"e34332",
"e3a62f",
"55c96b",
"f5d582",
"34413b",
"fff2ce",
"3c4e40",
"f5d58a",
"304b41",
"f0e2b9",
"303c40",
"d69a56",
"4ca5c7",
"efbd72",
"79d3e7",
"e5f8fa",
"64d48c",
"e16262",
"8ff0ab",
"ff8a80",
"52bdd0",
"8ce6ee",
"d7ebef",
"29483d",
"f0e2bd",
"8ca4af",
"6f8b67",
"427582",
"a24b45",
"a77d3f",
"6b6258",
"89914d",
"6f9a55",
"67518e",
"ffd080"
],
"style_source": "scenes/main/world_preview.gd",
"style_source_sha256": "add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0",
"text": "待ち1人"
},
{
"category": "guest",
"crops": [
{
"image_index": 0,
"path": "row-0004-image-0.png",
"sha256": "e08ebb7ae2eb1f2f66360df04d7c132bed923ece9ba5d406c72f23c16bc71e34"
},
{
"image_index": 1,
"path": "row-0004-image-1.png",
"sha256": "e08ebb7ae2eb1f2f66360df04d7c132bed923ece9ba5d406c72f23c16bc71e34"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": null,
"id": "guest/guest-auto-00000019",
"layer": 0,
"local_rect": [
267.0,
325.0,
48.0,
54.0
],
"mechanical_pass": false,
"operation": null,
"reason": "whole rectangle in viewport",
"row_index": 4,
"screenshot_rect": [
346.0,
422.0,
48.0,
54.0
],
"state": "QUEUING",
"state_name": "QUEUING",
"style_colors": [
"688da0",
"b87659",
"a69a63",
"89789e",
"638d72",
"edc49d",
"c99371",
"a56f50",
"303c40",
"719d94",
"eee5c9",
"608d84",
"eee6c7",
"e3dfc2",
"956940",
"d3ad6b",
"b48850",
"af9059",
"d8bc78",
"f3ebcf",
"efe7ce",
"805e44"
],
"style_source": "scripts/ui/pixel_people.gd",
"style_source_sha256": "a171703083aa2d00f8be2b63e1daef9c41717c8fe59d8056878bc4b7df1e0b0c",
"text": null
},
{
"category": "guest",
"crops": [
{
"image_index": 0,
"path": "row-0005-image-0.png",
"sha256": "8b4be9869042638da9a5afdd90ce982baa16623c2b5e4cbedc50109680867522"
},
{
"image_index": 1,
"path": "row-0005-image-1.png",
"sha256": "8b4be9869042638da9a5afdd90ce982baa16623c2b5e4cbedc50109680867522"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": null,
"id": "guest/guest-auto-00000020",
"layer": 0,
"local_rect": [
139.0,
301.0,
48.0,
54.0
],
"mechanical_pass": false,
"operation": null,
"reason": "whole rectangle in viewport",
"row_index": 5,
"screenshot_rect": [
218.0,
398.0,
48.0,
54.0
],
"state": "RECEIVING_SERVICE",
"state_name": "RECEIVING_SERVICE",
"style_colors": [
"688da0",
"b87659",
"a69a63",
"89789e",
"638d72",
"edc49d",
"c99371",
"a56f50",
"303c40",
"719d94",
"eee5c9",
"608d84",
"eee6c7",
"e3dfc2",
"956940",
"d3ad6b",
"b48850",
"af9059",
"d8bc78",
"f3ebcf",
"efe7ce",
"805e44"
],
"style_source": "scripts/ui/pixel_people.gd",
"style_source_sha256": "a171703083aa2d00f8be2b63e1daef9c41717c8fe59d8056878bc4b7df1e0b0c",
"text": null
},
{
"category": "business",
"crops": [
{
"image_index": 0,
"path": "row-0006-image-0.png",
"sha256": "62525c0b9f2c189545666c134eb6f83b660d6efbc0698278ce049ace7e708d0a"
},
{
"image_index": 1,
"path": "row-0006-image-1.png",
"sha256": "62525c0b9f2c189545666c134eb6f83b660d6efbc0698278ce049ace7e708d0a"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": 73.0,
"id": "0",
"layer": 0,
"local_rect": [
133.0,
390.0,
79.0,
14.0
],
"mechanical_pass": false,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 6,
"screenshot_rect": [
212.0,
487.0,
79.0,
14.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"b5cbb5",
"273c49",
"526d68",
"233d40",
"8cae98",
"749981",
"567e68",
"c6d3b6",
"d5dec4",
"574d39",
"776445",
"8a7350",
"69583d",
"65583e",
"385d45",
"47463e",
"5a594b",
"aaa083",
"829a8d",
"b69465",
"514839",
"8d7951",
"e1bd6c",
"dfd4ad",
"2f493f",
"e4d9b9",
"58784c",
"4c7950",
"5e8b57",
"739957",
"95ad69",
"648957",
"e34332",
"e3a62f",
"55c96b",
"f5d582",
"34413b",
"fff2ce",
"3c4e40",
"f5d58a",
"304b41",
"f0e2b9",
"303c40",
"d69a56",
"4ca5c7",
"efbd72",
"79d3e7",
"e5f8fa",
"64d48c",
"e16262",
"8ff0ab",
"ff8a80",
"52bdd0",
"8ce6ee",
"d7ebef",
"29483d",
"f0e2bd",
"8ca4af",
"6f8b67",
"427582",
"a24b45",
"a77d3f",
"6b6258",
"89914d",
"6f9a55",
"67518e",
"ffd080"
],
"style_source": "scenes/main/world_preview.gd",
"style_source_sha256": "add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0",
"text": "職員不足 未稼働"
},
{
"category": "business",
"crops": [
{
"image_index": 0,
"path": "row-0007-image-0.png",
"sha256": "379c49ce02077552289ae503c74a4a0032150ff6cec3ea20c42045f6a059ec3d"
},
{
"image_index": 1,
"path": "row-0007-image-1.png",
"sha256": "379c49ce02077552289ae503c74a4a0032150ff6cec3ea20c42045f6a059ec3d"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": 73.0,
"id": "1",
"layer": 0,
"local_rect": [
1029.0,
390.0,
79.0,
14.0
],
"mechanical_pass": false,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 7,
"screenshot_rect": [
1108.0,
487.0,
79.0,
14.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"b5cbb5",
"273c49",
"526d68",
"233d40",
"8cae98",
"749981",
"567e68",
"c6d3b6",
"d5dec4",
"574d39",
"776445",
"8a7350",
"69583d",
"65583e",
"385d45",
"47463e",
"5a594b",
"aaa083",
"829a8d",
"b69465",
"514839",
"8d7951",
"e1bd6c",
"dfd4ad",
"2f493f",
"e4d9b9",
"58784c",
"4c7950",
"5e8b57",
"739957",
"95ad69",
"648957",
"e34332",
"e3a62f",
"55c96b",
"f5d582",
"34413b",
"fff2ce",
"3c4e40",
"f5d58a",
"304b41",
"f0e2b9",
"303c40",
"d69a56",
"4ca5c7",
"efbd72",
"79d3e7",
"e5f8fa",
"64d48c",
"e16262",
"8ff0ab",
"ff8a80",
"52bdd0",
"8ce6ee",
"d7ebef",
"29483d",
"f0e2bd",
"8ca4af",
"6f8b67",
"427582",
"a24b45",
"a77d3f",
"6b6258",
"89914d",
"6f9a55",
"67518e",
"ffd080"
],
"style_source": "scenes/main/world_preview.gd",
"style_source_sha256": "add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0",
"text": "職員不足 未稼働"
},
{
"category": "business",
"crops": [
{
"image_index": 0,
"path": "row-0008-image-0.png",
"sha256": "79ea1c2d0ff2d4e8f6c7ff20f019a4e264c480438e7528b8de85709b8d8eeda5"
},
{
"image_index": 1,
"path": "row-0008-image-1.png",
"sha256": "79ea1c2d0ff2d4e8f6c7ff20f019a4e264c480438e7528b8de85709b8d8eeda5"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [
"offline rectangle coverage"
],
"font_width": 69.0,
"id": "2",
"layer": 0,
"local_rect": [
133.0,
294.0,
75.0,
14.0
],
"mechanical_pass": false,
"operation": "OPERATING",
"reason": "whole rectangle in viewport",
"row_index": 8,
"screenshot_rect": [
212.0,
391.0,
75.0,
14.0
],
"state": "OPEN",
"state_name": "OPEN",
"style_colors": [
"b5cbb5",
"273c49",
"526d68",
"233d40",
"8cae98",
"749981",
"567e68",
"c6d3b6",
"d5dec4",
"574d39",
"776445",
"8a7350",
"69583d",
"65583e",
"385d45",
"47463e",
"5a594b",
"aaa083",
"829a8d",
"b69465",
"514839",
"8d7951",
"e1bd6c",
"dfd4ad",
"2f493f",
"e4d9b9",
"58784c",
"4c7950",
"5e8b57",
"739957",
"95ad69",
"648957",
"e34332",
"e3a62f",
"55c96b",
"f5d582",
"34413b",
"fff2ce",
"3c4e40",
"f5d58a",
"304b41",
"f0e2b9",
"303c40",
"d69a56",
"4ca5c7",
"efbd72",
"79d3e7",
"e5f8fa",
"64d48c",
"e16262",
"8ff0ab",
"ff8a80",
"52bdd0",
"8ce6ee",
"d7ebef",
"29483d",
"f0e2bd",
"8ca4af",
"6f8b67",
"427582",
"a24b45",
"a77d3f",
"6b6258",
"89914d",
"6f9a55",
"67518e",
"ffd080"
],
"style_source": "scenes/main/world_preview.gd",
"style_source_sha256": "add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0",
"text": "営業中 利用1人"
}
]
}
@@ -0,0 +1 @@
646334f4ef3c78a8cfe5d68d3738c4d772cdd71cbf80b2dba7c153693ead4419
@@ -0,0 +1,443 @@
{
"errors": [],
"expected_row_count": 4,
"images": [
{
"conversion_sha256": "363c2bdb1da77458226d01e971b9aea1220fcc81f70fb5c3c816a12b7039fac3",
"raw_sha256": "2abb4675f9978e7b86599c4334732ebadcb7cd5c5c51deeacaa7d0dee858e9b9",
"receipt_sha256": "b393e4e0afcdbc72f8cbb3c88cbe6cab7fa2548855ee648c69c5ac61f7fffb17",
"request_sha256": "1a9ace68b3cf0ca997ea3e28ba1da1c30aa0cff72bf5d433d008ce578c7de093",
"whole_image_sha256": "abf7d2e89413431438f35cc3eecb5534a7257cb033906c5397592678b2e9bce4"
},
{
"conversion_sha256": "d9f5e79103258a50bb5d0866725a8488017a9cc8ef150312d16de9043618b55c",
"raw_sha256": "e5a7ac0c3ba3f001baae7c771304d1a9a9cf024240176e8f8735a9dcf1091b31",
"receipt_sha256": "b393e4e0afcdbc72f8cbb3c88cbe6cab7fa2548855ee648c69c5ac61f7fffb17",
"request_sha256": "1a9ace68b3cf0ca997ea3e28ba1da1c30aa0cff72bf5d433d008ce578c7de093",
"whole_image_sha256": "b82e6ef061d9b4e8cbc3321405553f3f447c8abfb61ce38532254130a704ee95"
}
],
"mechanical_pass": true,
"rows": [
{
"category": "room",
"crops": [
{
"image_index": 0,
"path": "row-0000-image-0.png",
"sha256": "94beea581b9586cda35d6c16a0bb8dccc7cad6c6cd0a9842ead3b34d19066f43"
},
{
"image_index": 1,
"path": "row-0000-image-1.png",
"sha256": "94beea581b9586cda35d6c16a0bb8dccc7cad6c6cd0a9842ead3b34d19066f43"
}
],
"dimmed": true,
"eligibility": "visible",
"failures": [],
"font_width": null,
"id": "facility_00000004",
"layer": 1,
"local_rect": [
131.0,
388.0,
256.0,
192.0
],
"mechanical_pass": true,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 0,
"screenshot_rect": [
210.0,
485.0,
256.0,
192.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"34413b",
"8e6348",
"c39665",
"eee5c9",
"608d84",
"c6b999",
"a6b6a0",
"d4c7a5",
"acb9a5",
"897487",
"f1e9cb",
"b39b77",
"615563",
"a57852",
"587f7b",
"edc97c",
"d6ad52",
"709b94",
"a37b91",
"72b6b8",
"c1e0d4",
"445652",
"a2b2a3",
"d3aa8f",
"ca9c62",
"ffe9a8",
"6c8993",
"adc5b4",
"52836c",
"c7c6a6",
"a8b6aa",
"d8bf89",
"aec0bf",
"8a7155",
"617f82",
"3e514e",
"404f63",
"83958a",
"283a39",
"586c62",
"526177",
"dcc08b",
"9daa8d",
"879eaa",
"556e62",
"4d6472",
"e2bd6c",
"ba7157",
"bfbb9a",
"a9aa91",
"9ab9b3",
"d5e3d0",
"f2ca81",
"fff0d6",
"a67c53"
],
"style_source": "scripts/ui/pixel_tower_art.gd",
"style_source_sha256": "71df9b8400cb883a5bb1c89729f80c77e734df503fc54154be3e486adb8391df",
"text": null
},
{
"category": "room",
"crops": [
{
"image_index": 0,
"path": "row-0001-image-0.png",
"sha256": "713f0f370de8ff40def7b5fbe9f071b8f5be3db1604b18bce5c6cf7e8eb62c54"
},
{
"image_index": 1,
"path": "row-0001-image-1.png",
"sha256": "713f0f370de8ff40def7b5fbe9f071b8f5be3db1604b18bce5c6cf7e8eb62c54"
}
],
"dimmed": true,
"eligibility": "visible",
"failures": [],
"font_width": null,
"id": "facility_00000005",
"layer": 1,
"local_rect": [
1027.0,
388.0,
256.0,
192.0
],
"mechanical_pass": true,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 1,
"screenshot_rect": [
1106.0,
485.0,
256.0,
192.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"34413b",
"8e6348",
"c39665",
"eee5c9",
"608d84",
"c6b999",
"a6b6a0",
"d4c7a5",
"acb9a5",
"897487",
"f1e9cb",
"b39b77",
"615563",
"a57852",
"587f7b",
"edc97c",
"d6ad52",
"709b94",
"a37b91",
"72b6b8",
"c1e0d4",
"445652",
"a2b2a3",
"d3aa8f",
"ca9c62",
"ffe9a8",
"6c8993",
"adc5b4",
"52836c",
"c7c6a6",
"a8b6aa",
"d8bf89",
"aec0bf",
"8a7155",
"617f82",
"3e514e",
"404f63",
"83958a",
"283a39",
"586c62",
"526177",
"dcc08b",
"9daa8d",
"879eaa",
"556e62",
"4d6472",
"e2bd6c",
"ba7157",
"bfbb9a",
"a9aa91",
"9ab9b3",
"d5e3d0",
"f2ca81",
"fff0d6",
"a67c53"
],
"style_source": "scripts/ui/pixel_tower_art.gd",
"style_source_sha256": "71df9b8400cb883a5bb1c89729f80c77e734df503fc54154be3e486adb8391df",
"text": null
},
{
"category": "business",
"crops": [
{
"image_index": 0,
"path": "row-0002-image-0.png",
"sha256": "a5ba5edbf9706e2b8a3ceb1de3d61e11074fbb731316e9686e2cec5ea98fc2ae"
},
{
"image_index": 1,
"path": "row-0002-image-1.png",
"sha256": "a5ba5edbf9706e2b8a3ceb1de3d61e11074fbb731316e9686e2cec5ea98fc2ae"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [],
"font_width": 73.0,
"id": "0",
"layer": 1,
"local_rect": [
133.0,
390.0,
79.0,
14.0
],
"mechanical_pass": true,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 2,
"screenshot_rect": [
212.0,
487.0,
79.0,
14.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"b5cbb5",
"273c49",
"526d68",
"233d40",
"8cae98",
"749981",
"567e68",
"c6d3b6",
"d5dec4",
"574d39",
"776445",
"8a7350",
"69583d",
"65583e",
"385d45",
"47463e",
"5a594b",
"aaa083",
"829a8d",
"b69465",
"514839",
"8d7951",
"e1bd6c",
"dfd4ad",
"2f493f",
"e4d9b9",
"58784c",
"4c7950",
"5e8b57",
"739957",
"95ad69",
"648957",
"e34332",
"e3a62f",
"55c96b",
"f5d582",
"34413b",
"fff2ce",
"3c4e40",
"f5d58a",
"304b41",
"f0e2b9",
"303c40",
"d69a56",
"4ca5c7",
"efbd72",
"79d3e7",
"e5f8fa",
"64d48c",
"e16262",
"8ff0ab",
"ff8a80",
"52bdd0",
"8ce6ee",
"d7ebef",
"29483d",
"f0e2bd",
"8ca4af",
"6f8b67",
"427582",
"a24b45",
"a77d3f",
"6b6258",
"89914d",
"6f9a55",
"67518e",
"ffd080"
],
"style_source": "scenes/main/world_preview.gd",
"style_source_sha256": "add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0",
"text": "職員不足 未稼働"
},
{
"category": "business",
"crops": [
{
"image_index": 0,
"path": "row-0003-image-0.png",
"sha256": "e977d7db178d1d61310fe7e33a9c25873b62b584337d93ea29960d6f8c5bb869"
},
{
"image_index": 1,
"path": "row-0003-image-1.png",
"sha256": "e977d7db178d1d61310fe7e33a9c25873b62b584337d93ea29960d6f8c5bb869"
}
],
"dimmed": false,
"eligibility": "visible",
"failures": [],
"font_width": 73.0,
"id": "1",
"layer": 1,
"local_rect": [
1029.0,
390.0,
79.0,
14.0
],
"mechanical_pass": true,
"operation": "INACTIVE",
"reason": "whole rectangle in viewport",
"row_index": 3,
"screenshot_rect": [
1108.0,
487.0,
79.0,
14.0
],
"state": "NO_STAFF",
"state_name": "NO_STAFF",
"style_colors": [
"b5cbb5",
"273c49",
"526d68",
"233d40",
"8cae98",
"749981",
"567e68",
"c6d3b6",
"d5dec4",
"574d39",
"776445",
"8a7350",
"69583d",
"65583e",
"385d45",
"47463e",
"5a594b",
"aaa083",
"829a8d",
"b69465",
"514839",
"8d7951",
"e1bd6c",
"dfd4ad",
"2f493f",
"e4d9b9",
"58784c",
"4c7950",
"5e8b57",
"739957",
"95ad69",
"648957",
"e34332",
"e3a62f",
"55c96b",
"f5d582",
"34413b",
"fff2ce",
"3c4e40",
"f5d58a",
"304b41",
"f0e2b9",
"303c40",
"d69a56",
"4ca5c7",
"efbd72",
"79d3e7",
"e5f8fa",
"64d48c",
"e16262",
"8ff0ab",
"ff8a80",
"52bdd0",
"8ce6ee",
"d7ebef",
"29483d",
"f0e2bd",
"8ca4af",
"6f8b67",
"427582",
"a24b45",
"a77d3f",
"6b6258",
"89914d",
"6f9a55",
"67518e",
"ffd080"
],
"style_source": "scenes/main/world_preview.gd",
"style_source_sha256": "add770377c190a5ccdde95379539de9753f7dabc703c1d58452ba590c6eda2f0",
"text": "職員不足 未稼働"
}
]
}
@@ -0,0 +1 @@
f013e0d1d6231833b656859cc73ad0b58b389047e421ad2c43cc598820e21067