Skip to content

fix(lighting): illuminate colored portals - #122

Merged
zoeyrose merged 1 commit into
1.xfrom
feat/86-colored-portals-1x
Aug 12, 2026
Merged

zoeyrose merged 1 commit into
1.xfrom
feat/86-colored-portals-1x

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Aug 11, 2026 •

Copy link
Copy Markdown
Member

Summary

  • give the six dedicated colored-portal archetypes radius 1 and their established matching palette colors
  • give all 37 generic exit/exit_green objects that render portal_* animations map-local radius-1 colors matching the rendered animation
  • preserve all 13 hidden creator/duplicator portal prototypes with explicit glow_radius 0
  • reconcile the cumulative semantic review and the deterministic authored-syntax representative-map snapshot on the current 1.x tip

Related issue: #86. This is the separate Classic-compatible 1.x delivery and is intentionally non-closing. The canonical main companion will be built only after this PR is squash-merged.

Reconciliation

The 30 paths comprise six portal archetypes, 21 authored maps, maps/light-source-review.json, the deterministic syntax measurement snapshot, and its documentation. No base exit or exit_green archetype changes.

Acceptance result

  • all 19 direct dedicated-portal placements were audited: six active placements inherit radius 1 and matching color; 13 invisible creator/duplicator prototypes remain explicitly radius zero
  • exactly 37 custom portal-animation exits across 19 maps use radius 1: 10 blue, four green, eight cyan, nine red, and six yellow
  • the four-color Wizards’ Tower links remain compact navigation cues beside independent neutral fill and existing crystal focal lights
  • the permanent town portal uses radius-1 60d0ff cyan while its create/use/expire behavior remains unchanged
  • the former radius-9 neutral red portal is reduced to radius 1 and uses its already reviewed red color
  • teleport destinations, timing, scripts/events, sounds, triggers, visibility controls, placement, and every other non-light gameplay field are unchanged

Current inventory

  • 110 reviewed archetypes and 10 reviewed artifacts
  • 11,489 effective light instances across 634 maps
  • 5,802 explicit colors and 5,807 intentional neutral emitters
  • zero unreviewed emitters

Evidence policy

  • no maps/light-source-evidence/**, manifest, proof scene, capture tooling/test, or capture-bound views/evidence_focus field is restored
  • optional renderer diagnostics remain generated only under ignored build/ or deployment-owned output
  • durable contextual conclusions remain in maps/light-source-review.json

Validation

  • python3 tools/world_content_audit.py lights --check — passed with the inventory above
  • python3 tools/validate.py — 131 tests plus lossless content, plural validation, schema, catalog, contracts, syntax prototypes, licensing, runtime collection, and both release archives passed
  • python3 tools/check_pr_title.py --base 1.x 'fix(lighting): illuminate colored portals'
  • git diff --check
  • jq empty maps/light-source-review.json
  • focused whole-diff review — authored archetype/map changes contain only glow_radius and light_color; no non-light field changes
  • placement audit — exactly 19 direct dedicated placements and 37 custom-animation exits in the expected 26 unique-map surface
  • hidden-state audit — all 13 invisible creator/duplicator prototypes retain explicit radius zero

Merge order

This is the first half of the #86 release-line pair. Squash-merge this PR first. Then re-query live 1.x and main tips before constructing and validating the canonical main companion. Do not manually close #86 at this gate.

@zoeyrose
zoeyrose force-pushed the feat/86-colored-portals-1x branch from 7a91132 to 5e85e0e Compare August 12, 2026 00:48
@zoeyrose zoeyrose changed the title feat(lighting): illuminate colored portals fix(lighting): illuminate colored portals Aug 12, 2026
@zoeyrose
zoeyrose marked this pull request as ready for review August 12, 2026 00:55
@zoeyrose
zoeyrose merged commit b033b8c into 1.x Aug 12, 2026
5 checks passed
@zoeyrose
zoeyrose deleted the feat/86-colored-portals-1x branch August 12, 2026 01:03
@github-project-automation github-project-automation Bot moved this from Review to Done in Atrinik work Aug 12, 2026
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.8.9 🎉

The release is available on:

Your semantic-release bot 📦🚀

zoeyrose added a commit that referenced this pull request Aug 12, 2026
## Summary

- light the owner-gated Incuna private-beach `portal_azure` exit with
radius 1 and `60d0ff`
- refresh its semantic digest, art-override rationale, and cumulative
outdoor/navigation review
- correct the portal inventory from 37 custom exits across 19 maps to 38
across 20 maps

Related issue: #86. This is a corrective Classic-compatible `1.x`
companion and intentionally does not close the issue. The canonical
`main` delivery remains unpublished until this PR is squash-merged.

## Why this follow-up exists

Independent cumulative review after merged PR #122 found that
`maps/shattered_islands/world_4_85` already contained an active generic
`exit` rendering `portal_azure`. It was introduced by the completed
Incuna apartment work and was omitted from #122’s original 37-exit
inventory. This PR brings that existing active context under #86’s
“every active context” requirement.

## Coordinates

- base: `1.x@cae0396`
- head: `a9fdbee8383faae04209129e5520a96cac178b1c`
- commits: exactly one
- changed paths: exactly two

## Acceptance and preservation

- the active Incuna exit gains only `glow_radius 1` and `light_color
60d0ff`
- `property_id incuna_apartment`, its descriptive message, destination
fields, coordinates, nested event, and
`/python/generic/apartment_teleport.py` remain unchanged
- the cumulative inventory now finds exactly 38 custom portal-animation
exits across 20 maps, with zero radius/color mismatches
- no renderer-evidence, capture tooling, manifest/proof scene, or
capture-bound review field is restored

## Validation

- `python3 tools/world_content_audit.py lights --check` — 110
archetypes, 10 artifacts, 11,490 instances across 634 maps; 5,803
explicit colors, 5,807 intentional neutral, zero unreviewed
- `python3 tools/validate.py` — 131 tests plus lossless core, plural
validation, schema, catalog, contracts, syntax prototypes, licensing,
runtime collection, and both release archives passed
- focused syntax measurement test — passed unchanged
- `python3 tools/check_pr_title.py --base 1.x 'fix(lighting): light
Incuna beach portal'`
- `git diff --check`
- `jq empty maps/light-source-review.json`
- independent whole-diff review — zero actionable findings

## Merge order

Squash-merge this corrective PR into `1.x` first. Then re-query live
`1.x` and `main` tips, apply the same authored correction to the
preserved canonical `main` head, refresh main’s line-native review
digest while retaining its provenance fields, and revalidate before the
canonical main merge gate.
zoeyrose added a commit that referenced this pull request Aug 12, 2026
## Summary

- give the five colored portal archetypes and town portal compact
radius-1 light matching their visible art
- reconcile every active map-local colored portal context, including the
owner-gated Incuna private-beach portal found during independent
cumulative review
- preserve radius-zero hidden prototypes, gameplay fields, destinations,
and line-native semantic-review provenance
- update the deterministic authored-syntax maximum-map measurement
without restoring retired renderer-evidence infrastructure

Closes #86.

## Release pairing

- Classic-compatible `1.x` delivery: #122, squash
`b033b8ca034acd26c19102ce90299a1ff5f69800`
- corrective `1.x` delivery: #171, squash
`58c20187edec7351177da7ee0b3008a82ce6439c`
- this PR is the canonical `main` companion built only after both
required `1.x` merges

## Coordinates

- base: `main@92d49f9`
- head: `1c7ae264aa1bc9ae109a30b78ce1b000a35ee4b5`
- remote tree: `039732b2308d5e78edca598d55ed163802f7b8ca`
- commits: exactly one
- changed paths: 31

## Acceptance and preservation

- exactly 38 custom portal-animation exits across 20 maps use radius 1
and the color matching their animation
- 13 hidden portal prototypes retain explicit radius zero
- the Incuna exit gains only `glow_radius 1` and `light_color 60d0ff`;
its property, message, destination fields, coordinates, and
typed-property behavior remain unchanged
- the applicable authored behavior matches merged `1.x`; expected
main-only formatting and provenance distinctions remain intact
- `source_review`, the replacement-runtime boundary, and every existing
`classic_views` entry are preserved
- no `maps/light-source-evidence/**`, manifest, proof scene, capture
tooling/tests, or capture-bound review fields are restored

## Validation

- `python3 tools/validate.py` — 129 tests plus plural, lossless core,
semantic lights, schema, catalog, contracts, syntax prototypes,
licensing/resource collection, and archives passed
- `python3 tools/world_content_audit.py lights --check` — 110
archetypes, 10 artifacts, 11,490 instances across 634 maps; 5,803
explicit colors, 5,807 intentional neutral, zero unreviewed
- authored-syntax snapshot — maximum map 95,662 bytes with SHA-256
`a09f…bfa4ae`; focused validation passed
- `git diff --check` and JSON parsing — passed
- fresh independent whole-diff review — zero actionable findings at the
exact published tree

## Runtime boundary

The replacement `main` stack does not yet provide integrated content
runtime or renderer adapters. This delivery therefore validates
authored, schema, catalog, semantic, and deterministic syntax contracts
without substituting the Classic runtime or claiming new main-native
rendering evidence.

## Program order

This is stage #86 in #154. Squash-merge this PR into `main` only after
its checks pass and the reported head remains exact. Then re-query both
live tips before beginning #92; never bulk-refresh later stages.
zoeyrose added a commit that referenced this pull request Aug 23, 2026
## Summary

- give the five colored portal archetypes and town portal compact
radius-1 light matching their visible art
- reconcile every active map-local colored portal context, including the
owner-gated Incuna private-beach portal found during independent
cumulative review
- preserve radius-zero hidden prototypes, gameplay fields, destinations,
and line-native semantic-review provenance
- update the deterministic authored-syntax maximum-map measurement
without restoring retired renderer-evidence infrastructure

Closes #86.

## Release pairing

- Classic-compatible `1.x` delivery: #122, squash
`df2433e82aba24ddb1d51131d804d9bd3d221fe0`
- corrective `1.x` delivery: #171, squash
`09a70c76c2604d340cd7ad684463bc1de5ecacd4`
- this PR is the canonical `main` companion built only after both
required `1.x` merges

## Coordinates

- base: `main@b50a98d4e6c07676315905a7195790f2a6847657`
- head: `4622d97bcad7544512b945664b6bf21d72432057`
- remote tree: `039732b2308d5e78edca598d55ed163802f7b8ca`
- commits: exactly one
- changed paths: 31

## Acceptance and preservation

- exactly 38 custom portal-animation exits across 20 maps use radius 1
and the color matching their animation
- 13 hidden portal prototypes retain explicit radius zero
- the Incuna exit gains only `glow_radius 1` and `light_color 60d0ff`;
its property, message, destination fields, coordinates, and
typed-property behavior remain unchanged
- the applicable authored behavior matches merged `1.x`; expected
main-only formatting and provenance distinctions remain intact
- `source_review`, the replacement-runtime boundary, and every existing
`classic_views` entry are preserved
- no `maps/light-source-evidence/**`, manifest, proof scene, capture
tooling/tests, or capture-bound review fields are restored

## Validation

- `python3 tools/validate.py` — 129 tests plus plural, lossless core,
semantic lights, schema, catalog, contracts, syntax prototypes,
licensing/resource collection, and archives passed
- `python3 tools/world_content_audit.py lights --check` — 110
archetypes, 10 artifacts, 11,490 instances across 634 maps; 5,803
explicit colors, 5,807 intentional neutral, zero unreviewed
- authored-syntax snapshot — maximum map 95,662 bytes with SHA-256
`a09f…bfa4ae`; focused validation passed
- `git diff --check` and JSON parsing — passed
- fresh independent whole-diff review — zero actionable findings at the
exact published tree

## Runtime boundary

The replacement `main` stack does not yet provide integrated content
runtime or renderer adapters. This delivery therefore validates
authored, schema, catalog, semantic, and deterministic syntax contracts
without substituting the Classic runtime or claiming new main-native
rendering evidence.

## Program order

This is stage #86 in #154. Squash-merge this PR into `main` only after
its checks pass and the reported head remains exact. Then re-query both
live tips before beginning #92; never bulk-refresh later stages.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant