lantern

wanderland-wonders-2025-12-22

Wanderland Wonders β€” December 22, 2025

"The fences are open. Come build something."


πŸŽ„ Holiday Release: The Fence API

This release is about opening up. Everything we've been building with the goose workflows, the virtual fences, the path-based addressingβ€”it's now available via clean REST API, ready to plug into your existing developer platform.


The Headlines

πŸ”Œ Fence Execute API

New Endpoint: POST /api/oculus/virtual-fences/{slug}/execute

curl -X POST https://lantern.dev.int.proquest.com/api/oculus/virtual-fences/my-project/execute \
  -H "Content-Type: application/json" \
  -d '{
    "path": "Tasks.todo",
    "action": "add",
    "params": {"content": "Ship the thing"}
  }'

Path-based addressing makes it natural:

  • Tasks.todo β†’ finds the todo list in your Tasks section
  • Config.table β†’ targets the data table in Config
  • my-section.yaml.nested.key β†’ drills into structured data

This is the bridge between Wanderland and everything else.


πŸͺΏ Goose-Tested, Production-Ready

Every feature in this release has been validated through our exploration workflows:

Feature What It Does
Unified Addressing slug:path syntax works everywhereβ€”peek, poke, execute
Floating Labels <!-- [my-fence] --> marks virtual fences for targeting
Fuzzy Matching Find fences with patterns: ^prefix, suffix$, node.fence
Table CRUD Full create/read/update/delete on data tables

The goose doesn't lie. If it works for random exploration, it works for real.


πŸ”§ Under the Hood

Middleware Architecture Refined

TableExtractor is now two composable pieces:

  • JMESTransform β€” pure data extraction
  • MarkdownFormatter β€” renders anything to markdown

This sets up the pattern: everything is middleware with accepts/produces type declarations.

Path Parser Fix

The infamous goose-pong failure is fixed. Peek now routes through the proper path grammar instead of naive string splitting. Hierarchical addressing actually works now.

Provider Flexibility

Fence providers accept both parsed names (aws) and full fence strings (aws:ecs:describe-services). Less friction, more compatibility.


What You Can Build

With the fence API exposed, you can now:

  • Wire up existing dashboards to Wanderland data
  • Trigger actions from external systems
  • Build integrations without touching the core
  • Create custom UIs that read/write through the API

The knowledge graph becomes a service.


URLs

Service URL
Nightingale (Stuffy) https://nightingale.dev.int.proquest.com
Lantern (Oculus API) https://lantern.dev.int.proquest.com

Commits

Oculus API

  • 9a3715b β€” Path-based virtual fence execute endpoint
  • dc4c6ea β€” Route peek through path_parser (goose-pong fix)
  • d2b9c3c β€” Split TableExtractor into JMESTransform + MarkdownFormatter
  • 3e27b0b β€” Unified addressing, hierarchical peek, CLI enhancements
  • e10f787 β€” Provider flexibility for fence strings
  • 2e3f9c0 β€” Middleware pipeline for fence execution

Nightingale

  • 8161fcc β€” Merge upstream/main

What's Next

The fence API is the foundation. Next up:

  • Developer platform integration β€” today's work
  • More virtual fence types β€” workflows, state machines
  • External triggers β€” webhooks that poke the graph

The woods are getting wired.


Happy holidays from the Wanderland team πŸŽ„πŸͺΏ

North

slots:
- context:
  - Linking announcement to deployment tracking node
  slug: wanderland-deployment-2025-12-22