release: v0.1.0 — one-click install, keyless boot, in-app Provider Settings (#142)

The first formal release.

- One-click install via Pinokio; keyless boot lands on a live Esri World
  Imagery satellite globe with keyless terrain, with automatic OSM fallback
  and graceful degradation when terrain is unavailable.
- Provider Settings (the POWER UP panel): add, replace, or remove API keys
  inside the app; credential files made owner-only before any secret is
  written; external keys shown read-only; the panel refuses shared or proxied
  servers.
- Keyless capability responses for the optional HUD summary and place search.
- Aircraft-identity voice answers cover operator, type, and route, and say so
  plainly when enrichment is unavailable.
- README rewritten keyless-first; concise 0.1.0 changelog section; CI
  workflow included.

Gates: 2,672 unit tests pass / 0 fail, build clean, tracking regression
108/108, map-source tray QA pass, setup doctor ready.
This commit is contained in:
Bilawal Sidhu authored and GitHub committed 2026-08-31 17:49:45 -05:00
1 parent 6d83bb6008
commit b6da93b8ac
170 files changed
+5800 -853

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
# God's Eye View works without any API keys.
# Easiest way to add one: open PROVIDER SETTINGS inside the running app (the
# POWER UP chip, bottom-right). It saves into this file for you with owner-only
# permissions and restarts the app — you never need to edit this file by hand.
# Manual fallback: use Pinokio's File Explorer to reveal this ignored
# pinokio/ENVIRONMENT file, edit it with a trusted local text editor, uncomment
# only the providers you need, then Stop and Start the app. This file is
# plaintext, not encrypted.
# Do not enter credentials in Pinokio 8.0.40's native Configure panel: that
# release saves this nested layout to the wrong path and logs submitted values.
# GOOGLE_MAPS_API_KEY=
# CESIUM_ION_TOKEN=
# OPENAI_API_KEY=
# AISSTREAM_API_KEY=
# FIRMS_MAP_KEY=
# TOMTOM_API_KEY=
# OPENSKY_CLIENT_ID=
# OPENSKY_CLIENT_SECRET=
# LL2_API_TOKEN=
# Keep sharing off. The current supported Pinokio release logs successful
# tunnel-login passcodes, so the launcher refuses to create a tunnel.
PINOKIO_SHARE_CLOUDFLARE=false
PINOKIO_SHARE_LOCAL=false
PINOKIO_SHARE_VAR=__gev_sharing_disabled__
# App-level guards, not billing caps. Provider-side budgets remain authoritative.
GEV_RATELIMIT_OPENAI_PER_MIN=30
GEV_RATELIMIT_GOOGLE_PER_MIN=120
+35
View File
@@ -0,0 +1,35 @@
module.exports = {
run: [
{
when: "{{!kernel.exists(cwd, 'ENVIRONMENT')}}",
method: 'fs.copy',
params: {
src: '_ENVIRONMENT',
dest: 'ENVIRONMENT',
},
},
{
method: 'shell.run',
params: {
path: '..',
// Forward nonblank app configuration values for Pinokio compatibility. The
// child also reads the raw app ENVIRONMENT file because Pinokio removes
// blank fields before constructing this merged template environment.
env: {
GOOGLE_MAPS_API_KEY: '{{env.GOOGLE_MAPS_API_KEY || ""}}',
CESIUM_ION_TOKEN: '{{env.CESIUM_ION_TOKEN || ""}}',
OPENAI_API_KEY: '{{env.OPENAI_API_KEY || ""}}',
AISSTREAM_API_KEY: '{{env.AISSTREAM_API_KEY || ""}}',
FIRMS_MAP_KEY: '{{env.FIRMS_MAP_KEY || ""}}',
TOMTOM_API_KEY: '{{env.TOMTOM_API_KEY || ""}}',
OPENSKY_CLIENT_ID: '{{env.OPENSKY_CLIENT_ID || ""}}',
OPENSKY_CLIENT_SECRET: '{{env.OPENSKY_CLIENT_SECRET || ""}}',
LL2_API_TOKEN: '{{env.LL2_API_TOKEN || ""}}',
GEV_RATELIMIT_OPENAI_PER_MIN: '{{env.GEV_RATELIMIT_OPENAI_PER_MIN || ""}}',
GEV_RATELIMIT_GOOGLE_PER_MIN: '{{env.GEV_RATELIMIT_GOOGLE_PER_MIN || ""}}',
},
message: 'node scripts/pinokio-install.mjs',
},
},
],
};
+3
View File
@@ -0,0 +1,3 @@
{
"type": "commonjs"
}
+39
View File
@@ -0,0 +1,39 @@
module.exports = {
version: '3.6',
title: "God's Eye View",
description: 'A live 3D intelligence console for planet Earth.',
menu: async (_kernel, info) => {
const installed = info.exists('.installed');
const installing = info.running('install.js');
const starting = info.running('start.js');
const updating = info.running('update.js');
const resetting = info.running('reset.js');
if (installing || updating || resetting) {
const href = installing ? 'install.js' : updating ? 'update.js' : 'reset.js';
const text = installing ? 'Installing' : updating ? 'Updating' : 'Resetting';
return [{ default: true, icon: 'fa-solid fa-terminal', text, href }];
}
if (!installed) {
return [{ default: true, icon: 'fa-solid fa-download', text: 'Install', href: 'install.js' }];
}
if (starting) {
const local = info.local('start.js');
if (local?.url) {
return [
{ default: true, icon: 'fa-solid fa-earth-americas', text: 'Open God\'s Eye View', href: local.url },
{ icon: 'fa-solid fa-terminal', text: 'Server', href: 'start.js' },
];
}
return [{ default: true, icon: 'fa-solid fa-terminal', text: 'Starting', href: 'start.js' }];
}
return [
{ default: true, icon: 'fa-solid fa-power-off', text: 'Start', href: 'start.js' },
{ icon: 'fa-solid fa-arrows-rotate', text: 'Update', href: 'update.js' },
{ icon: 'fa-solid fa-broom', text: 'Repair installation', href: 'reset.js' },
];
},
};
+11
View File
@@ -0,0 +1,11 @@
module.exports = {
run: [
{
method: 'shell.run',
params: {
path: '..',
message: 'node scripts/pinokio-reset.mjs',
},
},
],
};
+42
View File
@@ -0,0 +1,42 @@
module.exports = {
daemon: true,
run: [
{
method: 'shell.run',
params: {
path: '..',
env: {
HOST: '127.0.0.1',
PORT: '{{port}}',
GOOGLE_MAPS_API_KEY: '{{env.GOOGLE_MAPS_API_KEY || ""}}',
CESIUM_ION_TOKEN: '{{env.CESIUM_ION_TOKEN || ""}}',
OPENAI_API_KEY: '{{env.OPENAI_API_KEY || ""}}',
AISSTREAM_API_KEY: '{{env.AISSTREAM_API_KEY || ""}}',
FIRMS_MAP_KEY: '{{env.FIRMS_MAP_KEY || ""}}',
TOMTOM_API_KEY: '{{env.TOMTOM_API_KEY || ""}}',
OPENSKY_CLIENT_ID: '{{env.OPENSKY_CLIENT_ID || ""}}',
OPENSKY_CLIENT_SECRET: '{{env.OPENSKY_CLIENT_SECRET || ""}}',
LL2_API_TOKEN: '{{env.LL2_API_TOKEN || ""}}',
PINOKIO_SHARE_CLOUDFLARE: '{{env.PINOKIO_SHARE_CLOUDFLARE || "false"}}',
PINOKIO_SHARE_LOCAL: '{{env.PINOKIO_SHARE_LOCAL || "false"}}',
PINOKIO_SHARE_VAR: '{{env.PINOKIO_SHARE_VAR || "__gev_sharing_disabled__"}}',
GEV_RATELIMIT_OPENAI_PER_MIN: '{{env.GEV_RATELIMIT_OPENAI_PER_MIN || ""}}',
GEV_RATELIMIT_GOOGLE_PER_MIN: '{{env.GEV_RATELIMIT_GOOGLE_PER_MIN || ""}}',
},
message: 'node scripts/pinokio-start.mjs',
on: [{
event: '/\\[Pinokio\\] Ready at (http:\\/\\/127\\.0\\.0\\.1:[0-9]+\\/)/',
done: true,
}],
},
},
{
// Pinokio requires local.url for ready/Open state. PINOKIO_SHARE_VAR is
// pinned to a different sentinel so local.set cannot trigger sharing.
method: 'local.set',
params: {
url: '{{input.event[1]}}',
},
},
],
};
+26
View File
@@ -0,0 +1,26 @@
module.exports = {
run: [
{
method: 'shell.run',
params: {
path: '..',
// Update reuses the install doctor. The child re-reads raw app
// ENVIRONMENT so blank fields override Pinokio-global values too.
env: {
GOOGLE_MAPS_API_KEY: '{{env.GOOGLE_MAPS_API_KEY || ""}}',
CESIUM_ION_TOKEN: '{{env.CESIUM_ION_TOKEN || ""}}',
OPENAI_API_KEY: '{{env.OPENAI_API_KEY || ""}}',
AISSTREAM_API_KEY: '{{env.AISSTREAM_API_KEY || ""}}',
FIRMS_MAP_KEY: '{{env.FIRMS_MAP_KEY || ""}}',
TOMTOM_API_KEY: '{{env.TOMTOM_API_KEY || ""}}',
OPENSKY_CLIENT_ID: '{{env.OPENSKY_CLIENT_ID || ""}}',
OPENSKY_CLIENT_SECRET: '{{env.OPENSKY_CLIENT_SECRET || ""}}',
LL2_API_TOKEN: '{{env.LL2_API_TOKEN || ""}}',
GEV_RATELIMIT_OPENAI_PER_MIN: '{{env.GEV_RATELIMIT_OPENAI_PER_MIN || ""}}',
GEV_RATELIMIT_GOOGLE_PER_MIN: '{{env.GEV_RATELIMIT_GOOGLE_PER_MIN || ""}}',
},
message: 'node scripts/pinokio-update.mjs',
},
},
],
};