Skip to content

deploy: a change to agent/instructions.md never reaches the live agent #16

Description

@EthanThatOneKid

Expected. agent/instructions.md is the canonical prompt, and system/persona.md in the agent's memory is seeded from it. A merge that edits the prompt should leave the live agent answering from the edited text.

Actual. Two independent gaps, so a prompt change reaches the live agent only if a person remembers to run sync-persona by hand:

  1. .github/workflows/deploy.yml filters on channels/http/**, channels/discord/**, lib/**, scripts/**, package.json, package-lock.json, and the workflow itself. agent/** is absent, so a prompt-only change triggers no deploy at all.
  2. scripts/zo-deploy.ts fast-forwards the live checkout and restarts each service, but never runs sync-persona. Even a deploy that does run leaves system/persona.md on the previous text.

Cost. After #7 merged on 2026-09-26 the live persona was still the pre-cutover text. npm run sync-persona -- --dry-run reported system/persona.md differs from agent/instructions.md (5174 bytes rendered), and the agent only caught up when npm run sync-persona was run by hand (memory checkout commit 0a2928a). Nothing in CI or the deploy surfaces the drift.

Recommended fix. Add agent/instructions.md to the deploy path filter and run npm run sync-persona on the host in the same job, before the services restart. The deploy client already runs host commands (zo.callTool("bash", { cmd }), scripts/zo-deploy.ts:188), so this needs no new capability. A host-side automation that runs sync-persona when it drifts would close the same gap without touching CI.

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