Repository navigation
chore(phase3): integrations audit (BoJ/gossamer/groove) #71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,38 +1,21 @@ | ||
| ; SPDX-License-Identifier: MPL-2.0 | ||
| ; Groove Protocol Manifest — declares API surfaces this project exposes. | ||
| ; | ||
| ; Consumed by the Groove bridge / zig-unified-api-adapter for snap-on/snap-off | ||
| ; service discovery. Edit this file to match your project's actual APIs. | ||
| ; | ||
| ; See: https://github.com/hyperpolymath/standards/tree/main/groove-protocol | ||
|
|
||
| ;; SPDX-License-Identifier: MPL-2.0 | ||
| ;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk> | ||
| ;; | ||
| ;; Panoply is a library, not a Groove provider. Port 0, no surfaces. | ||
| ;; Spec lives in metadatastician/groove (working draft). Do not enable | ||
| ;; REST/gRPC/etc. until a process exists to advertise. | ||
| (groove-manifest | ||
| (version "1.0") | ||
|
|
||
| ; Service identity — replace panoply with your project name | ||
| (service "panoply") | ||
| (service-version "0.1.0") | ||
|
|
||
| ; Primary port — MUST be unique across the ecosystem. | ||
| ; Check PORT-REGISTRY.md in the standards repo before assigning. | ||
| ; https://github.com/hyperpolymath/standards/blob/main/PORT-REGISTRY.md | ||
| (port 0) ; 0 = not assigned yet — run `just groove-setup` to assign | ||
|
|
||
| ; API surfaces this project exposes (dodeca-API) | ||
| ; Remove lines for API types you don't use. | ||
| (port 0) | ||
| (api-surfaces | ||
| (rest (enabled true) (path "/api/v1")) | ||
| (grpc (enabled false) (port-offset 1)) | ||
| (graphql (enabled false) (path "/graphql")) | ||
| (rest (enabled false) (path "/api/v1")) | ||
| (grpc (enabled false) (port-offset 1)) | ||
| (graphql (enabled false) (path "/graphql")) | ||
| (websocket (enabled false) (path "/ws")) | ||
| (sse (enabled false) (path "/events")) | ||
| (groove (enabled true) (path "/.well-known/groove"))) | ||
|
|
||
| ; Health endpoint — used by Groove discovery | ||
| (sse (enabled false) (path "/events")) | ||
| (groove (enabled false) (path "/.well-known/groove"))) | ||
| (health "/health") | ||
|
|
||
| ; Capabilities — what this service can do for others | ||
| (capabilities ()) | ||
|
|
||
| ; Dependencies — what this service needs from others | ||
| (dependencies ())) | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,44 @@ | ||||||
| // SPDX-License-Identifier: CC-BY-SA-4.0 | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win Use the required SPDX licence identifier. This new file declares Proposed fix-// SPDX-License-Identifier: CC-BY-SA-4.0
+// SPDX-License-Identifier: MPL-2.0📝 Committable suggestion
Suggested change
🤖 Prompt for AI AgentsSource: Coding guidelines |
||||||
| // Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> | ||||||
| = Phase 3 — Integrations & cartridges | ||||||
| :revdate: 2026-09-20 | ||||||
|
|
||||||
| Panoply is an **envelope-first language discipline** (Idris2 ABI + Zig FFI | ||||||
| library). It is not a server, desktop shell, or voice platform. | ||||||
|
|
||||||
| == 3.1 boj-server-cartridge | ||||||
|
|
||||||
| Classification: 🔴 audit → **N/A as author**; holding as consumer. | ||||||
|
|
||||||
| * Registry exists: https://github.com/hyperpolymath/boj-server-cartridges | ||||||
| (plural). Hosts (`boj-server`, panll) fetch cartridges on demand. | ||||||
| * Panoply does **not** mint a cartridge: there is no MCP/BoJ capability | ||||||
| surface and no host runtime. | ||||||
| * `features/boj-server/` remains a README holding, not an installed cartridge. | ||||||
| * Future (Phase 8): if a Core checker ever needs a BoJ capability, consume a | ||||||
| cartridge from the registry — do not vendor one here. | ||||||
|
|
||||||
| == 3.2 gossamer & burble | ||||||
|
|
||||||
| Classification: 🔴 audit → **not relevant now** (🟡 adaptive later). | ||||||
|
|
||||||
| * **gossamer** — desktop shell / groove consumer (native window around a web | ||||||
| frontend). Panoply has no GUI (launcher is `just`). | ||||||
| * **burble** — voice-first communications. Panoply has no voice plane. | ||||||
| * No integration to verify. Roadmap Phase 8 if a GUI or voice projection appears. | ||||||
|
|
||||||
| == 3.3 groove, spline, cleave | ||||||
|
|
||||||
| Classification: 🔴 audit → 🟠 corrective (groove lie) + 🟢 Phase 8. | ||||||
|
|
||||||
| * **groove** (`metadatastician/groove`) — working draft 0.3; CLI + reference | ||||||
| provider exist **in that repo**. Panoply shipped a template | ||||||
| `groove.deed` with REST enabled and no HTTP server — **false**. Corrected: | ||||||
| all API surfaces disabled, port 0, no capabilities. | ||||||
| * **spline** — experimental seed; wire layer for groove. Not applied. | ||||||
| * **cleave** — design corpus toward a transmutable FFI↔SNIF↔protocol dial. | ||||||
| Conceptually adjacent to panoply ABI/FFI/API law, **not implemented here**. | ||||||
| Do not pretend the Zig adapter is a cleave kernel. | ||||||
|
|
||||||
| Phase 8: consume groove (probe-only, bare-by-default) when there is a process | ||||||
| to advertise; consider cleave once SNIF/host exists; spline only with groove. | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,16 +1,16 @@ | ||
| // SPDX-License-Identifier: CC-BY-SA-4.0 | ||
| // Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> | ||
| = BoJ Server Integration | ||
| = BoJ Server — holding (not a cartridge) | ||
| :icons: font | ||
|
|
||
| This unit provides a "starting hand" for integrating with the **BoJ-Server** (Box of Justice) ecosystem — a high-rigor, verified server infrastructure. | ||
| Panoply is **not** a BoJ host and does **not** ship a cartridge. | ||
|
|
||
| == Integration Options | ||
| Canonical registry: | ||
| https://github.com/hyperpolymath/boj-server-cartridges | ||
|
|
||
| * **Core:** Use BoJ-Server as the primary verified backend for this project. | ||
| * **Bridge:** Utilize the BoJ-Server IPC bridge for cross-boundary communication. | ||
| Hosts (`boj-server`, panll) fetch cartridges from that registry. This | ||
| directory exists so the RSR feature slot is occupied with an honest | ||
| decline, not a fake integration. | ||
|
|
||
| == Related Repository | ||
|
|
||
| For the full specification and source, visit: | ||
| https://github.com/hyperpolymath/boj-server | ||
| Phase 8: consume a registry cartridge if a Core checker needs a BoJ | ||
| capability. Do not vendor cartridge source here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Remove the stale service-discovery statement.
docs/architecture/TOPOLOGY.adocstill declares Groove service discovery at/.well-known/groove/manifest.json. This manifest disablesgrooveand every network API surface. The documents now give conflicting deployment instructions. Update the topology document to state that Groove discovery is deferred, or restore the advertised surface.🤖 Prompt for AI Agents