mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 02:44:02 +00:00
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:
1 parent
6d83bb6008
commit
b6da93b8ac
170 files changed
+5800
-853
No files matched your search
@@ -286,7 +286,7 @@ test('AIS first-connect grace expiry reports failure even without a terminal man
|
||||
assert.equal(presentLoadingFeedback(state, unavailable, 300).label, 'LOAD FAILED');
|
||||
});
|
||||
|
||||
test('an explicitly missing optional key completes the global loading batch honestly', () => {
|
||||
test('participant stats failure outranks a simultaneous visibility completion', () => {
|
||||
const enabling = aggregateLayerLoading([{
|
||||
id: 'ais-live-vessels',
|
||||
name: 'AIS Vessels',
|
||||
@@ -307,31 +307,6 @@ test('an explicitly missing optional key completes the global loading batch hone
|
||||
type: 'visibility', layerId: 'ais-live-vessels', enabled: true,
|
||||
});
|
||||
|
||||
assert.equal(state.terminal, 'complete');
|
||||
assert.equal(presentLoadingFeedback(state, missingKey, 250).label, 'LOAD COMPLETE');
|
||||
});
|
||||
|
||||
test('an explicit lifecycle failure still outranks a key-required row', () => {
|
||||
const enabling = aggregateLayerLoading([{
|
||||
id: 'local-firms',
|
||||
name: 'FIRMS Active Fires',
|
||||
lifecycleState: 'enabling',
|
||||
stats: { loading: true },
|
||||
}]);
|
||||
let state = reduceLoadingFeedback(createLoadingFeedbackState(), enabling, 0);
|
||||
state = reduceLoadingFeedback(state, enabling, 200);
|
||||
|
||||
const missingKey = aggregateLayerLoading([{
|
||||
id: 'local-firms',
|
||||
name: 'FIRMS Active Fires',
|
||||
enabled: true,
|
||||
lifecycleState: 'enabled',
|
||||
stats: { loading: false, keyRequired: true, error: 'KEY REQUIRED' },
|
||||
}]);
|
||||
state = reduceLoadingFeedback(state, missingKey, 250, {
|
||||
type: 'visibility-failed', layerId: 'local-firms', error: new Error('lifecycle failed'),
|
||||
});
|
||||
|
||||
assert.equal(state.terminal, 'error');
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user