Fix validation failures from loose-end sweep
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
This commit is contained in:
@@ -163,7 +163,9 @@ function parseStrategyReasoning(raw: unknown): StrategyReason[] | undefined {
|
||||
for (const row of raw) {
|
||||
if (!row || typeof row !== 'object') continue;
|
||||
const r = row as Record<string, unknown>;
|
||||
if (typeof r.fact !== 'string' || typeof r.inference !== 'string' || typeof r.action !== 'string') continue;
|
||||
if (typeof r.fact !== 'string' || typeof r.inference !== 'string' || typeof r.action !== 'string') {
|
||||
continue;
|
||||
}
|
||||
out.push({ fact: r.fact, inference: r.inference, action: r.action });
|
||||
}
|
||||
return out.length ? out : undefined;
|
||||
@@ -259,7 +261,8 @@ function resolveMiningOrder(
|
||||
): { order: string[]; skipped: string[]; source: 'agent' | 'server' | 'default' | 'adaptive' } {
|
||||
if (diag?.adaptive_strategy?.tier_order?.length) {
|
||||
const adaptiveOrder = diag.adaptive_strategy.tier_order;
|
||||
if (ordersDiffer(adaptiveOrder, DEFAULT_MINING_TIER_ORDER) || (diag.strategy_reasoning?.length ?? 0) > 0) {
|
||||
const adaptiveActive = ordersDiffer(adaptiveOrder, DEFAULT_MINING_TIER_ORDER);
|
||||
if (adaptiveActive || (diag.strategy_reasoning?.length ?? 0) > 0) {
|
||||
return {
|
||||
order: adaptiveOrder,
|
||||
skipped: diag.adaptive_strategy.skip_tiers ?? diag.tier_chain_skipped ?? [],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Ordered LOTL spread contingency tiers — shared by Forge preset + spread wiki. */
|
||||
|
||||
/** Mining tier order can be personalized per host by the fleet adaptive engine (Crucible → Access Depth → Strategy). Spread lotl_onion_tiers in Calibrate still control deploy contingencies. */
|
||||
/** Operator note: spread tiers here are distinct from mining tiers. Adaptive strategy (server/internal/strategy) learns mining tier order from fleet stats and pushes strategy_reasoning on auth — it overrides mining order/skip hints only, not spread lotl_onion_tiers or patch_first gates. */
|
||||
export const ADAPTIVE_STRATEGY_HELP =
|
||||
'Mining tier order can be personalized per host fingerprint by the fleet adaptive engine (Crucible → Access Depth → Strategy). Spread lotl_onion_tiers in Calibrate still control deploy contingencies.';
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ describe('FIELD_HELP', () => {
|
||||
'calibrate_quick_setup',
|
||||
'forge_simple_mode',
|
||||
'forge_lotl_onion',
|
||||
'lotl_onion_tiers',
|
||||
'forge_recommended_defaults',
|
||||
'obfuscate',
|
||||
'sigil_scramble',
|
||||
@@ -94,6 +95,7 @@ describe('FIELD_HELP', () => {
|
||||
'websocket_ping_seconds',
|
||||
'log_pool_traffic',
|
||||
'adapt_to_hardware',
|
||||
'adaptive_strategy',
|
||||
'self_healing',
|
||||
'firewall_exclusion',
|
||||
'firewall_remote',
|
||||
|
||||
Reference in New Issue
Block a user