Skip to content

fix(feeds): fix absolute CI paths leaking into skill manifest URLs#336

Merged
Aaronontheweb merged 1 commit into
devfrom
fix/skill-manifest-paths
Mar 20, 2026
Merged

fix(feeds): fix absolute CI paths leaking into skill manifest URLs#336
Aaronontheweb merged 1 commit into
devfrom
fix/skill-manifest-paths

Conversation

@Aaronontheweb

Copy link
Copy Markdown
Collaborator

Summary

The generate-skill-manifest.sh script used find with absolute paths that leaked CI runner paths (e.g., /home/runner/_work/netclaw/...) into manifest resource file URLs. This caused every skill sync to fail with 404s — all 6 system skills failed to update from the feed on every daemon startup.

Skills were only available from the built-in seed copy baked into the binary, never updated from the CDN feed.

Fix

  • Normalize paths with pwd before prefix stripping
  • Skip versioned subdirectories (e.g., 1.1.0/SKILL.md) from resource file list

Impact

This has been broken since skills with resource files were introduced. After this fix, netclaw doctor and daemon startup will successfully sync skills from the feed.

Test plan

  • bash feeds/scripts/generate-skill-manifest.sh — generates clean URLs
  • No /home/runner/ paths in manifest
  • Resource files correctly listed (references/local-search.md etc.)
  • Deploy and verify netclawd startup shows Synced skill instead of Download failed

The find command in generate-skill-manifest.sh returned absolute paths
(e.g., /home/runner/_work/...) which leaked into manifest resource file
URLs when the path prefix stripping failed. This caused every skill sync
to fail with 404s — skills were only available from the built-in seed
copy, never updated from the feed.

Fix: normalize paths with pwd before stripping. Also skip versioned
subdirectories (e.g., 1.1.0/SKILL.md) from being treated as resources.
@Aaronontheweb Aaronontheweb enabled auto-merge (squash) March 20, 2026 21:06
@Aaronontheweb Aaronontheweb merged commit f4350ae into dev Mar 20, 2026
3 checks passed
@Aaronontheweb Aaronontheweb deleted the fix/skill-manifest-paths branch March 20, 2026 21:14
Aaronontheweb added a commit that referenced this pull request Mar 20, 2026
Update version to 0.7.3 and add release notes for the manifest
path normalization fix (#336).
Aaronontheweb added a commit that referenced this pull request Mar 20, 2026
Update version to 0.7.3 and add release notes for the manifest
path normalization fix (#336).
Aaronontheweb added a commit that referenced this pull request Mar 20, 2026
…e skills across compaction (#339)

* Release 0.7.3 — skill feed sync fix

Update version to 0.7.3 and add release notes for the manifest
path normalization fix (#336).

* fix(skills): strip YAML frontmatter before injecting auto-loaded skill content (#324)

Skill files include metadata like version numbers in their YAML
frontmatter. When injected raw into the LLM context, the model can
mistake skill metadata (e.g., version: "0.8.2") for its own runtime
version. Strip frontmatter using SkillScanner.ExtractBody so the LLM
only sees the markdown body with behavioral guidance.

* fix(sessions): preserve auto-loaded skills across compaction (#315)

Previously, compaction cleared _autoLoadedSkills and _autoLoadedSkillContent,
causing the bot to lose all skill context. Skills would only re-load if the
next user message happened to score above the keyword threshold again —
generic follow-up messages like "ok" or "what were we talking about" would
not re-trigger them, causing apparent amnesia.

Skills loaded during a session remain relevant after compaction. Keep the
cache so they continue to be injected on subsequent turns. New skills can
still be added via keyword matching on future messages.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant