Skip to content

Harness content has no sync-from-source #23

Description

@aug2uag

What exists today

A harness's Skills are stored as literal file content: _skills_prepare (gateway) validates an uploaded {name, files:[{path, content}]} bundle and stores it verbatim (inline, or blob-offloaded past 48KB); _write_skills (runner) materializes exactly those bytes into the workspace each turn. There is no path anywhere in the gateway for a harness to instead point at an external source and have its content kept current automatically. Once uploaded, a skill is frozen until someone re-uploads it by hand.

The one place the gateway fetches content from a URL at all is _media_fetch (gateway/app.py:8585) — but that's per-turn, caller-supplied input (an image/video attached to a single message), not a standing, harness-owner-configured source the gateway would remember and re-pull on its own initiative. There's no precedent in this codebase for that second thing.

Why this is worth raising now

For a Skill — usually a handful of files, often edited directly in the console — re-uploading by hand is a reasonable default. It becomes a real limitation for anything larger and independently maintained: a real current" is a meaningful, ongoing need rather than a one-time paste. If harness-attached capabilities grow to include things shaped like that (a whole plugin directory, for instance, rather than a short Markdown skill), they'd inherit this same all-or-nothing-manual-upload limitation unless addressed at the Skills layer first, or explicitly designed around when that capability is added.

What this issue is asking for

A way for a harness's attached content to optionally carry a source reference instead of only literal content — e.g. a git URL + ref — with some sync point (on harness save, on a schedule, or an explicit "check for updates" action) that re-fetches and re-stores it. Not proposing a specific mechanism here; raising it to get direction on whether this is wanted at all before anyone builds it, since it's a materially different trust surface than upload — the gateway process would be making outbound fetches to an owner-supplied URL on its own, rather than only ever relaying content a request already contained.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions