Skip to content

refactor: migrate Seasonal Farm and remove legacy three workspace - #809

Open
charlieforward9 wants to merge 22 commits into
codex/citrus-tree-labfrom
codex/remove-three-module
Open

charlieforward9 wants to merge 22 commits into
codex/citrus-tree-labfrom
codex/remove-three-module

Conversation

@charlieforward9

@charlieforward9 charlieforward9 commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

Migrate Seasonal Farm to @deck.gl-community/layers and remove the deprecated @deck.gl-community/three workspace. Consumers, playground registration, workspace metadata, website navigation and legacy docs/example redirects now point to the native TreeLayer package.

Stack: master (#807 landed) → #794 → #806 → #808 → #809. The scene extension and Coit then follow #809 → #814 → #815 to resolve shared integration files before landing. No scene compatibility patch is required at this Tree milestone. The stack record and upgrade guide explain that landing order and limit API claims here to the prepared path.

Farm remount verification stops the old loop, submits queued work and awaits a bounded WebGL fence before rebuilding on the borrowed device. Cold remount readiness permits 30 seconds; interaction limits remain five seconds and all camera/season/responsive assertions remain. Required software WebGL/WebGPU checks and strict Farm types pass. A measured 2.85-second GPU drain followed by a 227 ms first remount frame supports backlog as a contributor to the repeated Linux five-second wait failure.

Validation on this head:

  • Root yarn, repository build, strict public consumer types and final yarn lint-fix.
  • Node: 144 files, 1,196 passed, 9 skipped; all 54 example Node tests passed. Earlier migrated Farm/registry checks: 29 passed.
  • Seasonal Farm standalone types and production Vite build; required software GPU Farm checks: both WebGL2 and WebGPU passed.
  • Website workspace yarn/build: 191 pages, all four generated legacy redirects verified.
  • Final source and native adversarial reviews: no remaining actionable findings.

Removing a published package is a breaking change: publish this removal in a major release only after compatible native TreeLayer/SplatLayer packages are available. Previously published three versions remain unchanged. Fresh hosted checks must pass before landing.


Note

Medium Risk
Removing a published npm package is a breaking change for external importers; in-repo consumers are migrated, but release timing must follow the documented major-version gate after native packages ship.

Overview
Removes the deprecated @deck.gl-community/three compatibility workspace and treats TreeLayer as canonical-only from @deck.gl-community/layers. The modules/three package, its docs sidebar, playground registration, TypeScript/Vitest aliases, and WebGPU doc entries are deleted; the upgrade guide and migration notes state that unpublishing @deck.gl-community/three is a major-version breaking change.

Seasonal Farm moves from examples/three/seasonal-farm to examples/layers/seasonal-farm with imports and workspace dependencies switched to @deck.gl-community/layers. The website adds client redirects (old three docs and example URLs → native TreeLayer docs and the new example path) and updates sidebars, live examples, and README module listings accordingly.

Docs/stack metadata are refreshed: dev/tree-splat-stack.md documents landing order through #809/#814/#815; splat-layer-spark-design.md reflects #807 landed and TreeLayer streaming stats. Seasonal Farm browser tests call getCrop with accessor context when needed, fix view-state handling for clamp tests, and drain WebGL work (fence sync) before remount with longer cold-remount timeouts.

Reviewed by Cursor Bugbot for commit ef880ac. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Coverage

Stmts: 39.03% ▲+2.85% | Branch: 29.62% ▲+3.25% | Funcs: 32.68% ▲+1.68% | Lines: 38.66% ▲+2.63%

Test Files 144 passed (144)

@greptile-apps

greptile-apps Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Medium impact] The PR appears safe to merge with its documented major-release and parent-first landing requirements.

Summary

Migrates Seasonal Farm to @deck.gl-community/layers and removes the deprecated @deck.gl-community/three workspace.

  • Updates playground imports, website navigation, and legacy redirects.
  • Documents the required major release and parent-first landing order.
  • Since the last review, only the Farm browser test changed: it waits for WebGL work before remounting and gives the new scene more time to draw.
  • No new actionable issues found. The earlier, unnumbered rendering-guide finding does not apply to this head: its API supports prepared inputs with weighted blending.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Farm["Seasonal Farm"] --> Native["@deck.gl-community/layers · TreeLayer"]
  Playground["Playground registry"] --> Native
  Website["Website examples"] --> Farm
  Legacy["Legacy docs and example URLs"] --> Redirects["Client redirects"]
  Redirects --> Website
  Redirects --> Docs["Native TreeLayer docs"]
Loading

Reviews (35) · Last reviewed commit: "test(farm): await GPU completion before ..." · Reviewed by Greptile

@greptile-apps

greptile-apps Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Comments Outside Diff

These findings could not be posted inline.

  • P1 Playground rejects streamed trees modules/playground/src/schemas/community-geo-layers.ts:229 ▶

    TreeLayerPropsSchema still accepts only row inputs. A valid document using getTileData: '@@#inventory', getDistantCanopyColor or cache controls fails strict parsing before the playground creates the layer.

    The existing schema-coverage test also fails: TreeLayer.defaultProps now includes inventory defaults that this schema lacks. Add the public streaming fields and explicitly exclude internal defaults from that test.

  • P1 Coit disables website scrolling examples/layers/coit/styles.css:19 ▶

    Opening Coit on the website imports this stylesheet into the whole page. These rules set html and body to overflow: hidden, so readers cannot scroll long docs pages after opening the example and navigating elsewhere. The global button and h1 rules also change website controls and headings.

    Keep standalone page rules in the standalone entry point, and scope shared styles to the Coit container.

    Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment thread docs/upgrade-guide.md Outdated
@charlieforward9
charlieforward9 force-pushed the codex/remove-three-module branch from f469bc9 to be63857 Compare October 7, 2026 21:04
@charlieforward9
charlieforward9 force-pushed the codex/coit-community branch 2 times, most recently from 5d464be to a282a7e Compare October 7, 2026 21:55
@charlieforward9
charlieforward9 force-pushed the codex/remove-three-module branch from be63857 to 3740f4d Compare October 7, 2026 21:55
@charlieforward9
charlieforward9 force-pushed the codex/remove-three-module branch from 2651d10 to f1e6745 Compare October 11, 2026 21:27
@charlieforward9
charlieforward9 force-pushed the codex/citrus-tree-lab branch 2 times, most recently from 7c93e6a to 602cc2e Compare October 12, 2026 07:06
@charlieforward9
charlieforward9 force-pushed the codex/remove-three-module branch from f1e6745 to 8072e02 Compare October 12, 2026 07:22
@charlieforward9
charlieforward9 force-pushed the codex/remove-three-module branch 2 times, most recently from 1843290 to ec82cd2 Compare October 12, 2026 08:32
@charlieforward9
charlieforward9 force-pushed the codex/remove-three-module branch from ec82cd2 to 8e71f65 Compare October 12, 2026 09:04

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants