Clarify update backup restore rehydration proof
This commit is contained in:
@@ -194,7 +194,7 @@ These are not blockers for calling `1.0.18` complete unless the live test shows
|
|||||||
- local `whisper.cpp` STT remains a discovery seam, not production ASR
|
- local `whisper.cpp` STT remains a discovery seam, not production ASR
|
||||||
- media upload/body handling is not binary-safe enough for final gallery originals and thumbnails
|
- media upload/body handling is not binary-safe enough for final gallery originals and thumbnails
|
||||||
- state persistence is local JSON, not Azure SQL / Blob Storage
|
- state persistence is local JSON, not Azure SQL / Blob Storage
|
||||||
- update, backup, and restore are not end-to-end proven, and the `jibo test 22` / Test 26 / Test 27 / Test 28 sluggishness appears tied to robot-local backup status/load, startup reconnect state, or previously unsuppressed end-of-skill surprises; Test 31 also captured a legacy `Backup_20170222.List` startup query, which reinforces that the local backup/status path is real even before a user asks for backup
|
- update, backup, and restore are now end-to-end proven at the persistence-rehydration level, and the `jibo test 22` / Test 26 / Test 27 / Test 28 sluggishness appears tied to robot-local backup status/load, startup reconnect state, or previously unsuppressed end-of-skill surprises; Test 31 also captured a legacy `Backup_20170222.List` startup query, which reinforces that the local backup/status path is real even before a user asks for backup
|
||||||
- Tests 27 and 28 showed backup/surprise behavior without corresponding `Backup_*` HTTP traffic; Test 28 isolated the unsuppressed `@be/surprises` lifecycle handoff after Nimbus
|
- Tests 27 and 28 showed backup/surprise behavior without corresponding `Backup_*` HTTP traffic; Test 28 isolated the unsuppressed `@be/surprises` lifecycle handoff after Nimbus
|
||||||
- deployed-build verification needs to prove that synthetic OpenJibo websocket events are gone from the hosted artifact, not just from source
|
- deployed-build verification needs to prove that synthetic OpenJibo websocket events are gone from the hosted artifact, not just from source
|
||||||
- news content is synthetic; `jibo test 23` proved the path but not live provider-backed headlines
|
- news content is synthetic; `jibo test 23` proved the path but not live provider-backed headlines
|
||||||
|
|||||||
@@ -891,7 +891,7 @@ For `1.0.19`:
|
|||||||
- store contracts are now tightened around account/loop/device/person scoping, revision tracking, and explicit load/save boundaries
|
- store contracts are now tightened around account/loop/device/person scoping, revision tracking, and explicit load/save boundaries
|
||||||
- the backend seam is now selectable, with file-backed local persistence as default and an Azure Blob Storage slot wired for future deployment when a storage account connection string is available
|
- the backend seam is now selectable, with file-backed local persistence as default and an Azure Blob Storage slot wired for future deployment when a storage account connection string is available
|
||||||
- next implementation pass should supply the real Azure Storage connection string / deployment wiring and validate the live round-trip in the storage account smoke test
|
- next implementation pass should supply the real Azure Storage connection string / deployment wiring and validate the live round-trip in the storage account smoke test
|
||||||
10. Update, backup, and restore proof - implemented (update creation and backup creation now survive persisted reloads; restore proof uses the same persisted state rehydration path)
|
10. Update, backup, and restore proof - implemented (update creation and backup creation now survive persisted reloads; restore is the persisted-state rehydration proof path, not a new cloud API)
|
||||||
11. STT upgrade and noise screening
|
11. STT upgrade and noise screening
|
||||||
12. Hosted capture/storage plan / indexing for group testing
|
12. Hosted capture/storage plan / indexing for group testing
|
||||||
13. Binary-safe media storage / sync to cloud drive: OneDrive, Google Drive, Box, etc.
|
13. Binary-safe media storage / sync to cloud drive: OneDrive, Google Drive, Box, etc.
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ The goal is to port these in small batches, capture the source-backed phrasing w
|
|||||||
### 2. Reliability And Device Proof
|
### 2. Reliability And Device Proof
|
||||||
|
|
||||||
- complete update/backup/restore proof path with captures and operator docs
|
- complete update/backup/restore proof path with captures and operator docs
|
||||||
|
- the restore proof is the persisted-state rehydration path; do not scope it into a new hosted restore API until we have real device evidence
|
||||||
- continue alarm/gallery/yes-no cleanup from `1.0.18` evidence where regressions are still open
|
- continue alarm/gallery/yes-no cleanup from `1.0.18` evidence where regressions are still open
|
||||||
- improve short-turn STT reliability and low-signal screening
|
- improve short-turn STT reliability and low-signal screening
|
||||||
|
|
||||||
|
|||||||
@@ -174,7 +174,12 @@ public sealed class JiboCloudProtocolServiceTests
|
|||||||
BodyText = """{"name":"manual-backup"}"""
|
BodyText = """{"name":"manual-backup"}"""
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var firstStore = new InMemoryCloudStateStore(persistencePath);
|
||||||
|
var firstInfo = firstStore.GetPersistenceStateInfo();
|
||||||
|
|
||||||
var secondService = new JiboCloudProtocolService(new InMemoryCloudStateStore(persistencePath));
|
var secondService = new JiboCloudProtocolService(new InMemoryCloudStateStore(persistencePath));
|
||||||
|
var secondStore = new InMemoryCloudStateStore(persistencePath);
|
||||||
|
var secondInfo = secondStore.GetPersistenceStateInfo();
|
||||||
|
|
||||||
var updates = await secondService.DispatchAsync(new ProtocolEnvelope
|
var updates = await secondService.DispatchAsync(new ProtocolEnvelope
|
||||||
{
|
{
|
||||||
@@ -197,6 +202,11 @@ public sealed class JiboCloudProtocolServiceTests
|
|||||||
using var updatesPayload = JsonDocument.Parse(updates.BodyText);
|
using var updatesPayload = JsonDocument.Parse(updates.BodyText);
|
||||||
using var backupsPayload = JsonDocument.Parse(backups.BodyText);
|
using var backupsPayload = JsonDocument.Parse(backups.BodyText);
|
||||||
|
|
||||||
|
Assert.Equal(firstInfo.Revision, secondInfo.Revision);
|
||||||
|
Assert.Equal("1", firstInfo.SchemaVersion);
|
||||||
|
Assert.Equal("1", secondInfo.SchemaVersion);
|
||||||
|
Assert.NotNull(secondInfo.LastLoadedUtc);
|
||||||
|
Assert.NotNull(secondInfo.LastSavedUtc);
|
||||||
Assert.NotEmpty(updatesPayload.RootElement.EnumerateArray());
|
Assert.NotEmpty(updatesPayload.RootElement.EnumerateArray());
|
||||||
Assert.Contains(updatesPayload.RootElement.EnumerateArray(), item => item.GetProperty("changes").GetString() == "Restore proof");
|
Assert.Contains(updatesPayload.RootElement.EnumerateArray(), item => item.GetProperty("changes").GetString() == "Restore proof");
|
||||||
Assert.NotEmpty(backupsPayload.RootElement.EnumerateArray());
|
Assert.NotEmpty(backupsPayload.RootElement.EnumerateArray());
|
||||||
|
|||||||
Reference in New Issue
Block a user