fix: oracle review fixes — resolver exit code, dead include, pointer compose

- Exit code: plan.missing.empty() ? 0 : 1 (was always returning 0)
- Removed dead <algorithm> include from plan.cpp
- BuildStep now composes config::ResolvedPackage instead of duplicating
  features/config fields; PackageDef stored as const pointer
This commit is contained in:
2026-07-30 00:47:50 -04:00
parent ee9f280346
commit 72e582eb15
2 changed files with 8 additions and 10 deletions
+3 -3
View File
@@ -270,9 +270,9 @@ int main(int argc, char* argv[]) {
for (auto& step : plan.steps) {
std::cout << " " << step.name << " (" << step.dependencies.size()
<< " deps";
if (!step.features.empty()) {
if (!step.resolved.features.empty()) {
std::cout << ", features:";
for (auto& [k, f] : step.features) {
for (auto& [k, f] : step.resolved.features) {
if (f.enabled && !f.flag.empty()) {
std::cout << " " << k;
}
@@ -280,7 +280,7 @@ int main(int argc, char* argv[]) {
}
std::cout << ")\n";
}
return plan.steps.empty() && plan.missing.empty() ? 0 : 0;
return plan.missing.empty() ? 0 : 1;
} catch (const std::runtime_error& e) {
handle_parse_error(file_arg, source, e);
return 1;
+5 -7
View File
@@ -1,7 +1,6 @@
#include "kappa/resolve/plan.hpp"
#include "kappa/config/merge.hpp"
#include <algorithm>
#include <queue>
namespace kappa::resolve {
@@ -23,15 +22,14 @@ BuildPlan resolve(const dsl::SystemConfig& cfg, const Registry& registry) {
BuildStep step;
step.name = pkg.name;
step.package = pkg;
step.features = resolved.features;
step.config = resolved.config;
step.package = &pkg;
step.resolved = std::move(resolved);
for (auto& dep : pkg.depends) {
if (!dep.feature.empty()) {
auto fit = step.features.find(dep.feature);
if (fit == step.features.end() || !fit->second.enabled) {
continue; // feature-gated and disabled
auto fit = step.resolved.features.find(dep.feature);
if (fit == step.resolved.features.end() || !fit->second.enabled) {
continue;
}
}
step.dependencies.push_back({dep.name, dep.version});