Skip to content

docs(groups): attachments, protocol defaults, context scopes, and a "not yet supported" section - #652

Merged
ginccc merged 3 commits into
mainfrom
docs/group-agent-accuracy
Aug 10, 2026
Merged

docs(groups): attachments, protocol defaults, context scopes, and a "not yet supported" section#652
ginccc merged 3 commits into
mainfrom
docs/group-agent-accuracy

Conversation

@ginccc

@ginccc ginccc commented Aug 9, 2026

Copy link
Copy Markdown
Member

Wave E of the Agent / Group Agent review (A #648, B #649, C #650, F #651). Each item is a place where the documentation and the code disagreed.

1. Attachments × groups were entirely undocumented

docs/group-conversations.md had zero mentions of attachments and docs/attachments-guide.md zero mentions of groups — while POST /groups/{groupId}/conversations accepts them and GroupAttachmentBinder is a whole subsystem.

Both files now carry a section covering the three input shapes, the first-turn grant, how later phases keep access (the member's own history plus the auto-enabled readAttachment tool), and the two group-specific bounds worth knowing:

  • the per-turn forwarding cap applies per member turn, and
  • anything dropped is reported in that member's attachments:errors — visible in that member's conversation, not in the group transcript.

2. The protocol table did not say the defaults apply to an absent block

Nothing backfills a stored config, so "no protocol block" is the common shape and runs on exactly the tabled values. That omission is what made the 60-vs-180 drift (fixed in #648) invisible: the table said 180, the fallback said 60, and nothing in the docs connected the two.

3. maxCreatedAgentsPerDiscussion read as ambiguous

Now explicitly "counted across all members, not per member" — the behaviour #649 delivers.

4. LAST_PHASE was documented wrong

The docs said "Only the previous phase's entries", but the filter is e.phaseIndex() >= currentPhaseIdx - 1, which includes the running phase.

The code is right here and the doc was wrong: in a sequential phase, including the current phase is exactly what lets the second speaker react to the first. Excluding it would leave every speaker after the first talking past their peers. So the doc and the enum's Javadoc were corrected, not the filter.

5. New "Not yet supported" section

So these are not discovered at runtime: member-level tool approval inside a group, nested pauses, groups over the OpenAI-compatible /v1 adapter, groups over A2A, and the per-node scope of the live-discussion registry.

Also

  • An FQN sweep of CreateSubAgentTool — 11 inline fully-qualified names, against the project's own AGENTS.md §4.7 ("FQNs in field declarations, method signatures, annotations, and generics hurt readability and are a common review comment").
  • The orphaned Javadoc block in LiveDiscussionRegistry: the paragraph documenting get() sat above getForMember(), so both attached to the latter and get() had none. It now documents get() and points at getForMember() for why existence is not membership.

Scoping note: the FQN violation is repo-wide (~130 sites). This PR sweeps only files that no other open PR touches — doing all of them here would collide with #648#651 for no benefit. The remainder is a follow-up once those land.

Testing

Docs-only plus comment/import changes: compile and validate (Checkstyle) clean, 93 tests green across the touched classes' suites.

…not yet supported" section

Wave E of the Agent / Group Agent review -- the documentation drifts the
review turned up, each one a place where docs and code disagreed.

1. Attachments x groups were entirely undocumented. group-conversations.md
   had zero mentions of attachments and attachments-guide.md zero mentions
   of groups, while POST /groups/{groupId}/conversations accepts them and
   GroupAttachmentBinder is a whole subsystem. Both files now cover the
   three input shapes, the first-turn grant, how later phases keep access
   (history plus the auto-enabled readAttachment tool), and the two
   group-specific bounds: the per-turn cap applies per MEMBER turn, and
   anything dropped is reported in that member's attachments:errors, not
   in the group transcript.

2. The protocol table did not say the defaults apply to an absent block.
   Nothing backfills a stored config, so "no protocol block" is the common
   shape -- which is what made the 60-vs-180 drift fixed in #648
   invisible.

3. maxCreatedAgentsPerDiscussion now reads "counted across all members,
   not per member" -- the behaviour #649 delivers.

4. LAST_PHASE was documented as "only the previous phase's entries", but
   the filter is phaseIndex >= currentPhaseIdx - 1, which includes the
   running phase. The code is right -- in a sequential phase that is what
   lets the second speaker react to the first -- so the doc and the enum
   Javadoc were corrected, not the filter.

5. New "Not yet supported" section: member-level tool approval inside a
   group, nested pauses, groups over the OpenAI-compatible /v1 adapter,
   groups over A2A, and the per-node scope of the live-discussion
   registry.

Also: an FQN sweep of CreateSubAgentTool (11 inline fully-qualified names,
against AGENTS.md 4.7) and the orphaned Javadoc in LiveDiscussionRegistry,
where the paragraph documenting get() sat above getForMember() so both
attached to the latter and get() had none.

Scoping: the FQN violation is repo-wide (~130 sites). This sweeps only
files no other open PR touches; the rest is a follow-up once #648-#651
land.
@ginccc
ginccc requested a review from rolandpickl as a code owner August 9, 2026 11:06
@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@ginccc, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 2 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ec7bf783-0cdf-4bf1-a176-437f22612ced

📥 Commits

Reviewing files that changed from the base of the PR and between f2d88eb and 6190614.

📒 Files selected for processing (6)
  • docs/attachments-guide.md
  • docs/changelog.md
  • docs/group-conversations.md
  • src/main/java/ai/labs/eddi/configs/groups/model/AgentGroupConfiguration.java
  • src/main/java/ai/labs/eddi/engine/internal/groups/LiveDiscussionRegistry.java
  • src/main/java/ai/labs/eddi/modules/llm/tools/CreateSubAgentTool.java

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.

@ginccc
ginccc merged commit f65ce06 into main Aug 10, 2026
23 checks passed
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.

2 participants