Skip to content
published Visibility internal Owner _ Approver _ Created _ Updated _

Git Dashboard

Command: /git-dashboard [repo_path] [--commits N]

Options

  • Default repo: [[orgRepoRoot]]
  • --commits N / -c N — include N recent commits in the dashboard (default: 0, section hidden)
  • Custom repo: pass any absolute path as the first argument

Output

Output only the artifact — no text, no commentary, no summary. The artifact opens automatically when it is the only output.

Step 1: Gather Data (run in parallel)

  1. git_status (repo_path) → branch name, uncommitted files (staged/unstaged/untracked)
  2. git_log (max_count=N; if N=0, still fetch max_count=1 to get the HEAD commit)
  3. git_branch (branch_type=“local”) → list of local branches
  4. git_fetch → refresh remote refs

Step 2: Unpushed Commits (run after fetch)

  1. git_diff (target=origin/<branch>..HEAD) → committed but not yet pushed
    • If this fails: record “no remote tracking branch” and continue

Step 3: Vercel Deployment (uvilo-os only — skip for other repos)

  1. getDeployments (teamId=“uvilo”, limit=5) → find most recent deployment where meta.githubCommitRef matches the current branch
  2. Read bypass token from the VERCEL_AUTOMATION_BYPASS_SECRET environment variable on the forgentic Railway container:
    import os; bypass = os.environ.get('VERCEL_AUTOMATION_BYPASS_SECRET', '')

Step 4: Build STATUS_DATA

{
  repo: "uvilo-os",
  branch: "<branch>",
  isClean: <bool>,
  upToDateWithRemote: <bool>,
  headCommit: { sha: "abc1234", message: "...", date: "2026-03-13 02:43 UTC" },
  localBranches: ["dev", "main", "work/..."],
  uncommittedFiles: [{ path: "src/foo.ts", status: "modified" }],  // [] if clean
  unpushedCommits: [{ sha: "abc1234", message: "...", date: "HH:MM" }],  // [] if synced
  recentCommits: [...],     // [] or omit if --commits 0 (section hidden when empty)
  links: {
    github: "https://github.com/ErikDakoda/uvilo-os/tree/<branch>",
    githubDiff: "<see below>",
    preview: "https://os.uvilo.com",       // uvilo-os only
    vercelInspector: "<inspectorUrl>",     // uvilo-os only
  },
  deployment: {                            // omit entirely for non-uvilo-os repos
    state: "READY",                        // READY | BUILDING | ERROR | QUEUED
    commitSha: "...",
    commitMessage: "...",
    createdAt: "2026-03-13 02:43 UTC",
  },
}

GitHub Diff URL:

  • dev branch → https://github.com/ErikDakoda/uvilo-os/commit/<HEAD_sha>
  • Other branch → https://github.com/ErikDakoda/uvilo-os/compare/dev...<branch>

Step 5: Output Artifact

Identifier: git-dashboard, type: text/html.

<!DOCTYPE html>
<html><head>
<style>*{margin:0;padding:0}html,body,iframe{width:100%;height:100vh;overflow:hidden}</style>
</head><body>
<iframe id="f" style="border:none;width:100%;height:100vh"></iframe>
<script>
var d = STATUS_DATA_OBJECT;
var h = btoa(unescape(encodeURIComponent(JSON.stringify(d))));
var b = "BYPASS_TOKEN";
document.getElementById("f").src =
  "https://os.uvilo.com/artifacts/git-dashboard?x-vercel-protection-bypass=" + b +
  "&x-vercel-set-bypass-cookie=samesitenone#" + h;
</script>
</body></html>

Replace:

  • STATUS_DATA_OBJECT — raw JS object literal (not a JSON.stringify’d string)
  • BYPASS_TOKEN — the value from the VERCEL_AUTOMATION_BYPASS_SECRET environment variable