Skip to content

release: SiteAgent 2.22.0 — the install ledger (P6.3 phase 2) - #140

Merged
BenKalsky merged 4 commits into
mainfrom
release/2-22-0
Sep 26, 2026
Merged

BenKalsky merged 4 commits into
mainfrom
release/2-22-0

Conversation

@BenKalsky

Copy link
Copy Markdown
Member

Version bump to 2.22.0, readme.txt changelog (with a privacy line about the ledger's personal data and 90-day/200-entry retention) and README changelog for #139. Readme limits pass (593 words headroom).

After merge: prerelease v2.22.0 → staging 6631144 field check (spec §7) → promote.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@BenKalsky

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-26T12:51:58.727066Z ba46c7d Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 827ac3b372

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread digitizer-site-worker/readme.txt Outdated

= 2.22.0 =
* New: an install ledger. Every plugin and theme install or update is recorded with how it arrived (wp-admin, REST, WP-CLI, cron, a WordPress auto-update, or SiteAgent itself), which user and application password, and where the package came from, so Aura can flag packages an AI agent installed. It only observes; it never blocks an install. Nothing to configure.
* Privacy: each record keeps the user ID, the application password's name (never the password) and the REST route. Records are kept at most 90 days or 200 installs, are not autoloaded, and are deleted when the plugin is uninstalled.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the 90-day retention guarantee

When SiteAgent is deactivated for more than 90 days, its wp_scheduled_delete callback is not registered, and neither report() nor append() can run, so the options containing the user ID, password name, and REST route remain stored indefinitely until reactivation or uninstall. This makes the public claim that records are kept “at most 90 days” false for deactivated installations; either remove the data on deactivation or describe that expiry is enforced on the next run while the plugin is active.

Useful? React with 👍 / 👎.

…is active; say so

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@BenKalsky

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a42ea333b3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread digitizer-site-worker/readme.txt Outdated

= 2.22.0 =
* New: an install ledger. Every plugin and theme install or update is recorded with how it arrived (wp-admin, REST, WP-CLI, cron, a WordPress auto-update, or SiteAgent itself), which user and application password, and where the package came from, so Aura can flag packages an AI agent installed. It only observes; it never blocks an install. Nothing to configure.
* Privacy: each record keeps the user ID, the application password's name (never the password) and the REST route. While the plugin is active, records older than 90 days (or beyond the latest 200 installs) are deleted; a deactivated plugin keeps them until it is reactivated or uninstalled. Records are not autoloaded and are deleted when the plugin is uninstalled.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify cleanup after reactivation

The revised wording still implies that reactivation ends retention of the rows, but aura_worker_activate() only calls restart_coverage(), whose existing-ring path explicitly leaves the ring untouched. Thus a site can reactivate and retain records older than 90 days until a later ledger read, append, or wp_scheduled_delete run. This is fresh evidence against the revised claim; describe cleanup as occurring on the next such pass after reactivation, or purge during activation.

Useful? React with 👍 / 👎.

…activation, not at reactivation

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@BenKalsky

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 11843d4b22

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md

### 2.22.0

- **An install ledger** (Digitizers/Aura spec 2026-09-21 §4, P6.3 phase 2). New `Aura_Worker_Install_Ledger` observes the upgrader for plugin and theme runs only — a per-run token in `hook_extra`, `upgrader_pre_download` at `PHP_INT_MAX`, the entry at `upgrader_install_package_result` — and records and never decides. Each entry: when, type, action, slug, version (the main file), transport (`siteagent` for SiteAgent's own upgrader object, `wp_cli`, `auto_update` only inside core's `wp_maybe_auto_update` — never the upgrader skin, `cron`, `rest`, `wp_admin`), user id, auth, the application password's name (never its uuid), REST route, and the package source (`wporg`, `uploaded_zip`, `remote_host` + host, `local_path`, `unknown`). (#139)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Capture ledger context before WordPress downloads

The advertised source and siteagent transport classification cannot work with these hooks: WP_Upgrader::run() invokes download_package() (and therefore upgrader_pre_download) before install_package() applies upgrader_package_options. Consequently, the token added by on_package_options() is never present when on_pre_download() checks it, no frame is created, and on_install_result() always falls back to context(false) plus source: unknown (class-aura-worker-install-ledger.php:527-529,574-580,641-665). This makes SiteAgent-driven installs indistinguishable from their ambient request transport and discards the package source for every normal upgrade, undermining the grading this release claims to enable; correlate the pre-download observation without relying on a token added later in the upgrader flow.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not the order in core. WordPress 7.1.2 wp-admin/includes/class-wp-upgrader.php, WP_Upgrader::run(): line 818 $options = apply_filters( 'upgrader_package_options', $options ); → line 849 $download = $this->download_package( $options['package'], false, $options['hook_extra'] ); (which applies upgrader_pre_download at line 322 with that same $hook_extra) → line 898 install_package → line 917 apply_filters( 'upgrader_install_package_result', $result, $options['hook_extra'] ). The token added at 818 is therefore present at pre-download and at the result, which is what the ledger relies on (spec §4.1, read from core). The staging field check before promotion exercises this on a real install.

@BenKalsky

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 11843d4b22

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


= 2.22.0 =
* New: an install ledger. Every plugin and theme install or update is recorded with how it arrived (wp-admin, REST, WP-CLI, cron, a WordPress auto-update, or SiteAgent itself), which user and application password, and where the package came from, so Aura can flag packages an AI agent installed. It only observes; it never blocks an install. Nothing to configure.
* Privacy: each record keeps the user ID, the application password's name (never the password) and the REST route. While the plugin is active, records older than 90 days (or beyond the latest 200 installs) are deleted; a deactivated plugin cannot delete anything, so they stay until its first cleanup after reactivation (the daily clean-up, an audit or the next install) or until it is uninstalled. Records are not autoloaded and are deleted when the plugin is uninstalled.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the generated privacy-policy disclosure

The release now explicitly stores user_id, Application Password names, and REST routes and exposes them through audit_agent_code, but Aura_Worker::add_privacy_policy_content() still tells site owners that “No personal user data is collected or transmitted by this plugin.” Sites that use WordPress's suggested policy text will therefore publish a false disclosure after upgrading to 2.22.0; update that generated privacy-policy content to describe the ledger data, its transmission to Aura, and its retention.

Useful? React with 👍 / 👎.

…es the install ledger

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@BenKalsky

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: ba46c7d72c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@BenKalsky

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Swish!

Reviewed commit: ba46c7d72c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@BenKalsky
BenKalsky merged commit fcff748 into main Sep 26, 2026
6 checks passed
@BenKalsky
BenKalsky deleted the release/2-22-0 branch September 26, 2026 13:13
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