Building in public. Every commit, every day.

April 2026.
1,389 commits.

The story of building greatVibe, told through the code. 23 systems. All shipped.

1389 commits
156K lines added
4,182 files touched
2,620 AI turns
Commit velocity, April 2026 W14 → W18
🎴
418 commits
+64K lines
Human Claude GVTurn Power Footer choices Turn lifecycle loop

We built greatVibe around one idea: every piece of AI work should be a card you can see, track, and act on. That is the GVTurn.

Across the first three weeks, 418 commits and 63,000 lines of code made GVTurns real. The system started simple. A card with a title and some output. Then it grew. Choices so you can steer AI work with a click. Status tracking so you know what is done, what is waiting, what needs attention.

By week three, GVTurns had flows, topics, and a curator that stitches the graph together. A single card is useful. A connected graph of cards changes how you work.

What we built

  • Card system with title, output, choices, and status
  • Power Footer with 5-zone interaction panel
  • Flow tracking links cards into work streams
  • Background curator auto-stitches the graph
  • Drift metrics hold the system accountable
418commits
+63,809lines added
-5,138removed
469files
coreuiarchitecture
🖥️
240 commits
+48K lines
greatvibe.ai · console

The greatVibe dashboard is where humans and AI meet. Deno, server-rendered HTML, live WebSocket updates. No framework. No build step. Fast, direct code.

240 commits shaped the console into something clear and responsive. Cards stream in as AI works. Each card renders rich HTML. Tables, code blocks, SVG diagrams, interactive widgets with inline scripts.

We shipped in phases. Each phase built on the last. No big rewrites. Steady, visible progress. The dark theme runs through everything. It looks good at 2am when you are debugging a mesh node.

What we built

  • Server-rendered HTML with live WebSocket updates
  • Rich card rendering: tables, SVG, interactive widgets
  • Dark theme designed for long sessions
  • Node-coloured input bar for mesh identity
  • 43 shipped phases in the first three weeks
240commits
+48,468lines added
-2,657removed
388files
uifrontend
🔍
137 commits
+11K lines
DRIFT METRICS · LIVE HTML output rate 85% Choices present 90% Interactivity rate 50% ⚠ 40% alert threshold rawturns log full event replay per session alert: HIGH interactivity < 40% action required

AI that cannot be audited cannot be trusted. We built the audit layer from day one.

Every GVTurn has a drift score. Did it include HTML output? Did it have at least two choices? The system tracks compliance rates and raises alerts when they drop below thresholds.

The audit system is not punishment. It is feedback. When drift metrics show cards are missing choices, the interaction loop is broken. The system surfaces that. Then it gets fixed.

What we built

  • Drift metrics track compliance per turn
  • actionsUsed records which choices get clicked
  • Rawturns event log for full session replay
  • Alert thresholds: interactivity < 40% = HIGH
  • Audit overrides for legitimate exceptions
137commits
+10,694lines added
-1,483removed
272files
compliancetrust
📐
103 commits
+9K lines
folder.ace architecture intent file.ace file purpose + trade-offs code.ts implementation decisions context read first then code commit code + ACE together. always.

ACE stands for Architecture, Context, Execution. Every file in greatVibe has a companion .ace file that documents what it does, why it exists, and how it connects to everything else.

The workflow is strict. Read the folder ACE. Read the file ACE. Then write code. This is how we scale AI-assisted development. The AI does not need to rediscover intent from code structure. The intent is written down, next to the code.

ACE files are not for humans to read. They are for machines to consume. That distinction changes how you write them.

What we built

  • Every file has a .ace companion
  • Strict workflow: folder.ace to file.ace to code
  • ACE files commit alongside code changes
  • Captures architecture decisions and trade-offs
  • Designed for machine consumption
103commits
+9,020lines added
-1,915removed
289files
methodologyai
📊
103 commits
+29K lines
gravient-financial-model-v2.xlsx Assumptions Revenue fx: =SUM(B4:B9)*growth_rate FY2026 FY2027 FY2028 FY2029 FY2030 ARR 240K 1.2M 4.8M 12M 28M Gross Margin =B12/B4 =C12/C4 Python driver · openpyxl · xlcalculator · FastAPI :8770

We wanted AI to work with real documents. Not summaries. Not screenshots. The actual cells and formulas.

Two Python drivers: one for Excel, one for Word. FastAPI services. The Excel driver uses openpyxl to read and write cells, xlcalculator to evaluate formulas. The ExcelGrid renderer in konui shows computed values with a formula bar above.

This is not a toy integration. Gravient runs a six-year financial model through it. Revenue projections, OpEx breakdowns, scenario analysis. All readable and editable by AI.

What we built

  • Python FastAPI drivers for Excel and Word
  • Formula evaluation via xlcalculator
  • ExcelGrid renderer with frozen headers and formula bar
  • Cell search, diff, and formula auditing
  • Powers a real six-year financial model
103commits
+28,960lines added
-1,870removed
190files
productivitydocuments
🎨
82 commits
+26K lines
MCP tool result JSON Renderer pattern match per tool type Console output ExcelGrid widget Credential card Health status AWS resources no raw JSON ever reaches the console

MCP tools return JSON. Nobody wants to read JSON. So we built renderers.

Each tool category gets its own renderer. The ExcelGrid renderer turns spreadsheet data into a scrollable grid with frozen headers and a formula bar. The credential renderer shows metadata with copy buttons. The health renderer shows a service card with a live status dot.

The pipeline is extensible. Each renderer registers for specific tool patterns. Widget IDs scope to the turn to prevent collisions across cards.

What we built

  • Custom renderers for Excel, credentials, service health
  • Inline scripts for filterable lists and tabs
  • Turn-scoped widget IDs prevent collisions
  • Extensible pipeline per tool pattern
  • No raw JSON ever reaches the console
82commits
+26,120lines added
-2,943removed
184files
uirendering
🕸️
80 commits
+18K lines
Bridge Relay WAN sponsor Node A mTLS Node B gossip Node C peer P2P 15 gossip types · ECDH credentials · CRC32C transfers

greatVibe nodes talk to each other. Not through a central server. Through a mesh.

Each node generates its own TLS certificates. Peers discover each other through gossip protocol, exchanging state every five seconds. When direct connections fail, traffic falls back to the bridge relay over WebSocket.

The mesh carries file transfers, cross-mesh API calls, and VFS operations. 15 gossip message types cover credentials, context checksums, session affinity, MCP announcements. It is the nervous system of the platform.

What we built

  • mTLS peer-to-peer with bridge relay fallback
  • 15 gossip message types across all nodes
  • ECDH P-256 credential delivery
  • File transfers with CRC32C and SHA-256
  • Cross-mesh API calls via connector proxies
80commits
+18,307lines added
-7,480removed
248files
infrastructuresecurity
🧠
80 commits
+13K lines
source assets optimised compiled CLAUDE.md deployed Node aware kernel scope (1) SDK rules (2) repo scope (3) UI layer (4) checksum gossip syncs context across all nodes context_compile → activate → done

Every AI session starts by reading CLAUDE.md. One file that tells the model what this project is. We built the engine that creates that file.

The context engine takes source assets and compiles them through a pipeline. context_compile merges everything into one deployable CLAUDE.md. Four scope levels let kernel rules stay separate from repo-specific context.

This is what makes greatVibe nodes self-aware. A new node joins the mesh, pulls context via checksum gossip, compiles its CLAUDE.md, and immediately knows the entire platform.

What we built

  • Compile pipeline: source assets to optimised to CLAUDE.md
  • Four scope levels: kernel, SDK, repo, UI
  • Checksum gossip for cross-node sync
  • Asset CRUD with validation pipeline
  • Nodes self-onboard from the mesh
80commits
+12,737lines added
-11,295removed
202files
aicontext
76 commits
+4K lines
GVTurn card content area Z1 👍 Good 🚀 Ship it ⚡ Cont. 🔍 Deeper 📤 Push 🏛 Legal tap = send · hidden in audit mode Z2 Next step Choose an action below, or type to start something new Z3 Ship it click = send prompt hold 500ms = edit key [1] shift+[1] ▶▶ Open in browser key [2] shift+[2] Next page key [3] shift+[3] Z4 TONE: Claude↑ Concise Detailed Urgent Casual 💬 🔖 📋 📤 ⋯ Z5 ⚡ 2017k tok · 🖥 18 tools · ⏰ 3.1m J johnathon SONNET ANALYSIS COMPLETED

Most AI interfaces give you a text box and a send button. We wanted more.

The Power Footer is a five-zone panel below every GVTurn card. Quick react chips for fast feedback. Action cards you can click to send or hold to edit. Tone selectors. Metrics. Every card became a small command centre.

76 commits in one week built and refined this. Keyboard shortcuts. Hold-to-edit. Responsive layouts. Passive reading became active interaction.

What we built

  • 5-zone panel: reacts, next-action, choices, tone, metrics
  • AI-suggested react chips with amber highlights
  • Hold-to-edit: 500ms press injects prompt to input
  • Keyboard shortcuts: 1-5 click, Shift+1-5 edit
  • Responsive: stacks vertical below 600px
76commits
+3,858lines added
-825removed
41files
uiinteraction
71 commits
+21K lines
deno test -A tests/ · 77 test files gvturn_create produces valid card drift metrics alert below threshold session create → send → terminate credential gossip deliver flow mock/prod divergence. caught context compile pipeline collab message delivery states Passed 76/77 1 failure caught before merge. Rule: tests run every turn.

We have a rule: every code-changing turn must verify tests exist and run. No exceptions.

konui runs 77 test files with Deno. gvmesh and gvmcp run Go tests. The testing-per-turn macro kicks in at turn 3 of every session.

This discipline caught real bugs. Mock/prod divergence. Migration failures. Race conditions in gossip delivery. None of them reached main.

What we built

  • Testing-per-turn rule from turn 3 onward
  • 77 Deno test files and Go test suites
  • ACE companions document test strategy and coverage gaps
  • Caught real bugs: mock/prod divergence before merge
  • 80% coverage target across both repos
71commits
+21,159lines added
-2,780removed
219files
testingquality
💬
46 commits
+9K lines
queued delivered read dismissed ✓ Build complete on node-fargate-prod 77 tests passed · 0 failed · 4m 12s · ready to deploy Sent 03:14 · Delivered 03:14 · Read 09:02 agent sends while you sleep · inbox when you wake SQLite + gossip + bridge SSE · 6 MCP tools

What if AI could send you a message? Not a notification. A real message with context, attachments, and thread replies.

Agents create messages via MCP tools. Messages persist in SQLite, broadcast via gossip, deliver through bridge SSE. A build finishes at 3am and the agent sends a message with the results. You open your inbox the next morning and it is waiting. Full context, not a ping.

What we built

  • AI-native async messaging via 6 MCP tools
  • Rich content blocks: GVTurn cards, HTML, data tables
  • File delivery with SHA-256 integrity verification
  • Delivery states: queued, delivered, read, dismissed
  • Cross-node delivery via gossip and bridge SSE
46commits
+9,005lines added
-651removed
88files
messagingcollaboration
☁️
24 commits
+9K lines
aws_sts_identity always first IAM 8 tools EC2 5 tools S3 5 tools Cost 2 tools aws_resource_summary parallel EC2 + S3 + Cost in one call read-only · 28 tools · Orgs + STS + forecasting

We gave AI eyes into AWS. Read-only eyes.

28 MCP tools cover STS, IAM, EC2, S3, Organizations, and Cost Explorer. aws_resource_summary runs EC2, S3, and cost queries in parallel. One call, full picture.

The read-only constraint is deliberate. AI should help you understand your infrastructure. It should not change it without you driving.

What we built

  • 28 read-only AWS MCP tools across 6 services
  • Parallel resource summary across EC2, S3, Cost Explorer
  • IAM auditing: unused keys, missing MFA devices
  • Cost forecasting and spend trend analysis
  • aws_sts_identity always runs first
24commits
+8,539lines added
-370removed
72files
awscloud
🔐
21 commits
+3K lines
Source has secret Consumer needs secret ECDH P-256 key exchange AES-GCM encrypt shared secret via SHA-256 materialise to HOME no plaintext in transit. ever.

API keys, tokens, passwords. They all need to move between nodes without anyone in the middle seeing them.

We built credential delivery with ECDH P-256 key exchange. Source node encrypts with AES-GCM. No central authority sees the plaintext. Consumer derives the shared secret and decrypts locally. Credentials materialise into the HOME directory on each node.

Gossip carries the encrypted payload. The bridge relay cannot read it. Only the consumer can.

What we built

  • ECDH P-256 key exchange for zero-trust delivery
  • AES-GCM encryption. No plaintext in transit. Ever.
  • Rotation, tiering, and export boundary controls
  • Provenance tracking per credential per node
  • Auto-materialise to HOME directory on each node
21commits
+2,733lines added
-230removed
52files
securityencryption
📜
15 commits
+2K lines
template prompt save versioned run one click result GVTurn deploy-checklist code-review-template financial-model-update v3 v7 v2 bulk import/export · conflict detection · mesh distribution

Sometimes you write a prompt that works so well you want to save it. The script engine is where those prompts live.

Scripts are stored, versioned, and shareable across the mesh. A deployment checklist, a code review template, a financial model update. Each becomes a script you run with one click.

Versions let you track what changed. Conflict detection catches divergence when scripts are edited on multiple nodes.

What we built

  • Script CRUD with full version history
  • Template system for common workflow patterns
  • Bulk import and export across mesh nodes
  • Conflict detection and merge resolution
  • One-click repeatable AI workflows
15commits
+1,812lines added
-129removed
38files
automationreuse
🎛️
13 commits
+3K lines
card mode HTML cards → dashboard headless mode {"status":"ok", "result":{...}} JSON → machine agent delegation node to node create · extend · terminate · escalating turn context

Every AI conversation in greatVibe is a session. Sessions have lifecycles. Card mode renders GVTurn cards for interactive work. Headless mode returns structured JSON for machine-to-machine communication.

Agent delegation lets one session spawn work on another node. This is how multi-node workflows run. One session orchestrates. Others execute.

Turn context escalates as sessions grow. By turn 3, testing macros kick in. By turn 10, HTML enforcement applies. The system gets stricter as the session deepens.

What we built

  • Card mode for interactive dashboard work
  • Headless mode for machine-to-machine JSON responses
  • Agent delegation spawns work on other mesh nodes
  • Session lifecycle: create, extend, terminate
  • Escalating turn context reinforcement from turn 3
13commits
+2,992lines added
-396removed
42files
sessionsorchestration
🌉
38 commits
+8K lines
Node A gvmesh:8443 Node B gvmesh:8443 Bridge Relay WebSocket WAN max 10MB payload Priority Queues realtime cap 1000 high cap 500 normal cap 500 low cap 200 Hello / Welcome / Ping / RelayFrame protocol mTLS direct · bridge fallback · 1,284 lines bridge.go

Mesh nodes do not always have direct routes to each other. Sometimes they are behind firewalls, on different networks, or on the other side of the world. The bridge relay solves this.

Every node connects to the bridge over WebSocket. When direct mTLS fails, traffic falls back to the relay. No configuration needed.

The relay runs four priority queues. Realtime traffic for session messages. High priority for credentials. Normal for context sync. Low for bulk file transfers. The 1,284 lines of bridge.go handle framing, authentication, heartbeat, and queue management. Every byte that crosses the WAN goes through this code.

What we built

  • WebSocket relay for WAN connectivity across networks
  • Four-tier priority queues: realtime 1000, high 500, normal 500, low 200
  • RelayFrame protocol: Hello, Welcome, Ping, data frames
  • Maximum payload 10MB per frame
  • 1,284 lines of bridge.go built from scratch
38commits
+8,120lines added
-940removed
62files
infrastructurenetworking
📋
29 commits
+5K lines
AI Session start prompt text tool_call tool_result complete JSONL Log immutable · append-only {type,seq,ts} {requestId} {data?} {toolName?} {error?} sparse fields Replay reconstruct full session from events turn briefing 12 event types · full session replay · rawturns API

AI is a black box. We opened it.

Every session writes an immutable JSONL event log. Each line is a RawTurnEvent with a type, sequence number, and timestamp. start kicks off the turn. prompt captures the human input. text records each token chunk. tool_call and tool_result log every MCP interaction. complete closes the turn.

Replay the log and you reconstruct the entire session. Not a summary. The exact sequence of events, in order.

This is how new sessions get briefed. Load the last few turns from rawturns. Reconstruct what happened. Give the next AI session a running start.

What we built

  • Immutable JSONL append-only event log per session
  • 12 event types: start, prompt, text, tool_call, tool_result, complete, error, system
  • Sparse RawTurnEvent struct with optional fields per type
  • Full session reconstruction by replay from first event
  • Powers turn briefing for new sessions
29commits
+4,870lines added
-312removed
55files
observabilityaudit
🌊
44 commits
+7K lines
Flow emergent · auto-created genesis Session card · headless · agent evidence Turn gvturn_id · requestId decision ToolCall tool · args · result output edge deliverable continues edge debug thread 5 edge types · emergent creation · background curator

GVTurns are cards. Flows are the stories those cards tell.

When you start work, a flow is created automatically. Every turn links to that flow as an evidence edge. Tool calls become decision edges. When work ships, it becomes an output edge. Debug threads chain together via continues edges.

The graph builds itself. You never have to think about it. The curator runs in the background, linking orphaned turns, detecting debug threads, keeping the graph clean.

Zoom out from a single card and you see the full arc of work. A feature from first prompt to shipped output, every decision and course correction visible in the graph.

What we built

  • Flow, Session, Turn, ToolCall hierarchy
  • Five edge types: genesis, evidence, decision, output, continues
  • Emergent creation via genesisKontaskId on first prompt
  • Background curator auto-links orphaned turns
  • DecisionSummary captures design decisions mid-session
44commits
+7,340lines added
-890removed
98files
graphorchestration
⚖️
32 commits
+6K lines
ProviderRegistry capability scoring · quota tracking BackendRegistry LLM backends AgentRegistry registered agents QuotaTracker dual windows Capability Scoring required AND hard filter preferred scoring ranked list RollingWindow WeeklyCeiling quota round_robin least_used Account Rotation Strategies RateLimit · multi-LLM · automatic failover

Not all models are the same. Not all tasks need the same model. Provider orchestration routes work to the right backend automatically.

The ProviderRegistry scores candidates in two passes. Required capabilities filter out backends that cannot do the job. Preferred capabilities rank what remains. The highest-scoring available backend wins.

Quota tracking runs two windows simultaneously. A rolling window catches rate spikes. A weekly ceiling stops runaway spending. When one account hits its limit, rotation kicks in. Quota rotation picks the best remaining account. Round-robin distributes load evenly. Least-used finds the idlest backend.

The result is an AI platform that keeps working even when individual accounts get throttled.

What we built

  • ProviderRegistry with BackendRegistry and AgentRegistry
  • Capability scoring: required AND filter plus preferred scoring
  • QuotaStatus with RollingWindow and WeeklyCeiling dual tracking
  • Three account rotation strategies: quota, round_robin, least_used
  • Automatic failover when quota or rate limits are hit
32commits
+6,210lines added
-540removed
78files
aiinfrastructure
🎮
35 commits
+6K lines
gv.session_id human prompt Commander enrichSessionSend 1,465 lines ags_xxx Claude session processSessionImages extract base64 from prompt write to disk per turn /tmp/gvmesh-images/ {turnID}/{index}.png asyncCommands · session routing · image dispatch

When you type a prompt in greatVibe, it does not go straight to Claude. It goes through the Commander first.

enrichSessionSend takes the raw human input and builds the full context package. It resolves gv.session_id to the Claude-side ags_xxx session identifier. It injects turn context, macros, and system instructions. It calls processSessionImages to extract any base64-encoded images from the prompt and write them to disk before the model call.

The Commander is the translation layer between the human-facing session and the model-facing API. 1,465 lines that handle the gap between what you type and what Claude receives. Get this wrong and every AI interaction in the platform breaks.

What we built

  • gv.session_id to ags_xxx translation on every send
  • enrichSessionSend builds the full context for Claude
  • processSessionImages extracts base64 images from prompts
  • Images written to /tmp/gvmesh-images/{turnID}/{index}.png
  • asyncCommands map for non-blocking session dispatch
35commits
+5,980lines added
-720removed
67files
aisessions
🔒
18 commits
+3K lines
Self-Signed CA ECDSA P-256 · 10 year · MaxPathLen:1 Node Cert A 1 year · SAN Client+Server Node Cert B 1 year · SAN Client+Server Node Cert C 1 year · SAN Client+Server IssueNodeCert / SignCSR / VerifyCertificate GenerateNodeCert dual ExtKeyUsage CA-only validation P-256 keygen ClientAuth+ServerAuth mTLS enforced zero-trust · auto-rotate · no external CA needed

We do not trust networks. We trust certificates.

Every gvmesh node generates its own ECDSA P-256 key pair on first start. It submits a certificate signing request to the CA. The CA signs it with MaxPathLen:1 to prevent intermediate CA abuse. The node gets a cert valid for one year.

Every connection between nodes requires mutual TLS. Both sides present certificates. Both sides verify against the CA. No exceptions.

The CA lives at 10 years so it does not need rotation during the platform lifetime. Node certs rotate at one year. The IssueNodeCert, SignCSR, and VerifyCertificate functions in ca.go and certs.go are the foundation everything else builds on.

What we built

  • ECDSA P-256 throughout: CA keys, node keys, ephemeral ECDH
  • Self-signed CA valid for 10 years, node certs for 1 year
  • Dual ExtKeyUsage: ClientAuth plus ServerAuth on every cert
  • SAN support for hostname and IP binding
  • CA-only validation: no certificate chain lookups needed
18commits
+3,420lines added
-290removed
48files
securityinfrastructure
💬
280 commits
+22K lines
@dev-hugo what's the deploy status? chitchat @mention sidecar-bot Agent + gvmcp tools Claude reply F1 etiquette: reply when @-mentioned silence filter · markdown subset · panic-stop cross-mesh via bridge · console_inject to dashboard

chitchat shipped as a small UI strip in March. Through late April it grew into a real conversation surface. Bots joined.

The first sidecar-bot (originally called haiku-bot) responded to @mentions on a single mesh. By the end of April it was running as a real Agent. Mention your hostname and you get a Claude CLI session spawned per turn, with the full gvmcp toolkit at hand. Reads files. Greps the codebase. Runs commands. Returns the answer in line.

We rewired bot etiquette through the F1 prompt sequence. Group-chat manners. Reply only when @-mentioned or with concrete useful info. Light markdown subset for bold, italics, code, lists, links. Silence filter to stop the bot from meta-narrating its own quietness. A panic-stop button for when a conversation runs hot.

The chitchat UI itself went through fifteen iterations in ten days. Swipe gestures, Inter font, markdown rendering, history replay on reconnect, ack and read-receipts, peer presence pills, a mobile portrait pass for iPhone, Z Fold and Pixel.

By April 30 the gv.sidecar card showed live sparklines, cost rollups and per-model breakdowns. The bot is standard now, not experimental.

What we built

  • Sidecar-bot runs as an Agent with full gvmcp tool access
  • F1 etiquette prompt: group-chat manners, markdown subset, silence filter
  • chitchat UI through 15 iterations: swipe, history replay, ack receipts, mobile portrait
  • Cross-mesh bots reply through the bridge
  • konui_console_inject: sidecar runs a turn directly on your dashboard
  • gv.sidecar card: sparklines, cost rollup, per-model breakdown
280commits
+22,000lines added
-6,000removed
600files
sidecar-botschitchatagentsui
🌐
170 commits
+13K lines
MESH A konui-a gvmesh node user-a MESH B konui-b gvmesh node user-b Bridge relay konui-peer + mesh-permit transport · scoped permission presence · proxy · console_inject

Each greatVibe mesh ran in its own bubble through March. In late April that changed.

The wave-3.5 push split the old mesh-peer-link concept into two layers. konui-peer carries the transport: URL, tokens, connection state, health. mesh-permit carries the permission: scopes, allowed proxy calls, daily cost cap. Same name, different facets. Today they bind 1:1. Tomorrow we can issue many permits per transport without breaking anything.

Wave-3.5.4 wired the gvmesh Reverse API Proxy. A sidecar mesh can route REST calls through its sponsor konui via the bridge and hit any endpoint that policy allows. mesh_permit_call became the standard tool for cross-mesh API work. konui auto-discovers the bridge-relay URL at startup. The peernodes cache means standalone peer meshes show up in node_list instead of looking empty.

The 16th gossip type landed: user_presence. Each konui heartbeats per-user presence into its local gvmesh. The bridge fans presence updates across meshes via konui-peer. You see who is online on other meshes in real time.

konui_console_inject is the headline UX win. A sidecar bot can compose a gvturn and inject it onto a target user's dashboard. Target-user-filtered, multi-tab deduped, bridge-trusted. Cross-mesh chat is now a real assistant surface.

What we built

  • konui-peer (transport) + mesh-permit (permission) split, wave-4d phase 1
  • gvmesh Reverse API Proxy + mesh_permit_call standard tool
  • Auto-discovery of bridge URL + peernodes cache for sponsor meshes
  • user_presence: 16th gossip type, live cross-mesh presence
  • konui_console_inject: cross-mesh sidecar bots compose turns on your dashboard
  • Cross-mesh chitchat replies through the bridge
170commits
+13,000lines added
-4,000removed
400files
cross-meshkonui-peermesh-permitbridgepresence