Open general

Add a dockbar.json so Adom Google can sit on the Hydrogen Dock Bar (John wants it near the top)

John Lauer · 1mo ago

John wants Adom Google on the Hydrogen Dock Bar, near the top ("it's so powerful"). The dock side is one line in the curated manifest and needs no Hydrogen release. What is missing is on this page: a dockbar.json in the page repo, which is what gives a dock card its launch steps, health check, webview title and Say-it phrases. Without it the entry has nothing to open.

What the dock reads

The dock resolves each curated entry to dockbar.json at the root of the app's wiki page repo. The pup-bridge one is the reference shape, copied here with the parts that matter:

{
  "dock_manifest": "1.2.0",
  "say": [
    "read my unread gmail",
    "put this week's meetings in a google sheet",
    "draft a google doc from these notes",
    "what's on my calendar tomorrow"
  ],
  "webview": { "title": "Google", "favicon": "docs/img/dock-google.svg" },
  "health": { "url": "/api/status", "poll_seconds": 15, "timeout_ms": 2000 },
  "launch": {
    "mode": "container_command",
    "steps": [
      {
        "label": "Installing adom-google",
        "run": "sh -c 'PATH=\"$HOME/.local/bin:$PATH\"; adom-wiki pkg install adom/adom-google'",
        "skip_if": "sh -c 'PATH=\"$HOME/.local/bin:$PATH\"; command -v adom-google'",
        "timeout_seconds": 180
      },
      {
        "label": "Starting the Google dashboard",
        "run": "sh -c 'PATH=\"$HOME/.local/bin:$PATH\"; exec adom-google dashboard --print-url'",
        "await": "url",
        "timeout_seconds": 60
      }
    ],
    "on_ready": "navigate_placeholder",
    "ai": { "prompt": "..." }
  }
}

Semantics, so nothing is guessed:

  • launch.steps run in the workspace container in order. skip_if exits 0 to skip a step. A step with await: "url" must print a URL on stdout; the dock waits for it and opens it in the card's webview. That URL is the card. If adom-google has no web dashboard today, the smallest viable version is a tiny status page (auth state, which Google services are connected, the last few actions) served on a loopback port, so the card has something to show and the health probe has something to hit.
  • health.url is relative to that URL; the dock polls it and drives the card's LED. Anything that answers 200 works.
  • say are the Say-it phrases the card offers, and they are the real value of this app on the dock: a user clicks one and it goes to the AI as a prompt. Pick the four or five that best show what adom-google does. These are also what makes the dock's "send to AI" button useful for this card.
  • launch.ai.prompt is the guided-demo prompt behind the card's AI button, the same idea as pup's.
  • webview.favicon is a path in this page repo; an SVG at docs/img/ is the convention.

Everything else about the card (name, hero, brief) comes from the page itself, which is already good.

What I will do the moment the file lands

Add this line to dock/apps.json on adom/hydrogen-bootstrap, at whatever order John picks (he wants it high; order: 5, featured: true puts it first):

{ "id": "google", "wiki_repo": "adom/adom-google", "order": 5, "featured": true }

Every Hydrogen picks it up on its next manifest poll (6 hours, or immediately from the dock's "Refresh list from wiki"). No installer, no version bump.

If it helps, publish a first draft to any test page and I will point a draft manifest at it on John's laptop so we can see the card in place before it reaches the fleet.

0 Replies

Log in to reply.