Drop wall + fence feature flags: register unconditionally; remove verification logs
Parity comparison against deployed prod is now cleaner than juggling
env-var flag toggles locally. Both kinds enter builtinPlugin.nodes
unconditionally; the Phase 0 dispatch shims (<LegacySystem kind="X">
wrappers + NodeRenderer's registry-first branch) handle the cutover.
Files deleted:
- packages/nodes/src/wall/feature-flag.ts
- packages/nodes/src/fence/feature-flag.ts
Files changed:
- packages/nodes/src/index.ts: drops isWallRegistryEnabled /
isFenceRegistryEnabled gates; wallDefinition + fenceDefinition
land directly in builtinPlugin.nodes.
- packages/nodes/src/{wall,fence}/index.ts: drop the flag re-export.
- packages/nodes/src/{wall,fence}/renderer.tsx: drop the one-shot
verification console.info. Same for the system.tsx wrappers.
- packages/viewer/src/components/renderers/{wall,fence}/{wall,fence}-
renderer.tsx: drop the paired [X:legacy] verification logs (no
longer comparing flag-toggled paths).
Net DX: no env var to remember when starting `bun dev:community`. To
A/B test, compare against editor.pascal.app deployed prod.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
9883f1cdc1
commit
6a4de8cff5
@@ -1,12 +1,11 @@
|
||||
'use client'
|
||||
|
||||
import { WallCutout, WallSystem } from '@pascal-app/viewer'
|
||||
import { useEffect } from 'react'
|
||||
|
||||
/**
|
||||
* Registry-driven wall system bundle.
|
||||
*
|
||||
* Wall has two per-frame concerns that need to mount when the kind is
|
||||
* Wall has two per-frame concerns that mount when the kind is
|
||||
* registry-driven:
|
||||
*
|
||||
* - **`WallSystem`** — reads `dirtyNodes`, batches by level, runs
|
||||
@@ -17,28 +16,16 @@ import { useEffect } from 'react'
|
||||
* - **`WallCutout`** — cutaway-mode hide/show logic based on camera
|
||||
* direction and `frontSide` / `backSide` interior/exterior tags.
|
||||
*
|
||||
* Both already live in `@pascal-app/viewer` and are wrapped in
|
||||
* `<LegacySystem kind="wall">` at the legacy mount point. When the
|
||||
* `wall` kind appears in `nodeRegistry`, those wrappers short-circuit and
|
||||
* this bundle takes over the mount via `RegisteredSystems`. The
|
||||
* components themselves are unchanged — no logic duplication during
|
||||
* Phase 3.
|
||||
* Both live in `@pascal-app/viewer` and are wrapped in
|
||||
* `<LegacySystem kind="wall">` at the legacy mount point. With wall
|
||||
* registered, those wrappers short-circuit and this bundle takes over
|
||||
* the mount via `RegisteredSystems`. The components themselves are
|
||||
* unchanged — no logic duplication.
|
||||
*
|
||||
* Phase 6 deletes the legacy `<LegacySystem kind="wall">` wrappers; until
|
||||
* then this file is the single mount surface for wall's per-frame work.
|
||||
*/
|
||||
const WallSystems = () => {
|
||||
// Phase 3 verification log — confirms the registry took over the wall
|
||||
// dispatch. Fires once when RegisteredSystems lazy-loads this bundle (so
|
||||
// exactly once per viewer mount when NEXT_PUBLIC_USE_REGISTRY_FOR_WALL=true).
|
||||
// Drop alongside the feature flag at Phase 3 sign-off.
|
||||
useEffect(() => {
|
||||
console.info('[wall:registry] system bundle mounted — registry path active')
|
||||
return () => {
|
||||
console.info('[wall:registry] system bundle unmounted')
|
||||
}
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<>
|
||||
<WallSystem />
|
||||
|
||||
Reference in New Issue
Block a user