Step 653: sprint 39 integration summary

This commit is contained in:
Bill
2026-02-17 21:56:30 -07:00
parent 8905076b0d
commit f4259d9864
4 changed files with 133 additions and 0 deletions

View File

@@ -4756,4 +4756,13 @@ target_link_libraries(step652_test PRIVATE
tree_sitter_javascript tree_sitter_typescript
tree_sitter_java tree_sitter_rust tree_sitter_go)
add_executable(step653_test tests/step653_test.cpp)
target_include_directories(step653_test PRIVATE src)
target_link_libraries(step653_test PRIVATE
nlohmann_json::nlohmann_json
unofficial::tree-sitter::tree-sitter
tree_sitter_python tree_sitter_cpp tree_sitter_elisp
tree_sitter_javascript tree_sitter_typescript
tree_sitter_java tree_sitter_rust tree_sitter_go)
# Step 12: Dear ImGui shell scaffolding created (main.cpp exists but not built due to dependencies)

View File

@@ -0,0 +1,45 @@
#pragma once
// Step 653: Sprint 39 integration + summary
#include "HiveMindAutoUpdateModel.h"
#include "LanguageGeneratorPluginManifest.h"
#include "PackageScriptGenerator.h"
#include "Phase39aIntegration.h"
#include "LocalTelemetryModel.h"
struct Sprint39IntegrationResult {
bool selfHostingReady = false;
bool packagingReady = false;
bool autoUpdateReady = false;
bool pluginReady = false;
bool telemetryReady = false;
bool releaseReady = false;
};
class Sprint39IntegrationSummary {
public:
static Sprint39IntegrationResult run() {
Sprint39IntegrationResult out;
auto phase39a = Phase39aIntegration::run();
out.selfHostingReady = phase39a.integrationReady;
auto pkg = PackageScriptGenerator::generate("whetstone", "1.0.0");
out.packagingReady = pkg.success;
auto update = HiveMindAutoUpdateModel::execute({"1.0.0", "https://apiary/whetstone.AppImage", "abc"}, "abc");
out.autoUpdateReady = update.accepted && update.hashVerified && update.restartScheduled;
PluginManifest manifest{"RustGen", "whetstone-plugin-rust.so", "RustGenerator", {"rust"}};
out.pluginReady = LanguageGeneratorPluginManifest::isValid(manifest) &&
LanguageGeneratorPluginManifest::isPluginFile(manifest.sharedObject);
TelemetryCounters counters;
LocalTelemetryModel::recordSessionMinutes(&counters, 10);
LocalTelemetryModel::recordToolCall(&counters);
out.telemetryReady = LocalTelemetryModel::weeklyReport(counters).find("session_minutes=10") != std::string::npos;
out.releaseReady = out.selfHostingReady && out.packagingReady && out.autoUpdateReady &&
out.pluginReady && out.telemetryReady;
return out;
}
};

View File

@@ -0,0 +1,20 @@
// Step 653: Sprint 39 integration + summary (8 tests)
#include "Sprint39IntegrationSummary.h"
#include <iostream>
static int p=0,f=0;
#define T(n) { std::cout<<" "<<#n<<"... "; }
#define P() { std::cout<<"PASS\n"; ++p; }
#define F(m) { std::cout<<"FAIL: "<<m<<"\n"; ++f; }
#define C(c,m) if(!(c)){F(m);return;}
void t1(){T(self_hosting_ready);auto r=Sprint39IntegrationSummary::run();C(r.selfHostingReady,"self-host");P();}
void t2(){T(packaging_ready);auto r=Sprint39IntegrationSummary::run();C(r.packagingReady,"packaging");P();}
void t3(){T(auto_update_ready);auto r=Sprint39IntegrationSummary::run();C(r.autoUpdateReady,"update");P();}
void t4(){T(plugin_ready);auto r=Sprint39IntegrationSummary::run();C(r.pluginReady,"plugin");P();}
void t5(){T(telemetry_ready);auto r=Sprint39IntegrationSummary::run();C(r.telemetryReady,"telemetry");P();}
void t6(){T(release_ready);auto r=Sprint39IntegrationSummary::run();C(r.releaseReady,"release");P();}
void t7(){T(release_requires_all_subsystems);auto r=Sprint39IntegrationSummary::run();C(r.selfHostingReady&&r.packagingReady&&r.autoUpdateReady&&r.pluginReady&&r.telemetryReady,"subsystems");P();}
void t8(){T(summary_is_deterministic);auto a=Sprint39IntegrationSummary::run();auto b=Sprint39IntegrationSummary::run();C(a.releaseReady==b.releaseReady,"determinism");P();}
int main(){std::cout<<"Step 653: Sprint 39 integration + summary\n";t1();t2();t3();t4();t5();t6();t7();t8();std::cout<<"\nResults: "<<p<<"/"<<(p+f)<<" passed\n";return f?1:0;}

View File

@@ -13397,3 +13397,62 @@ weekly summary formatting and no remote endpoint usage.
- `editor/src/LocalTelemetryModel.h` (`41` <= `600`)
- `editor/tests/step652_test.cpp` within test-file size guidance (`24` lines)
- Header-only architecture and naming conventions remain aligned with `ARCHITECTURE.md`
### Step 653: Sprint 39 Integration + Summary
**Status:** PASS (8/8 tests)
Adds Sprint 39 end-to-end integration across self-hosting readiness, packaging,
auto-update execution, plugin discovery, and local telemetry reporting.
**Files added:**
- `editor/src/Sprint39IntegrationSummary.h` - sprint integration runner
- `editor/tests/step653_test.cpp` - 8 integration summary tests
**Files modified:**
- `editor/CMakeLists.txt` - `step653_test` target
**Verification run:**
- `cmake -S editor -B editor/build-native` - PASS
- `cmake --build editor/build-native --target step653_test step652_test` - PASS
- `./editor/build-native/step653_test` - PASS (8/8)
- `./editor/build-native/step652_test` - PASS (12/12) regression coverage
**Architecture gate check:**
- `editor/src/Sprint39IntegrationSummary.h` (`45` <= `600`)
- `editor/tests/step653_test.cpp` within test-file size guidance (`20` lines)
- Header-only architecture and naming conventions remain aligned with `ARCHITECTURE.md`
## Sprint 39 Refactor Pass (Architecture Compliance)
**Status:** PASS
Completed end-of-sprint modified-files audit for Steps 644-653.
No additional refactor was required; all Sprint 39 touched modules remained
within architecture size/function constraints.
**Verification run (full sprint matrix):**
- `cmake --build editor/build-native --target step644_test step645_test step646_test step647_test step648_test step649_test step650_test step651_test step652_test step653_test` - PASS
- `./editor/build-native/step644_test` - PASS (12/12)
- `./editor/build-native/step645_test` - PASS (12/12)
- `./editor/build-native/step646_test` - PASS (12/12)
- `./editor/build-native/step647_test` - PASS (12/12)
- `./editor/build-native/step648_test` - PASS (8/8)
- `./editor/build-native/step649_test` - PASS (12/12)
- `./editor/build-native/step650_test` - PASS (12/12)
- `./editor/build-native/step651_test` - PASS (12/12)
- `./editor/build-native/step652_test` - PASS (12/12)
- `./editor/build-native/step653_test` - PASS (8/8)
- Sprint 39 matrix total: **112/112 passing**
**Architecture gate check:**
- `editor/src/SelfHostingProjectConfig.h` (`53` <= `600`)
- `editor/src/ProjectAstCMakeGenerator.h` (`38` <= `600`)
- `editor/src/InEditorTestRunnerModel.h` (`40` <= `600`)
- `editor/src/SelfModificationSafetyGuard.h` (`28` <= `600`)
- `editor/src/Phase39aIntegration.h` (`49` <= `600`)
- `editor/src/PackageScriptGenerator.h` (`29` <= `600`)
- `editor/src/HiveMindAutoUpdateModel.h` (`41` <= `600`)
- `editor/src/LanguageGeneratorPluginManifest.h` (`30` <= `600`)
- `editor/src/LocalTelemetryModel.h` (`41` <= `600`)
- `editor/src/Sprint39IntegrationSummary.h` (`45` <= `600`)
- Sprint 39 test files remain within test-file size guidance.
- Header-only architecture and naming conventions remain aligned with `ARCHITECTURE.md`