Skip to content

docs(wonder): refresh slash dedup-behaviour paragraph for shipped #644 v2 key - #715

Merged
github-actions[bot] merged 1 commit into
mainfrom
chore/issue-645-wonder-md-dedup-stale
May 12, 2026
Merged

docs(wonder): refresh slash dedup-behaviour paragraph for shipped #644 v2 key#715
github-actions[bot] merged 1 commit into
mainfrom
chore/issue-645-wonder-md-dedup-stale

Conversation

@robotrocketscience

@robotrocketscience robotrocketscience commented May 12, 2026

Copy link
Copy Markdown
Owner

Summary

Tiny doc-only fix surfaced while closing out umbrella #645 (wonder/reason agentmemory parity).

src/aelfrice/slash_commands/wonder.md ended its dispatch-flow process block with a "Known dedup behaviour" paragraph describing the pre-#644 contract:

wonder_ingest keys idempotency on the sorted constituent belief IDs alone. Since every axis row shares the same speculative_anchor_ids, only the first row's document persists as a phantom; subsequent rows count as skipped. … extending the dedup key to include generator … is tracked as a follow-up to #552.

#644 shipped on github/main (sub-task of #552 / umbrella #645): lifecycle._wonder_ingest_idempotency_key now hashes sorted constituent IDs and the generator string with prefix wonder_ingest:v2:. CHANGELOG ## [Unreleased] entry "Dedup contract — option 2 (#644)" documents the new shape; the slash doc was the only place still describing the old contract.

Replaced the paragraph with an accurate "Dedup behaviour" note that matches the shipped key. Operators reading /aelf:wonder after the --axes dispatch will no longer expect N-1 rows to silently skipped away.

Test plan

  • pytest tests/test_wonder_skill_integration_e2e.py tests/test_lifecycle.py -q → 47 passed, 2 skipped (no behavior change; doc only)
  • Discretion grep on diff vs github/main → clean
  • aelf-pr-open.sh rebase + pytest + discretion gate

Closes part of #645 acceptance ("slash_commands/wonder.md mirrors the agentmemory 7-step process adapted for the merged CLI"); umbrella close-out tracked separately.

Summary by Sourcery

Documentation:

  • Refresh the deduplication behaviour note in wonder slash command docs to describe the v2 idempotency key including the generator string.

Summary by CodeRabbit

  • Documentation
    • Clarified dispatch idempotency: dedup now considers both the sorted constituent belief IDs and the generator string, so N-axis dispatches can create distinct phantom beliefs per axis-derived generator, while re-running the identical dispatch is a no-op.

Review Change Stack

@robotrocketscience robotrocketscience added the author-noether Authored by parallel session noether label May 12, 2026
@sourcery-ai

sourcery-ai Bot commented May 12, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Updates the wonder slash command documentation to accurately describe the new v2 deduplication/idempotency contract shipped in #644, reflecting that the idempotency key now includes both belief IDs and generator string.

Flow diagram for updated wonder_ingest v2 dedup behaviour

flowchart TD
  A[Wonder dispatch with speculative_anchor_ids and axes] --> B[Compute generator per axis]
  B --> C[Call wonder_ingest]
  C --> D["lifecycle._wonder_ingest_idempotency_key(belief_ids, generator)"]
  D --> E{Idempotency key exists?}
  E -- No --> F[Persist phantom doc for this generator]
  E -- Yes --> G[Skip insert for this generator]
  F --> H[One phantom per axis on first dispatch]
  G --> I[Re-running same dispatch is a no-op]
Loading

File-Level Changes

Change Details Files
Refresh the deduplication behaviour documentation for the wonder slash command to match the shipped v2 idempotency key.
  • Replace the outdated paragraph that described idempotency keyed only on sorted constituent belief IDs.
  • Document that the idempotency key now hashes both sorted constituent belief IDs and the generator string with prefix wonder_ingest:v2:.
  • Clarify that multi-axis dispatch now persists one phantom per axis-derived generator instead of collapsing to one, while reruns remain no-ops.
src/aelfrice/slash_commands/wonder.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented May 12, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e3505abf-1933-4a1d-a9c3-03a0e28b0288

📥 Commits

Reviewing files that changed from the base of the PR and between ed26707 and e8ba796.

📒 Files selected for processing (1)
  • src/aelfrice/slash_commands/wonder.md
✅ Files skipped from review due to trivial changes (1)
  • src/aelfrice/slash_commands/wonder.md

📝 Walkthrough

Walkthrough

Updated documentation for the --axes "<query>" dispatch process in the wonder slash command. The wonder_ingest deduplication contract now explicitly keys on both sorted belief IDs and the generator string, allowing N-axis dispatches to persist N distinct phantom beliefs while maintaining idempotency for repeated identical operations.

Changes

wonder_ingest idempotency documentation

Layer / File(s) Summary
wonder_ingest deduplication contract update
src/aelfrice/slash_commands/wonder.md
Updated wonder_ingest idempotency contract documentation: the deduplication key now includes the generator string with wonder_ingest:v2: prefix. This enables N-axis dispatches to persist N distinct phantom beliefs (one per axis-derived generator) instead of only the first, while repeated identical dispatches remain idempotent.

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: updating documentation for the dedup behavior paragraph in wonder slash commands to reflect the shipped #644 v2 key implementation.
Description check ✅ Passed The description is comprehensive and covers all required template sections: Summary explaining the change, Linked issues (#645), Type of change (docs), Verification steps completed, and Test plan with specific test results.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/issue-645-wonder-md-dedup-stale

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 and usage tips.

@github-actions github-actions Bot added the docs label May 12, 2026

@sourcery-ai sourcery-ai 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.

Hey - I've reviewed your changes and they look great!


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@robotrocketscience robotrocketscience added the attn:review Needs review (PR open, awaiting reviewer) label May 12, 2026
@yoshi280
yoshi280 force-pushed the chore/issue-645-wonder-md-dedup-stale branch from 5ea85b6 to ed26707 Compare May 12, 2026 05:07
@robotrocketscience robotrocketscience added the ready-to-merge Trigger merge-train: FF main to this PR's head label May 12, 2026
@github-actions

Copy link
Copy Markdown

merge-train: blocked

branch is not fast-forward on main (branch base eb699e1d079292bb004b6ef150096e655e25b277, current main 47a9390d16788b656a014aff8adb2dcb619fb227). Rebase locally (git rebase github/main), force-push, and re-add the label.

The ready-to-merge label has been removed. Address the issue above and re-add the label when you're ready for another attempt.

@github-actions github-actions Bot removed the ready-to-merge Trigger merge-train: FF main to this PR's head label May 12, 2026
…v2 key

The 'Known dedup behaviour' note in src/aelfrice/slash_commands/wonder.md
described the pre-#644 contract (constituent-IDs-only key, N-1 axis rows
collapsed to skipped) and pointed at #644 as a future follow-up. #644 has
shipped on github/main: lifecycle._wonder_ingest_idempotency_key now hashes
sorted constituent IDs PLUS the generator string with prefix
'wonder_ingest:v2:', and an N-axis dispatch persists as N distinct phantoms.

Update the slash doc to reflect the shipped contract.
@yoshi280
yoshi280 force-pushed the chore/issue-645-wonder-md-dedup-stale branch from ed26707 to e8ba796 Compare May 12, 2026 05:10
@robotrocketscience robotrocketscience added the ready-to-merge Trigger merge-train: FF main to this PR's head label May 12, 2026
@github-actions
github-actions Bot merged commit e8ba796 into main May 12, 2026
26 of 27 checks passed
@github-actions github-actions Bot removed the ready-to-merge Trigger merge-train: FF main to this PR's head label May 12, 2026
@github-actions

Copy link
Copy Markdown

merge-train: merged e8ba796main via FF push.

@robotrocketscience
robotrocketscience deleted the chore/issue-645-wonder-md-dedup-stale branch May 14, 2026 04:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

attn:review Needs review (PR open, awaiting reviewer) author-noether Authored by parallel session noether docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant