Update codebase artifacts (run 019f9484)#1452
Conversation
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
|
🚀 Preview Deployment Ready! Preview URL: https://head.unoplat-code-confluence-docs.pages.dev Deployed via Cloudflare Pages |
📝 WalkthroughWalkthroughArchitecture documentation now reflects frontend, flow bridge, query engine, GitHub, Temporal, PostgreSQL, and model-provider interactions. Generated documentation is refreshed with interface inventories, domain references, workflow commands, commit metadata, and dependency listings. ChangesArchitecture and generated documentation
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
unoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.md (1)
112-112: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDocument the locked development install command.
Bare
uv syncdoes not communicate lockfile enforcement or installation of the development dependency group. Align this entry with the repository guidance (uv sync --locked --group dev) or document the exacttask synctarget that performs it.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@unoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.md` at line 112, Update the development install command entry in AGENTS.md to explicitly enforce the lockfile and install the dev dependency group by documenting `uv sync --locked --group dev`, or replace it with the exact `task sync` target that performs those options.Source: Learnings
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@architecture.md`:
- Line 30: Align the GitHub interface direction across both artifacts: in
architecture.md at line 30, retain the bidirectional flow_bridge–GitHub edge
only if the flow-bridge inventory explicitly documents outbound GitHub
communication; otherwise change it to the verified one-way webhook direction. In
unoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.md
at lines 126-128, update the “no bidirectional constructs” result to match the
verified direction, or leave it unchanged only when the inventory confirms
outbound communication.
In `@unoplat-code-confluence-frontend/app_interfaces.md`:
- Around line 52-58: Reclassify the useLiveQuery and useLiveInfiniteQuery
entries in repository-agent-snapshots/hooks.ts as read-only realtime
subscriptions rather than bidirectional constructs. Keep the snapshots,
progress, and events query references unchanged, since no write or sync path
exists in this scope.
In `@unoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.md`:
- Line 110: Remove the duplicate “Engineering Workflow” heading in AGENTS.md by
either renaming the generated heading or consolidating it into the existing
workflow section, ensuring each heading text remains unique to satisfy
markdownlint MD024.
In
`@unoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.md`:
- Around line 35-46: Update the “scheduler_trigger (temporalio)” section in
app_interfaces.md to distinguish Temporal activity/workflow definitions from
scheduler triggers. Move the listed `@activity.defn` and `@workflow.defn` entries
into a workflow-definition or internal section, and reserve the
scheduler-trigger category for the actual temporal_client.start_workflow
invocation.
---
Nitpick comments:
In `@unoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.md`:
- Line 112: Update the development install command entry in AGENTS.md to
explicitly enforce the lockfile and install the dev dependency group by
documenting `uv sync --locked --group dev`, or replace it with the exact `task
sync` target that performs those options.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 16bf8951-f30e-4a51-b961-df9c07587ceb
📒 Files selected for processing (22)
architecture.mdunoplat-code-confluence-cli/AGENTS.mdunoplat-code-confluence-cli/app_interfaces.mdunoplat-code-confluence-commons/AGENTS.mdunoplat-code-confluence-commons/app_interfaces.mdunoplat-code-confluence-commons/business_domain_references.mdunoplat-code-confluence-docs/AGENTS.mdunoplat-code-confluence-docs/app_interfaces.mdunoplat-code-confluence-docs/business_domain_references.mdunoplat-code-confluence-frontend/AGENTS.mdunoplat-code-confluence-frontend/app_interfaces.mdunoplat-code-confluence-frontend/business_domain_references.mdunoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.mdunoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.mdunoplat-code-confluence-ingestion/code-confluence-flow-bridge/business_domain_references.mdunoplat-code-confluence-openmetadata/AGENTS.mdunoplat-code-confluence-openmetadata/app_interfaces.mdunoplat-code-confluence-openmetadata/business_domain_references.mdunoplat-code-confluence-query-engine/AGENTS.mdunoplat-code-confluence-query-engine/app_interfaces.mdunoplat-code-confluence-query-engine/business_domain_references.mdunoplat-code-confluence-query-engine/dependencies_overview.md
💤 Files with no reviewable changes (1)
- unoplat-code-confluence-query-engine/dependencies_overview.md
| query_engine:R --> L:temporal | ||
| query_engine:R --> L:postgresql | ||
| temporal:R --> L:postgresql | ||
| flow_bridge:R <--> L:github |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Align the generated GitHub interface direction across both artifacts.
architecture.md#L30-L30: keep the bidirectional edge only if the flow-bridge inventory explicitly documents outbound GitHub communication.unoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.md#L126-L128: otherwise replace the “no bidirectional constructs” result or change the architecture edge to the verified one-way webhook direction.
📍 Affects 2 files
architecture.md#L30-L30(this comment)unoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.md#L126-L128
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@architecture.md` at line 30, Align the GitHub interface direction across both
artifacts: in architecture.md at line 30, retain the bidirectional
flow_bridge–GitHub edge only if the flow-bridge inventory explicitly documents
outbound GitHub communication; otherwise change it to the verified one-way
webhook direction. In
unoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.md
at lines 126-128, update the “no bidirectional constructs” result to match the
verified direction, or leave it unchanged only when the inventory confirms
outbound communication.
| ## Bidirectional Constructs | ||
|
|
||
| ### realtime_sync (@tanstack/react-db) | ||
|
|
||
| - `src/features/repository-agent-snapshots/hooks.ts`: L133: useLiveInfiniteQuery( (q) => q .from({ events: collection }) .orderBy(({ events }) => events.event_id, "desc"), { pageSize, }, [scope.owner, scope.repository, scope.runId, normalizedCodebaseName, pageSize], ) | ||
| - `src/features/repository-agent-snapshots/hooks.ts`: L64: useLiveQuery( (q) => { if (!collection) { return undefined; } return q.from({ snapshots: collection }); }, [collection], ) | ||
| - `src/features/repository-agent-snapshots/hooks.ts`: L96: useLiveQuery( (q) => { if (!collection) { return undefined; } return q .from({ progress: collection }) .orderBy(({ progress }) => progress.codebase_name, "asc"); }, [collection], ) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== locate app_interfaces.md =="
fd -a 'app_interfaces\.md$' . || true
echo "== relevant file excerpt =="
if [ -f unoplat-code-confluence-frontend/app_interfaces.md ]; then
nl -ba unoplat-code-confluence-frontend/app_interfaces.md | sed -n '45,70p'
fi
echo "== locate hooks.ts =="
if [ -f unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/hooks.ts ]; then
wc -l unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/hooks.ts
nl -ba unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/hooks.ts | sed -n '1,180p'
fi
echo "== search for realtime_sync/bidir terms and write methods =="
rg -n "realtime_sync|Bidirectional|bidirectional|write|upsert|insert|update|merge|LiveInfiniteQuery|LiveQuery|from\\(\\{|collection" unoplat-code-confluence-frontend/src/features/repository-agent-snapshots unoplat-code-confluence-frontend/app_interfaces.md || true
echo "== broader search for write-like operations in the repo =="
rg -n "\.(insert\\(|update\\(|upsert\\(|merge\\(|set\\(|delete\\(|tx\\(|create\\(|patch\\(|push\\()" unoplat-code-confluence-frontend/src/features/repository-agent-snapshots || trueRepository: unoplat/unoplat-code-confluence
Length of output: 785
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== relevant file excerpt =="
python3 - <<'PY'
from pathlib import Path
p = Path("unoplat-code-confluence-frontend/app_interfaces.md")
if p.exists():
lines = p.read_text(encoding="utf-8", errors="replace").splitlines()
for i in range(45, min(len(lines), 70)):
print(f"{i+1:4}: {lines[i]}")
PY
echo "== hooks excerpt =="
python3 - <<'PY'
from pathlib import Path
p = Path("unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/hooks.ts")
if p.exists():
lines = p.read_text(encoding="utf-8", errors="replace").splitlines()
print(len(lines))
for i in range(1, min(len(lines), 190)):
print(f"{i+1:4}: {lines[i]}")
PY
echo "== search matching terms =="
rg -n "realtime_sync|Bidirectional|bidirectional|write|upsert|insert|update|merge|LiveInfiniteQuery|LiveQuery|from\\(\\{|collection" unoplat-code-confluence-frontend/src/features/repository-agent-snapshots unoplat-code-confluence-frontend/app_interfaces.md || true
echo "== write-like method calls =="
rg -n "\.(insert\\(|update\\(|upsert\\(|merge\\(|set\\(|delete\\(|tx\\(|create\\(|patch\\(|push\\()" unoplat-code-confluence-frontend/src/features/repository-agent-snapshots || true
echo "== package tanstack version snippets =="
for f in package.json pnpm-lock.yaml yarn.lock package-lock.json bun.lockb; do
[ -f unoplat-code-confluence-frontend/$f ] && echo "-- $f --" && sed -n '/@tanstack\/react-db\|`@tanstack/react-db`\|tanstack-react-db\|react-query\|`@tanstack/` p' unoplat-code-confluence-frontend/$f | head -80 || true
doneRepository: unoplat/unoplat-code-confluence
Length of output: 14662
Classify these live queries using read-only subscriptions, not bidirectional constructs.
useLiveQuery and useLiveInfiniteQuery here only read from snapshots, progress, and events; there is no corresponding write/sync path in this scope. Move them under realtime subscriptions or add the documented write path if they are intended to be bidirectional.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@unoplat-code-confluence-frontend/app_interfaces.md` around lines 52 - 58,
Reclassify the useLiveQuery and useLiveInfiniteQuery entries in
repository-agent-snapshots/hooks.ts as read-only realtime subscriptions rather
than bidirectional constructs. Keep the snapshots, progress, and events query
references unchanged, since no write or sync path exists in this scope.
|
|
||
| </CRITICAL_INSTRUCTION> | ||
|
|
||
| ## Engineering Workflow |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Remove the duplicate Engineering Workflow heading.
The generated block introduces another heading with the same content, triggering the reported markdownlint MD024 warning. Rename the generated heading or consolidate it with the existing workflow section.
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 110-110: Multiple headings with the same content
(MD024, no-duplicate-heading)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@unoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.md` at
line 110, Remove the duplicate “Engineering Workflow” heading in AGENTS.md by
either renaming the generated heading or consolidating it into the existing
workflow section, ensuring each heading text remains unique to satisfy
markdownlint MD024.
Source: Linters/SAST tools
| ### scheduler_trigger (temporalio) | ||
|
|
||
| - `src/code_confluence_flow_bridge/processor/agent_md_update_activity.py`: L25: @activity.defn(name="trigger-agent-md-update") | ||
| - `src/code_confluence_flow_bridge/processor/codebase_child_workflow.py`: L35: @workflow.defn(name="child-codebase-workflow") | ||
| - `src/code_confluence_flow_bridge/processor/db/postgres/child_workflow_db_activity.py`: L29: @activity.defn(name="update-codebase-workflow-status") | ||
| - `src/code_confluence_flow_bridge/processor/db/postgres/parent_workflow_db_activity.py`: L29: @activity.defn(name="update-repository-workflow-status") | ||
| - `src/code_confluence_flow_bridge/processor/generic_codebase_processing_activity.py`: L38: @activity.defn | ||
| - `src/code_confluence_flow_bridge/processor/git_activity/confluence_git_activity.py`: L26: @activity.defn | ||
| - `src/code_confluence_flow_bridge/processor/git_activity/confluence_git_graph.py`: L36: @activity.defn | ||
| - `src/code_confluence_flow_bridge/processor/package_metadata_activity/package_manager_metadata_activity.py`: L24: @activity.defn | ||
| - `src/code_confluence_flow_bridge/processor/package_metadata_activity/package_manager_metadata_ingestion.py`: L29: @activity.defn | ||
| - `src/code_confluence_flow_bridge/processor/repo_workflow.py`: L45: @workflow.defn(name="repo-activity-workflow") |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Classify Temporal definitions separately from scheduler triggers.
@activity.defn and @workflow.defn declare worker handlers and workflow types; they do not themselves trigger scheduled work. The actual trigger shown in this inventory is temporal_client.start_workflow at Line 124. Rename this category or move the decorators to a workflow-definition/internal section.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@unoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.md`
around lines 35 - 46, Update the “scheduler_trigger (temporalio)” section in
app_interfaces.md to distinguish Temporal activity/workflow definitions from
scheduler triggers. Move the listed `@activity.defn` and `@workflow.defn` entries
into a workflow-definition or internal section, and reserve the
scheduler-trigger category for the actual temporal_client.start_workflow
invocation.
Summary
019f9484-0383-7874-ba94-741564b8947dChanged Files
unoplat-code-confluence-cli/AGENTS.mdunoplat-code-confluence-cli/app_interfaces.mdunoplat-code-confluence-docs/AGENTS.mdunoplat-code-confluence-docs/business_domain_references.mdunoplat-code-confluence-docs/app_interfaces.mdunoplat-code-confluence-commons/AGENTS.mdunoplat-code-confluence-commons/business_domain_references.mdunoplat-code-confluence-commons/app_interfaces.mdunoplat-code-confluence-frontend/AGENTS.mdunoplat-code-confluence-frontend/business_domain_references.mdunoplat-code-confluence-frontend/app_interfaces.mdunoplat-code-confluence-openmetadata/AGENTS.mdunoplat-code-confluence-openmetadata/business_domain_references.mdunoplat-code-confluence-openmetadata/app_interfaces.mdunoplat-code-confluence-query-engine/AGENTS.mdunoplat-code-confluence-query-engine/dependencies_overview.mdunoplat-code-confluence-query-engine/business_domain_references.mdunoplat-code-confluence-query-engine/app_interfaces.mdunoplat-code-confluence-ingestion/code-confluence-flow-bridge/AGENTS.mdunoplat-code-confluence-ingestion/code-confluence-flow-bridge/business_domain_references.mdunoplat-code-confluence-ingestion/code-confluence-flow-bridge/app_interfaces.mdarchitecture.mdSummary by CodeRabbit