@evomap/evolver 1.69.20 → 1.69.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,9 @@
1
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-23T16:59:44.501Z","signals":["bounty_task","external_task","results","professional-level","achieve","how","strategy-list","ratio","aspect","letterboxing","cinematic","editing","video","video-editing","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","results","professional-level","achieve","how","strategy-list","ratio","aspect","letterboxing","cinematic","editing","video","video-editing","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, results, professional-level, achieve, how, strategy-list, ratio, aspect, letterboxing, cinematic, editing, video, video-editing, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
2
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-23T16:59:46.705Z","signals":["bounty_task","external_task","results","professional-level","achieve","how","strategy-list","ratio","aspect","letterboxing","cinematic","editing","video","video-editing","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","results","professional-level","achieve","how","strategy-list","ratio","aspect","letterboxing","cinematic","editing","video","video-editing","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, results, professional-level, achieve, how, strategy-list, ratio, aspect, letterboxing, cinematic, editing, video, video-editing, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
3
- {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-23T16:59:48.705Z","signals":["bounty_task","external_task","results","professional-level","achieve","how","strategy-list","ratio","aspect","letterboxing","cinematic","editing","video","video-editing","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","results","professional-level","achieve","how","strategy-list","ratio","aspect","letterboxing","cinematic","editing","video","video-editing","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, results, professional-level, achieve, how, strategy-list, ratio, aspect, letterboxing, cinematic, editing, video, video-editing, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
1
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:53:54.271Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
2
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:53:56.218Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
3
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:53:58.128Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
4
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:05.469Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
5
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:07.587Z","signals":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing"],"tags":["bounty_task","external_task","设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?","data-deduplication","idempotency","batch-processing","ETL","memory_missing","user_missing","session_logs_missing","area:orchestration","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: bounty_task, external_task, 设计etl批处理任务时,如何有效地处理源数据中存在的重复记录以确保目标表的幂等性?, data-deduplication, idempotency, batch-processing, ETL, memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
6
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:09.368Z","signals":["memory_missing","user_missing","session_logs_missing"],"tags":["memory_missing","user_missing","session_logs_missing","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
7
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:28.498Z","signals":["memory_missing","user_missing","session_logs_missing"],"tags":["memory_missing","user_missing","session_logs_missing","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
8
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:30.437Z","signals":["memory_missing","user_missing","session_logs_missing"],"tags":["memory_missing","user_missing","session_logs_missing","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
9
+ {"type":"CapabilityCandidate","id":"cand_b9a66a5c","title":"Harden session log detection and fallback behavior","source":"signals","created_at":"2026-04-24T03:54:32.245Z","signals":["memory_missing","user_missing","session_logs_missing"],"tags":["memory_missing","user_missing","session_logs_missing","area:memory"],"shape":{"title":"Harden session log detection and fallback behavior","input":"Recent session transcript + memory snippets + user instructions","output":"A safe, auditable evolution patch guided by GEP assets","invariants":"Protocol order, small reversible patches, validation, append-only events","params":"Signals: memory_missing, user_missing, session_logs_missing","failure_points":"Missing signals, over-broad changes, skipped validation, missing knowledge solidification","evidence":"Signal present: session_logs_missing"}}
@@ -78,7 +78,8 @@
78
78
  "perf_bottleneck",
79
79
  "capability_gap",
80
80
  "stable_success_plateau",
81
- "external_opportunity"
81
+ "external_opportunity",
82
+ "bounty_task"
82
83
  ],
83
84
  "preconditions": [
84
85
  "at least one opportunity signal is present",
@@ -105,6 +106,43 @@
105
106
  "node scripts/validate-suite.js"
106
107
  ]
107
108
  },
109
+ {
110
+ "type": "Gene",
111
+ "id": "gene_gep_optimize_tool_usage",
112
+ "summary": "Optimize tool execution patterns by reducing redundant exec calls, improving tool selection strategy, and enforcing tool-use constraints to prevent bypass.",
113
+ "category": "optimize",
114
+ "signals_match": [
115
+ "high_tool_usage:exec",
116
+ "repeated_tool_usage:exec",
117
+ "tool_bypass",
118
+ "tool_loop",
119
+ "high_tool_usage"
120
+ ],
121
+ "preconditions": [
122
+ "agent repeatedly invokes the same tool (especially exec) without progress",
123
+ "tool execution bypass patterns detected",
124
+ "no active error signals (errors would take repair priority)"
125
+ ],
126
+ "strategy": [
127
+ "Analyze tool usage patterns to identify the root cause of repetition (wrong tool, missing context, or lack of guardrails)",
128
+ "Introduce strategy-level guardrails: prefer single-shot commands, batch related operations, add explicit retry limits",
129
+ "If tool_bypass detected, strengthen constraint enforcement in prompt assembly or tool routing",
130
+ "Estimate blast radius; changes should target tool routing, prompt constraints, or signal deduplication logic",
131
+ "Validate by confirming no regressions in existing tool tests and signal extraction accuracy",
132
+ "Solidify: record EvolutionEvent with intent=optimize, update Capsule on success"
133
+ ],
134
+ "constraints": {
135
+ "max_files": 15,
136
+ "forbidden_paths": [
137
+ ".git",
138
+ "node_modules"
139
+ ]
140
+ },
141
+ "validation": [
142
+ "node scripts/validate-modules.js ./src/gep/signals ./src/evolve",
143
+ "node scripts/validate-suite.js"
144
+ ]
145
+ },
108
146
  {
109
147
  "type": "Gene",
110
148
  "id": "gene_distilled_s2g-env-vars",
package/index.js CHANGED
@@ -716,7 +716,13 @@ async function main() {
716
716
  console.log('\n[Review] Rejected. Rolling back changes...');
717
717
  try {
718
718
  execSync('git checkout -- .', { cwd: repoRoot, encoding: 'utf8', timeout: 30000, maxBuffer: MAX_EXEC_BUFFER });
719
- execSync('git clean -fd', { cwd: repoRoot, encoding: 'utf8', timeout: 30000, maxBuffer: MAX_EXEC_BUFFER });
719
+ // Preserve user state on reject: .env files, node_modules, runtime
720
+ // PID files, and a dedicated workspace/ dir (if one exists) MUST NOT
721
+ // be wiped by an automated rollback. Users have reported losing
722
+ // secrets and runtime caches to an aggressive git clean.
723
+ execSync('git clean -fd -e node_modules -e workspace -e .env -e ".env.*" -e "*.pid"', {
724
+ cwd: repoRoot, encoding: 'utf8', timeout: 30000, maxBuffer: MAX_EXEC_BUFFER,
725
+ });
720
726
  const evolDir = getEvolutionDir();
721
727
  const sp = path.join(evolDir, 'evolution_solidify_state.json');
722
728
  if (fs.existsSync(sp)) {
@@ -866,10 +872,30 @@ async function main() {
866
872
  fs.writeFileSync(path.join(outDir, 'SKILL.md'), data.content, 'utf8');
867
873
  }
868
874
 
875
+ const ALLOWED_SKILL_EXTENSIONS = new Set([
876
+ '.js', '.mjs', '.cjs', '.ts',
877
+ '.json', '.md', '.txt',
878
+ '.sh', '.py',
879
+ '.yml', '.yaml',
880
+ ]);
881
+ const MAX_SKILL_FILE_BYTES = 512 * 1024;
882
+
869
883
  const bundled = Array.isArray(data.bundled_files) ? data.bundled_files : [];
884
+ const skippedFiles = [];
870
885
  for (const file of bundled) {
871
886
  if (!file || !file.name || typeof file.content !== 'string') continue;
872
887
  const safeName = path.basename(file.name);
888
+ const ext = path.extname(safeName).toLowerCase();
889
+ if (!ALLOWED_SKILL_EXTENSIONS.has(ext)) {
890
+ console.warn('[fetch] Skipped skill file with disallowed extension: ' + safeName);
891
+ skippedFiles.push(safeName);
892
+ continue;
893
+ }
894
+ if (Buffer.byteLength(file.content, 'utf8') > MAX_SKILL_FILE_BYTES) {
895
+ console.warn('[fetch] Skipped skill file exceeding ' + MAX_SKILL_FILE_BYTES + ' bytes: ' + safeName);
896
+ skippedFiles.push(safeName);
897
+ continue;
898
+ }
873
899
  fs.writeFileSync(path.join(outDir, safeName), file.content, 'utf8');
874
900
  }
875
901
 
@@ -878,9 +904,9 @@ async function main() {
878
904
  console.log(' Version: ' + (data.version || '?'));
879
905
  console.log(' Files: SKILL.md' + (bundled.length > 0 ? ', ' + bundled.map(f => f.name).join(', ') : ''));
880
906
  if (data.already_purchased) {
881
- console.log(' Cost: free (already purchased)');
907
+ console.log(' Fetch cost: free (already purchased)');
882
908
  } else {
883
- console.log(' Cost: ' + (data.credit_cost || 0) + ' credits');
909
+ console.log(' Fetch cost: ' + (data.credit_cost || 0) + ' credits');
884
910
  }
885
911
  } catch (error) {
886
912
  if (error && error.name === 'TimeoutError') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evomap/evolver",
3
- "version": "1.69.20",
3
+ "version": "1.69.21",
4
4
  "description": "A GEP-powered self-evolution engine for AI agents. Features automated log analysis and Genome Evolution Protocol (GEP) for auditable, reusable evolution assets.",
5
5
  "main": "index.js",
6
6
  "bin": {