Skip to content

Promote update reminders to stable - #610

Merged
tt-a1i merged 8 commits into
mainfrom
dev
Sep 28, 2026
Merged

tt-a1i merged 8 commits into
mainfrom
dev

Conversation

@tt-a1i

@tt-a1i tt-a1i commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

Problem and value

Promote the update-reminder behavior integrated by #599 at dev@922c1cad to stable main. An older Skill could previously discover a new Release and then silently suppress the reminder before the user's final reply. Finalize and standalone deliver now include one bounded, repeated notice until the user updates or explicitly chooses snooze/ignore.

Stability impact

The PR changes the Skill, delivery receipts and update checker; it does not change the 3.0.0 release identity or public stable manifest. The fixed manifest origin and validation, canonical diagram bytes, quality exits and path defenses remain intact. The full design and behavior contract are in #599. One Codex client ran two ordinary diagram tasks against an isolated earlier package and mock valid update cache; the user's local 3.0.0 trial of the final package is in progress. A second client remains unverified.

Tests run

Generated artifacts

archify.zip changes in this PR: it was rebuilt in #599 from the final source with official Node 22, and exact-head ZIP freshness plus three-platform package smoke passed. Gallery and Viewer sources are unchanged by the reminder behavior.

tt-a1i and others added 8 commits September 28, 2026 20:57
Agents may now snooze or ignore a reminder when the user explicitly asks,
and the notice tells users that option exists. The child derives its fetch
timeout from the remaining deadline so a slow network records a failed check
and backs off instead of being killed on each delivery; finalize gives the
check the time its gates already take. Tests keep update state out of the
user cache.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The delivery reminder is now the only update-check behavior. Remove the
acknowledgement mode, its offered/acknowledged digest history, legacy cache
migration, and the separate 72-hour schedule. Cached candidates always carry
their check time, failed checks keep repeating the last validated release,
and snooze/ignore stay the only suppressions. Concurrency tests that used
acknowledgement as the second writer now use snooze, so cache-safety
coverage is kept. README check intervals now say 24 hours.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Keep update notices in diagram delivery receipts
@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: tt-a1i/archify/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 1869c6df-c280-4ed4-85c6-a03c041661c7

📥 Commits

Reviewing files that changed from the base of the PR and between 1017b47 and 922c1ca.

⛔ Files ignored due to path filters (1)
  • archify.zip is excluded by !**/*.zip
📒 Files selected for processing (19)
  • README.md
  • README_EN.md
  • README_JA.md
  • README_ZH.md
  • archify/SKILL.md
  • archify/bin/archify.mjs
  • archify/bin/delivery-update.mjs
  • archify/bin/finalize.mjs
  • archify/references/update-awareness.md
  • archify/scripts/check-update.mjs
  • archify/scripts/delivery-update-child.mjs
  • archify/test/delivery-update.test.mjs
  • archify/test/output-path.test.mjs
  • archify/test/release-package-gates.test.mjs
  • archify/test/skill-metadata.test.mjs
  • archify/test/update-notifier.test.mjs
  • docs/skill-embedded-optional-update-notifier-design.md
  • scripts/package-smoke.mjs
  • scripts/run-tests.mjs

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Summary

Update checks now run during finalize and standalone deliver, and delivery receipts include the result. When an update notice is required, the response repeats it until the user explicitly snoozes or ignores that release. The checker uses a 24-hour success interval and replaces acknowledgement history with per-release preferences. --ack remains a no-op. No release identity change is reported. Compatibility impact: cache schema changes from version 1 to 2; legacy acknowledgement behavior is removed. Reviewed head: 922c1cad; reviewed base: unavailable from the supplied evidence. CI results at this head are unavailable. The author reports two tasks passed on an isolated earlier package; the final-package trial and second client remain unverified.

Walkthrough

The update checker now checks successful manifests about every 24 hours and stores snooze or ignore preferences by release. Standalone delivery and finalize run bounded update checks and include results in success and failure receipts. Text output includes a notice when required. Documentation and tests reflect the updated checker behavior and delivery flow.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~45 minutes

Merge Risk: ⚪ Minimal · up to 922c1

No identified issue blocks this update-reminder change from merging after normal checks.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 922c1

The new reminders use a bounded check against a fixed update source, and no security bypass was established. The remaining uncertainty is how the exported checker could be used by integrations outside the shown delivery paths.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The newly automatic outbound check reaches the fixed update origin from delivery and finalize and can affect their receipts and user-facing notices. The shown production callers do not provide an alternate checker path.

Trust Boundaries and Controls

  • observed — The parent caps child output at 16 KiB, applies a deadline, and converts invalid output to an unavailable result. The checker requires the fixed manifest URL, rejects redirects and non-JSON responses, and bounds response size.

Resilience and Maintainability Implications

  • observed — Interrupted or competing preference operations use owner fencing and committed-state rereads; a lost check does not apply its uncommitted candidate as the authoritative cache state.

Hardening Proposals

  • proposed — If the exported checker launcher is made available to untrusted integrations, keep its checkerPath override and environment selection outside user-controlled inputs; production reachability to those options was not established here.
🚥 Pre-merge checks | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Contribution Scope ⚠️ Warning The implementation stays focused on update reminders, but the PR does not provide all required scope facts for this broad contract change. The diff changes cache state from schema 1 to schema 2 and re… Update the PR description with an explicit linked issue or recorded maintainer scope decision. Document the schema-v1 cache handling, receipt compatibility, --ack behavior, bounded-check failure/backoff behavior, and that no automatic ins…
Validation Evidence ⚠️ Warning Concrete validation gaps remain. The changed source has strong automated coverage: the new tests cover repeated reminders, deadlines, slow networks, cache-claim recovery, deliver/finalize receipts, fa… Before promotion, have maintainers run representative real diagram tasks against the exact head 922c1ca (or its exact package), then record the revision, client/host, task outcomes, stability result, and unresolved issues. Correct the gene…
Full details: Contribution Scope

Explanation

The implementation stays focused on update reminders, but the PR does not provide all required scope facts for this broad contract change. The diff changes cache state from schema 1 to schema 2 and removes legacy cache migration, adds new 1-second/4-second deadlines, and changes receipt and --snooze/--ignore/--ack behavior. The description only points to PR #599 and does not record a maintainer scope decision or explain these migration and compatibility effects. It also reports that final-package trial use is in progress and a second client is unverified, while CONTRIBUTING.md requires maintainer use on real tasks for promotion. The description does not state the update-check failure/backoff behavior or explicitly state why rollback is not applicable.

Resolution

Update the PR description with an explicit linked issue or recorded maintainer scope decision. Document the schema-v1 cache handling, receipt compatibility, --ack behavior, bounded-check failure/backoff behavior, and that no automatic installation occurs, so rollback is not applicable. Complete maintainer trial use of the exact reviewed head and record the tested revision, usage evidence, and unresolved issues before promotion.

Full details: Validation Evidence

Explanation

Concrete validation gaps remain. The changed source has strong automated coverage: the new tests cover repeated reminders, deadlines, slow networks, cache-claim recovery, deliver/finalize receipts, failure paths, disabled checks, and artifact identity. The author-reported CI run for c888c86 passed the Node matrix, browser/WebM, package smoke, Windows, ZIP freshness, manifest, and website gates. The reviewed head 922c1ca has the same tree as c888c86, so that result is reusable for the code and generated archive. However, CONTRIBUTING.md requires maintainers to use a promoted revision on real diagram tasks and record the tested revision, usage evidence, and unresolved issues. The PR reports only an earlier isolated package with a mock cache, says the final-package trial is in progress, and says a second client is unverified. The PR also says it adds no generated changes, while the authoritative diff changes archify.zip; the body should describe that generated artifact accurately.

Resolution

Before promotion, have maintainers run representative real diagram tasks against the exact head 922c1ca (or its exact package), then record the revision, client/host, task outcomes, stability result, and unresolved issues. Correct the generated-artifacts section to list archify.zip as changed in the reviewed range, explain that it was rebuilt in #599, and link the author-reported exact-tree CI result. No duplicate CI rerun is needed solely because the tree matches c888c86; required final-head checks remain governed by branch protection.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@tt-a1i
tt-a1i merged commit 445bb35 into main Sep 28, 2026
31 checks passed
@github-actions

Copy link
Copy Markdown

Thanks @tt-a1i for contributing to Archify! Your work is now part of the project.

Archify contribution card for tt-a1i

Download your card

View contribution

github-actions Bot added a commit that referenced this pull request Sep 28, 2026
@tt-a1i tt-a1i mentioned this pull request Sep 28, 2026
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