Skip to content

v40.3.0#113

Merged
Phinetwork merged 7 commits intoPhinetwork:mainfrom
kojibai:main
Jan 1, 2026
Merged

v40.3.0#113
Phinetwork merged 7 commits intoPhinetwork:mainfrom
kojibai:main

Conversation

@Phinetwork
Copy link
Copy Markdown
Owner

No description provided.

kojibai and others added 7 commits January 1, 2026 14:10
# Release Notes — 40.2.0

## ✅ Highlights

* **Removed interval-based polling from Sigil Explorer sync**, cutting unnecessary network traffic and background activity.
  Sync now runs **only on meaningful app events** (open / visibility / focus / online) instead of continuous timed loops.
  **Files:**

  * `src/components/SigilExplorer/SigilExplorer.tsx`
  * `src/components/SigilExplorer/SigilHoneycombExplorer.tsx`

* **Latest commit stats:** `git show --stat -1`
  *(Included as the canonical source for the exact touched files/line counts for this release.)*

---

## 🔧 Behavioral Changes

### Push/Pull cadence removed

* The prior inhale/exhale timers that ran every few seconds are **fully removed**.
* The app **no longer hits the API on a constant interval**.

**Sources:**

* `src/components/SigilExplorer/SigilExplorer.tsx`
* `src/components/SigilExplorer/SigilHoneycombExplorer.tsx`

### Sync occurs only when it matters

Sync is now triggered exclusively by user/app lifecycle events:

* Opening the explorer
* Visibility changes
* Window focus
* Network reconnect (online event)

**Sources:**

* `src/components/SigilExplorer/SigilExplorer.tsx`
* `src/components/SigilExplorer/SigilHoneycombExplorer.tsx`

---

## ✅ Network Efficiency Gains

* **Significant reduction in API requests** by removing scheduled background polling.
* **Correctness retained:**

  * Sync still executes on **open / visible / focus / online** events
  * Local registry behavior remains intact, including **enqueueing inhales on new data**

**Sources:**

* `src/components/SigilExplorer/SigilExplorer.tsx`
* `src/components/SigilExplorer/inhaleQueue.ts`
* `src/components/SigilExplorer/registryStore.ts`

---

## 🧪 Testing

* **No automated tests were run for this release.**
  **Source:** `git show --stat -1`

---

## 🔮 Future Plans — Remove External API & Replace with Internal Functions

This is the forward path for eliminating external API dependency while preserving the same sync guarantees and behavior. It’s grounded in the current code layout and the existing touchpoints.

---

### 1) Replace API Inhale/Exhale with Internal State Sync

**Today**

* Push (inhale) calls `apiFetchWithFailover` via `API_INHALE_PATH`

  * `src/components/SigilExplorer/inhaleQueue.ts`
* Pull (exhale) uses `API_SEAL_PATH` + `API_URLS_PATH`

  * `src/components/SigilExplorer/SigilExplorer.tsx`
  * `src/components/SigilExplorer/remotePull.ts`

**Future direction**

* Implement an **internal sync layer** that persists locally and synchronizes through in-app state mechanisms (ex: `BroadcastChannel` + storage mirroring).
* Replace:

  * `apiFetchWithFailover`
  * API path constants (currently centralized in `src/components/SigilExplorer/apiClient.ts`)
* With internal service functions that read/write to:

  * local registry storage (`registryStore.ts`)
  * in-memory registry (`memoryRegistry`)
  * optional local persistent store (IndexedDB/local storage abstraction)

**Sources:**

* `src/components/SigilExplorer/inhaleQueue.ts`
* `src/components/SigilExplorer/remotePull.ts`
* `src/components/SigilExplorer/apiClient.ts`
* `src/components/SigilExplorer/registryStore.ts`

---

### 2) Replace “Remote Seal” with Internal Seals

**Today**

* The API “seal” is used to detect remote changes (`API_SEAL_PATH`), then pull executes when:

  * seal changes, or
  * pulses are newer

**Future direction**

* Maintain a **local/global seal** derived from registry mutations, such as:

  * a deterministic hash of known registry URLs, or
  * a seal derived from the latest pulse/state frontier
* Broadcast seal changes across tabs/devices using existing registry broadcast utilities.

Result: **remote seal dependency disappears** entirely.

**Sources:**

* `src/components/SigilExplorer/SigilExplorer.tsx`
* `src/utils/sigilRegistry.ts`
* `src/components/SigilExplorer/registryStore.ts`

---

### 3) Consolidate Sync into a Single Internal Event Bus

**Today**

* Sync is already wired to lifecycle events (visibility/focus/online).

**Future direction**

* Expand the internal event system to become the **sole driver** of synchronization:

  * when `registerSigilUrl` fires
  * when registry storage changes
  * when broadcast events announce updates
* Use `BroadcastChannel` + storage events to ensure all local instances remain consistent **without any server**.

**Sources:**

* `src/utils/sigilRegistry.ts`
* `src/components/SigilExplorer/registryStore.ts`

---

### 4) Optional: Device-to-Device Sync (Replacing Server)

Once the external API is fully removed, the next frontier is optional device-to-device alignment:

Potential approaches:

* WebRTC peer sync
* Local LAN discovery
* User export/import flows (global “memory crystal” exchange)

This is **product direction** (not implemented yet), but it cleanly extends the same internal-event architecture.

---

## What This Means Practically

* **Short term (40.2.0):**
  Massive API noise reduction by removing constant polling.

* **Mid term:**
  External API can be replaced entirely with an **internal registry + event-driven sync**, keeping the same guarantees.

* **Long term:**
  Cross-device sync becomes an optional transport layer (peer-to-peer or user-mediated), eliminating dependency on remote infrastructure while preserving global alignment semantics.

---
…registry-updates

Restore periodic Sigil Explorer sync (phase‑locked breath timer)
…i-logic

Reduce Sigil Explorer sync polling
@vercel
Copy link
Copy Markdown

vercel bot commented Jan 1, 2026

@kojibai is attempting to deploy a commit to the realbrianklockgmailcom's projects Team on Vercel.

A member of the Team first needs to authorize it.

@Phinetwork Phinetwork merged commit 9b65047 into Phinetwork:main Jan 1, 2026
1 check failed
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