How to Keep One URL While an Agent Updates a Report, and Keep the Old Versions

Display is our product. An artifact is one HTML or Markdown file that Display publishes at its own URL. We checked the vendor facts on each vendor's own pages on 16 October 2026.

TL;DR
Publish the first version once. Then update that artifact, and do not publish a new one. In Display (display.dev), the docs workspace for agents and people, you ask the agent to update the page at the same link. The agent sends the artifact's short ID and the version it last read. The URL does not change, so bookmarks and Slack links continue to work. Earlier versions stay in the version list, where you can open, download or roll back to them. Solo keeps 10 versions, Pro keeps 50 and Enterprise keeps all of them. Free keeps the latest version only. If someone else updated the artifact first, the version check stops the overwrite.

Display is our product. An artifact is one HTML or Markdown file that Display publishes at its own URL. We checked the vendor facts on each vendor's own pages on 16 October 2026.


Why a new URL for each run causes problems

Many setups give each run its own link. A new upload to a file host, a new deploy preview and a new chat attachment all do this. Four things stop working:

  • Bookmarks and links. A link in a ticket, a Slack message or a Notion page points to the old run.
  • Comments. Feedback stays on the old copy. The new copy starts with no comments.
  • Trust. Readers do not know which copy is the current one.
  • Access. Each new link needs its own sharing settings.

One URL solves all four. The link always shows the latest version. The sharing settings stay the same.


What you tell the agent

Publish the first version. Say: "Publish report.html to Display as 'Pipeline report' for my company." The agent returns the link. The short ID is in the link. In https://acme.dsp.so/YQyXggrM-pipeline-report, the short ID is YQyXggrM.

Publish the next version. Ask the agent to update the page at the same link with the new report.html. The agent reads the current version first, then publishes the next one. Visibility and invited people stay the same unless you ask the agent to change them.

Change one passage only. Say: "On the Pipeline report page, change 'Draft' to 'Approved'."

From MCP. The publish tool takes short_id, base_version and content, or an upload_id from create_upload for a large file. The edit tool takes short_id, base_version, old_text and new_text for one passage.

An update keeps the format of the artifact. A Markdown artifact takes .md updates. An HTML artifact takes .html updates. To change the format, publish a new artifact.


A GitHub Actions step

This job builds the report on a schedule and publishes it as the next version. Put the short ID in the repository variable DISPLAY_ARTIFACT_ID and the API key in the secret DISPLAYDEV_API_KEY.

name: Weekly pipeline report
 
on:
  schedule:
    - cron: "0 6 * * 1"
 
jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 22 }
      - run: npm ci
      - run: npm run build:report
      - run: |
          AUTH="Authorization: Bearer $DISPLAYDEV_API_KEY"
          API="https://api.display.dev/v1/artifacts/${{ vars.DISPLAY_ARTIFACT_ID }}"
          BASE_VERSION=$(curl -sf -H "$AUTH" "$API" | jq -r .currentVersion)
          curl -sf -X PUT "$API" -H "$AUTH" -H "If-Match: \"v$BASE_VERSION\"" -F file=@dist/report.html
        env:
          DISPLAYDEV_API_KEY: ${{ secrets.DISPLAYDEV_API_KEY }}

The If-Match header carries the version that the job read. Read the version immediately before the update. If another publish happens between the read and the update, the API refuses the update. Run the job again. Publish from CI/CD shows the same job with the CLI.


An agent prompt

Every Monday, make the pipeline report again. Publish it to the Display artifact
<shortId> as a new version, keep the access setting, and post the link in #sales.

Replace <shortId> with the short ID of your artifact. The agent needs Display connected and a way to post to Slack. For a full scheduled setup, read Claude Code routine for a weekly report.


Keep the build separate from the publish step

Use two steps. The first step builds the file. The second step publishes it. If the build fails, the publish step does not start, and the last good report stays at the URL. Do not let an agent write into the artifact while it still works on the report. Let it finish a file, check the file, and then publish it.


What happens on a conflict

The base version is the version that you edited. If the artifact has a newer version, the update stops and reports a version conflict. It does not overwrite.

  1. Ask the agent to read the newer version.
  2. Apply your change to that version.
  3. Ask the agent to publish again from the new version.

Roll back

On the artifact page in the dashboard, the Versions list lets you open or download an earlier retained version. Select Rollback next to a version to restore it. You can link to one version with the /_v/<n> path suffix, for example https://acme.dsp.so/abc123-quarterly-report/_v/2. An agent can also read an older version.


Version retention by plan

PlanPriceRetained versions
Free€0Latest only
Solo€15 a month10
Pro€49 a month50
EnterpriseFrom €499 a monthUnlimited

When a plan keeps 10 versions and the agent publishes version 11, Display deletes the oldest version. Prices exclude VAT. Read Plans and limits.


How it compares

ApproachSame URL after an updateEarlier versionsOverwrite checkComments tied to a version
New upload to a new linkNoOld links still exist, with no relation to the new oneNoNo
Git and a static hostYes, after a commit and a buildGit historyGit merge rulesNo
Cloudflare PagesYes. The production URL uses the project nameYou can roll back to an earlier production deploymentNoNo
NetlifyYesNetlify keeps deploys for 30 days, or 90 days on paid plans. You can publish an older deploy againNoNo
StacktreeYes. The URL stays the sameYes. The agent can list versions and restore one at the same URLNot stated in its docsYes. A new revision resolves the comments that it answers
DisplayYes10, 50 or unlimited, by planYes. A version checkYes. Each discussion records its starting version

Stacktree also keeps versions, and it has a passcode and link expiry. It fits a one-off client link. Display adds the version check, company sign-in and organization ownership.


When another tool is better

  • A public site that a build pipeline already deploys. Cloudflare Pages or Netlify fit better. You already have the build.
  • Full source history with diffs and review. Use Git. Display keeps versions of the published file, not a code history.
  • A passcode or an expiry date on the link. Stacktree has them. Display does not.

FAQ

Do comments stay after an update?+

Yes. Each discussion records the passage and the version where it started. If the passage is not in the current version, the reader selects Open that version to see the original context. Read How an agent reads review comments.

Does the URL change when I rename the artifact?+

The slug in the URL changes to match the new name. Old URLs continue to work through the short ID. The short ID does not change.

Do viewers see the new version at once?+

Viewers who have the artifact open get a Refresh to vN action. The agent can also refresh open tabs when the new version is ready. An open comment form delays that refresh. Use automatic refresh during your own work, and leave it off during a review so that readers choose when to refresh.

Does an update change who can open the artifact?+

No. Visibility and invited people stay the same unless you ask the agent to change them.

What is the size limit?+

Free allows 10 MB for each artifact. Solo, Pro and Enterprise allow 50 MB. Read Plans and limits.

Can I see who published each version?+

Yes. Display records who published each version. A CI publish can carry a label such as ci-deploy for the audit log. Read Publish from CI/CD.

Publish your first artifact in 15 seconds.

Free tier. No credit card. One-time password auth for viewers on free, Google + Microsoft SSO on Pro (€49/month flat).

Get started free →See pricing