Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions architecture.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Current architecture

The deployed web frontend calls the flow bridge and query engine APIs. The flow bridge receives GitHub App webhooks, calls the query engine after refresh, and both backend services use Temporal and PostgreSQL.
The web frontend and CLI call the flow bridge and query engine APIs. The flow bridge receives GitHub App webhooks, calls GitHub and the query engine, and runs ingestion workflows through Temporal. The query engine runs Temporal agent workflows, persists application data, and calls GitHub and an AI model provider. Both backend services use PostgreSQL; Temporal is configured to use PostgreSQL.

```mermaid
architecture-beta
Expand All @@ -9,24 +9,26 @@ architecture-beta
group platform[Platform and infrastructure]
group external[External services]

service browser(internet)[Browser] in consumers
service frontend(server)[Web frontend] in consumers
service cli(server)[CLI] in consumers
service flow_bridge(server)[Flow bridge API] in backend
service query_engine(server)[Query engine API] in backend
service temporal(server)[Temporal workflow service] in platform
service postgresql(database)[PostgreSQL] in platform
service github(internet)[GitHub] in external
service model_provider(cloud)[AI model provider] in external

browser:R --> L:frontend
frontend:R --> L:flow_bridge
frontend:R --> L:query_engine
github:R --> L:flow_bridge
cli:R --> L:flow_bridge
cli:R --> L:query_engine
github:R <--> L:flow_bridge
flow_bridge:R --> L:query_engine
flow_bridge:R --> L:temporal
flow_bridge:R --> L:postgresql
query_engine:R --> L:temporal
query_engine:R --> L:postgresql
query_engine:R --> L:github
query_engine:R --> L:model_provider
temporal:R --> L:postgresql

align column flow_bridge query_engine
```
```
2 changes: 1 addition & 1 deletion unoplat-code-confluence-cli/AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- UNOPLAT_CODE_CONFLUENCE_CONTEXT:BEGIN -->
<CRITICAL_INSTRUCTION>

> Generated from branch `dev` at commit `5ecdba39d57f50c5188a8e32b9dd4f52d01611fe` (2026-07-18). Content may become stale as new commits land.
> Generated from branch `dev` at commit `ab23412576ec6612cd5b7099ed42d497b8f4db7e` (2026-07-18). Content may become stale as new commits land.

</CRITICAL_INSTRUCTION>

Expand Down
22 changes: 20 additions & 2 deletions unoplat-code-confluence-cli/app_interfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,29 @@ Format: `path: L<line>: <match_text>` where path is codebase-relative.

## Inbound Constructs

No inbound constructs detected.
### cli_command (click)

- `src/unoplat_code_confluence_cli/cli_app/repo_commands.py`: L15: @repo_group.command(name="add")
- `src/unoplat_code_confluence_cli/cli_app/repo_commands.py`: L27: @click.command(name="add-repository")
- `src/unoplat_code_confluence_cli/cli_app/repo_commands.py`: L42: @click.command(name="agent-md")
- `src/unoplat_code_confluence_cli/cli_app/service_commands.py`: L20: @service_group.command(name="run")
- `src/unoplat_code_confluence_cli/cli_app/service_commands.py`: L28: @service_group.command(name="status")
- `src/unoplat_code_confluence_cli/cli_app/service_commands.py`: L47: @service_group.command(name="update")
- `src/unoplat_code_confluence_cli/cli_app/service_commands.py`: L55: @service_group.command(name="stop")
- `src/unoplat_code_confluence_cli/cli_app/service_commands.py`: L63: @service_group.command(name="destroy")
- `src/unoplat_code_confluence_cli/cli_app/setup_commands.py`: L16: @setup_group.command(name="token-repo-provider")
- `src/unoplat_code_confluence_cli/cli_app/setup_commands.py`: L28: @setup_group.command(name="model-provider")

## Outbound Constructs

No outbound constructs detected.
### http_client (httpx2)

- `src/unoplat_code_confluence_cli/adapters/httpx2_client.py`: L37: httpx2.get( f"{candidate_base_url}{path}", params=params, headers=headers, follow_redirects=follow_redirects, timeout=timeout, )
- `src/unoplat_code_confluence_cli/adapters/httpx2_client.py`: L73: httpx2.post( f"{candidate_base_url}{path}", json=json, timeout=timeout, )

## Bidirectional Constructs

No bidirectional constructs detected.

## Internal Constructs

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Business Domain References

## Domain Summary
Unoplat Code Confluence CLI manages a local Docker Compose deployment for repository-aware AI code assistance, including Flow Bridge, a query engine, and a frontend. It registers and refreshes Git repositories, verifies repository and model-provider credentials, tracks GitHub release manifests and installed state, and initiates AGENTS.md-generation workflows that raise pull requests.
Unoplat Code Confluence CLI manages a local Docker Compose deployment for repository-aware AI code assistance, coordinating Flow Bridge, a query engine, and a frontend. It registers and refreshes Git repositories, verifies repository and model-provider credentials, tracks GitHub release manifests and installed state, and starts AGENTS.md generation workflows that raise pull requests.

## Data Model References
### `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-cli/src/unoplat_code_confluence_cli/backend/flow_bridge_client.py`
Expand Down
2 changes: 1 addition & 1 deletion unoplat-code-confluence-commons/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ This project uses Backlog.md MCP for all task and project management. Before cre
<!-- UNOPLAT_CODE_CONFLUENCE_CONTEXT:BEGIN -->
<CRITICAL_INSTRUCTION>

> Generated from branch `dev` at commit `5ecdba39d57f50c5188a8e32b9dd4f52d01611fe` (2026-07-18). Content may become stale as new commits land.
> Generated from branch `dev` at commit `ab23412576ec6612cd5b7099ed42d497b8f4db7e` (2026-07-18). Content may become stale as new commits land.

</CRITICAL_INSTRUCTION>

Expand Down
4 changes: 4 additions & 0 deletions unoplat-code-confluence-commons/app_interfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ No inbound constructs detected.

No outbound constructs detected.

## Bidirectional Constructs

No bidirectional constructs detected.

## Internal Constructs

No internal constructs detected.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Business Domain References

## Domain Summary
This package supports Code Confluence, a repository-ingestion and code-intelligence platform for analyzing source repositories and their codebases. It models repositories, files, language and package metadata, framework feature catalogs, detected source-code spans, and confidence/evidence for feature usage. It also manages workflow execution, progress and event histories, agent output snapshots and AGENTS.md publication metadata, with credentials and feature flags supporting operations.
This package supports Code Confluence, a repository-ingestion and code-intelligence platform for analyzing Git repositories and their codebases. Its models persist source-file inventories, programming-language and package metadata, framework feature definitions, and detected code spans with confidence and validation evidence. It also orchestrates and audits repository/codebase workflows, agent progress and events, credentials, and AGENTS.md publication snapshots.

## Data Model References
### `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-commons/src/unoplat_code_confluence_commons/base_models/data_model_position.py`
Expand Down
4 changes: 2 additions & 2 deletions unoplat-code-confluence-docs/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Reference details: see `business_logic_references.md`.
<!-- UNOPLAT_CODE_CONFLUENCE_CONTEXT:BEGIN -->
<CRITICAL_INSTRUCTION>

> Generated from branch `dev` at commit `5ecdba39d57f50c5188a8e32b9dd4f52d01611fe` (2026-07-18). Content may become stale as new commits land.
> Generated from branch `dev` at commit `ab23412576ec6612cd5b7099ed42d497b8f4db7e` (2026-07-18). Content may become stale as new commits land.

</CRITICAL_INSTRUCTION>

Expand All @@ -49,7 +49,7 @@ Reference details: see `business_logic_references.md`.
- `vp test` (working directory: repo root; config: `vite.config.ts`; requires the Vite+ `vp` CLI)

### Lint
- `vp check` (working directory: repo root; config: `vite.config.ts`; runs Vite+ validation including linting; requires the Vite+ `vp` CLI)
- `vp check` (working directory: repo root; config: `vite.config.ts`; runs Vite+ formatting, linting, type checking, and tests; requires the Vite+ `vp` CLI)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '--- AGENTS.md (relevant lines) ---\n'
nl -ba unoplat-code-confluence-docs/AGENTS.md | sed -n '40,60p'

printf '\n--- search for vp check / vp test references ---\n'
rg -n "vp check|vp test|vite.config.ts|tests" unoplat-code-confluence-docs -g '!*node_modules*' -g '!*dist*' -g '!*build*'

printf '\n--- vite config files ---\n'
fd -a "vite.config.*" unoplat-code-confluence-docs

Repository: unoplat/unoplat-code-confluence

Length of output: 260


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- AGENTS.md lines 44-55 ---'
nl -ba unoplat-code-confluence-docs/AGENTS.md | sed -n '44,55p'

echo
echo '--- exact matches for vp check / vp test ---'
rg -n --hidden --glob '!.git' --glob '!**/node_modules/**' --glob '!**/dist/**' --glob '!**/build/**' '\bvp (check|test)\b' unoplat-code-confluence-docs

echo
echo '--- possible config files ---'
fd -a 'vite.config.*|package.json|taskfile.yml|Taskfile.yml' unoplat-code-confluence-docs

Repository: unoplat/unoplat-code-confluence

Length of output: 239


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- AGENTS.md lines 44-56 ---'
awk 'NR>=44 && NR<=56 { printf "%d:%s\n", NR, $0 }' unoplat-code-confluence-docs/AGENTS.md

echo
echo '--- exact vp check / vp test references ---'
grep -RIn --exclude-dir=.git --exclude-dir=node_modules --exclude-dir=dist --exclude-dir=build -E '\bvp (check|test)\b' unoplat-code-confluence-docs || true

echo
echo '--- candidate config files ---'
find unoplat-code-confluence-docs -maxdepth 2 \( -name 'vite.config.*' -o -name 'package.json' -o -name 'Taskfile.yml' -o -name 'taskfile.yml' \) -print

Repository: unoplat/unoplat-code-confluence

Length of output: 1437


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- package.json ---'
awk 'NR>=1 && NR<=260 { printf "%d:%s\n", NR, $0 }' unoplat-code-confluence-docs/package.json

echo
echo '--- vite.config.ts ---'
awk 'NR>=1 && NR<=260 { printf "%d:%s\n", NR, $0 }' unoplat-code-confluence-docs/vite.config.ts

Repository: unoplat/unoplat-code-confluence

Length of output: 7668


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- package.json ---'
awk 'NR>=1 && NR<=220 { printf "%d:%s\n", NR, $0 }' unoplat-code-confluence-docs/package.json

echo
echo '--- vite.config.ts ---'
awk 'NR>=1 && NR<=220 { printf "%d:%s\n", NR, $0 }' unoplat-code-confluence-docs/vite.config.ts

Repository: unoplat/unoplat-code-confluence

Length of output: 7668


Remove “and tests” from the vp check description. vite.config.ts only defines formatting, linting, and type checking, and vp test is documented separately.

🤖 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-docs/AGENTS.md` at line 52, Update the `vp check`
entry in `AGENTS.md` to remove the “and tests” wording, leaving only formatting,
linting, and type checking; keep the separately documented `vp test` entry
unchanged.


### Type Check
- `bun run types:check` (working directory: repo root; config: `package.json`)
Expand Down
4 changes: 4 additions & 0 deletions unoplat-code-confluence-docs/app_interfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ No inbound constructs detected.

No outbound constructs detected.

## Bidirectional Constructs

No bidirectional constructs detected.

## Internal Constructs

No internal constructs detected.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Business Domain References

## Domain Summary
This repository powers the documentation site for Unoplat Code Confluence, a code-context engine that helps AI agents understand Python and TypeScript codebases and generate AGENTS.md guidance. Its models support documentation delivery: framework and library catalog entries, searchable/filterable tables, release changelogs, site announcements, and page SEO metadata. The dominant domain is developer-product documentation and release communication for AI-assisted code understanding.
This repository supports the documentation site for Unoplat Code Confluence, a developer tooling product for AI-assisted code understanding and AGENTS.md generation. Its models cover documentation-site operations: release changelogs, announcement banners, SEO metadata, framework catalog entries, routing, and reusable table filtering. The dominant domain is product documentation and release communication for a code-context engine serving Python and TypeScript projects.

## Data Model References
### `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-docs/src/components/data-table-filter/core/filters.ts`
Expand Down
2 changes: 1 addition & 1 deletion unoplat-code-confluence-frontend/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Before substantial work:
<!-- UNOPLAT_CODE_CONFLUENCE_CONTEXT:BEGIN -->
<CRITICAL_INSTRUCTION>

> Generated from branch `dev` at commit `5ecdba39d57f50c5188a8e32b9dd4f52d01611fe` (2026-07-18). Content may become stale as new commits land.
> Generated from branch `dev` at commit `ab23412576ec6612cd5b7099ed42d497b8f4db7e` (2026-07-18). Content may become stale as new commits land.

</CRITICAL_INSTRUCTION>

Expand Down
49 changes: 48 additions & 1 deletion unoplat-code-confluence-frontend/app_interfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,54 @@ No inbound constructs detected.

## Outbound Constructs

No outbound constructs detected.
### http_client (axios)

- `src/features/agent-feedback/api.ts`: L75: apiClient.post( "/code-confluence/feedback", payload, )
- `src/features/app-feedback/api.ts`: L42: queryEngineClient.post("/v1/app-feedback", payload)
- `src/lib/api.ts`: L142: apiClient.post( "/ingest-token", null, { params: queryParams, headers: { Authorization: `Bearer ${token}`, "Content-Type": undefined, // Prevent sending default Content-Type }, }, )
- `src/lib/api.ts`: L219: apiClient.get("/repos", { params })
- `src/lib/api.ts`: L236: apiClient.post( "/repositories", repository, )
- `src/lib/api.ts`: L267: apiClient.put( "/update-token", null, { params: queryParams, headers: { Authorization: `Bearer ${token}`, "Content-Type": undefined, // Prevent sending default Content-Type }, }, )
- `src/lib/api.ts`: L319: apiClient.delete( "/delete-token", { params: queryParams }, )
- `src/lib/api.ts`: L333: apiClient.get( `/flags/${flagName}`, )
- `src/lib/api.ts`: L362: apiClient.post( "/repository-data", config, )
- `src/lib/api.ts`: L400: apiClient.get("/repository-data", { params: { repository_name: repositoryName, repository_owner_name: ownerName, }, })
- `src/lib/api.ts`: L437: apiClient.get( "/user-details", { params: { provider_key: providerKey }, }, )
- `src/lib/api.ts`: L456: apiClient.get("/parent-workflow-jobs")
- `src/lib/api.ts`: L489: apiClient.get( "/repository-status", { params }, )
- `src/lib/api.ts`: L537: apiClient.post( "/code-confluence/issues", requestData, )
- `src/lib/api.ts`: L557: apiClient.get( "/codebase-metadata", { params }, )
- `src/lib/api.ts`: L576: apiClient.get("/get/ingestedRepositories")
- `src/lib/api.ts`: L597: apiClient.post("/refresh-repository", repository)
- `src/lib/api.ts`: L614: apiClient.delete( "/delete-repository", { data: repository }, )
- `src/lib/api.ts`: L667: queryEngineClient.get("/v1/codebase-agent-rules", { params, })
- `src/lib/api.ts`: L690: queryEngineClient.post("/v1/repository-agent-run/cancel", null, { params, })
- `src/lib/api.ts`: L705: queryEngineClient.post("/v1/repository-agent-md-pr", payload)
- `src/lib/api.ts`: L724: queryEngineClient.get("/v1/repository-agent-md-pr", { params })
- `src/lib/api.ts`: L765: queryEngineClient.get("/v1/repository-agent-snapshot", { params, })
- `src/lib/api.ts`: L862: queryEngineClient.get("/v1/providers")
- `src/lib/api.ts`: L889: queryEngineClient.get("/v1/model-config")
- `src/lib/api.ts`: L925: queryEngineClient.put( "/v1/model-config", bodyConfig, { headers }, )
- `src/lib/api.ts`: L945: queryEngineClient.delete("/v1/model-config")
- `src/lib/api.ts`: L957: queryEngineClient.post( "/v1/model-config/codex-openai/oauth/authorize", payload, )
- `src/lib/api.ts`: L972: queryEngineClient.get( `/v1/model-config/codex-openai/oauth/flows/${flowId}`, )
- `src/lib/api.ts`: L985: queryEngineClient.get( "/v1/model-config/codex-openai/oauth/status", )
- `src/lib/api.ts`: L998: queryEngineClient.delete("/v1/model-config/codex-openai/oauth")
- `src/lib/api/repositories-api.ts`: L29: apiClient.get<PaginatedResponse<GitHubRepoSummary>>( "/repos", { params: { provider_key: providerKey, per_page: perPage, cursor: cursor ?? undefined, filterValues, }, }, )
- `src/lib/api/repository-provider-api.ts`: L17: apiClient.get<RepositoryProvidersResponse>( "/repository-providers", )
- `src/lib/api/repository-provider-api.ts`: L67: apiClient.post<IngestTokenResponse>( "/ingest-token", null, { params: queryParams, headers: { Authorization: `Bearer ${patToken}`, }, }, )
- `src/lib/api/tool-config-api.ts`: L19: queryEngineClient.get("/v1/tool-config")
- `src/lib/api/tool-config-api.ts`: L32: queryEngineClient.get(`/v1/tool-config/${provider}`)
- `src/lib/api/tool-config-api.ts`: L55: queryEngineClient.put( `/v1/tool-config/${provider}`, null, { headers: { Authorization: `Bearer ${sanitizedApiKey}` }, }, )
- `src/lib/api/tool-config-api.ts`: L73: queryEngineClient.delete( `/v1/tool-config/${provider}`, )

## 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], )
Comment on lines +52 to +58

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "## Files around the reviewed section"
git ls-files 'unoplat-code-confluence-frontend/app_interfaces.md' 'unoplat-code-confluence-frontend/**' | sed -n '1,120p'

echo
echo "## Relevant excerpt"
sed -n '1,120p' unoplat-code-confluence-frontend/app_interfaces.md

echo
echo "## Search for `@tanstack/react-db` usage and docs"
rg -n "`@tanstack/react-db`|useLiveQuery|useLiveInfiniteQuery|bidirectional|realtime_sync" unoplat-code-confluence-frontend -S

echo
echo "## Package manifests mentioning tanstack/react-db"
rg -n "\"`@tanstack/react-db`\"|`@tanstack/react-db`" unoplat-code-confluence-frontend -S --glob 'package.json' --glob 'pnpm-lock.yaml' --glob 'package-lock.json' --glob 'yarn.lock' --glob '*.md'

Repository: unoplat/unoplat-code-confluence

Length of output: 18245


🌐 Web query:

@tanstack/react-db useLiveQuery useLiveInfiniteQuery bidirectional synchronization semantics

💡 Result:

In @tanstack/react-db, useLiveQuery and useLiveInfiniteQuery are hooks designed to provide reactive, live-updating views of data collections [1][2][3]. While they facilitate synchronization between local UI state and backend sources, they do not inherently implement bidirectional synchronization in the sense of a standalone, automated conflict-resolution engine [4][5]. Instead, these hooks support query-driven synchronization, particularly when configured with sync modes like 'on-demand' [4][3]. Here are the key semantics regarding their operation: 1. Data Flow and Reactivity: Both hooks subscribe to a data collection [6]. When the underlying collection data changes—whether due to local updates, mutations, or background synchronization—the hooks automatically trigger re-renders to reflect the new data [2][7][5]. 2. Query-Driven Sync: When using 'on-demand' sync mode, TanStack DB translates query predicates (such as.where,.orderBy, and.limit) into expression trees [4]. These are passed to the collection's queryFn via meta.loadSubsetOptions, allowing you to map them to specific API calls (e.g., REST or GraphQL) to fetch only the required subset of data from the server [4][8]. 3. Mutations: Bidirectional behavior is primarily handled through collection mutations [5]. When you perform an update on a collection (e.g., collection.update), the change is applied optimistically to the local state, triggering a re-render via useLiveQuery/useLiveInfiniteQuery [5]. Simultaneously, the change is synced to the server; if the server request fails, the library automatically rolls back the local state to maintain consistency [5]. 4. useLiveInfiniteQuery Semantics: This hook extends the live query pattern to paginated data [3]. It uses a windowing mechanism (utils.setWindow) to adjust pagination dynamically [9][3]. It is designed to work with ordered queries and automatically detects when new pages are available as data is synced, ensuring the local view remains consistent with both the local collection and the server's data pagination [3][8]. In summary, the hooks manage the subscription and UI-reactivity side of synchronization, while the collection and mutation logic handle the actual transport and conflict handling (via optimistic updates and rollbacks) [5]. They enable a highly responsive, "live" experience where UI components remain in sync with the underlying data model as it evolves [2][3].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "## Repository-agent snapshot hook and collection excerpts"
sed -n '1,220p' unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/hooks.ts

echo
sed -n '1,220p' unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/collection.ts

echo
echo "## TanStack DB-related docs in repo"
sed -n '1,120p' unoplat-code-confluence-frontend/dependencies_overview.md
echo
sed -n '1,120p' unoplat-code-confluence-frontend/dependency_guide.md

Repository: unoplat/unoplat-code-confluence

Length of output: 32964


Move these hooks out of Bidirectional Constructs.
useLiveQuery and useLiveInfiniteQuery are live read/subscription hooks; the write/sync path lives in the collection setup, not here. Reserve this section for actual two-way sync flows.

🤖 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,
Remove the realtime_sync entries for useLiveQuery and useLiveInfiniteQuery from
the Bidirectional Constructs section in app_interfaces.md. Keep these
read/subscription hooks documented elsewhere if appropriate, and reserve this
section for actual two-way synchronization flows.


## Internal Constructs

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Business Domain References

## Domain Summary
This frontend supports an AI-assisted code analysis and repository operations platform: users onboard GitHub/GitLab repositories, ingest them into workflows, and monitor codebase status, workflow runs, agent events, and generated Agent MD documentation. It also manages repository credentials, model and tool providers including OAuth, and feedback flows that rate agent output or application experience and can create GitHub issues.
This frontend supports a repository intelligence and code-analysis platform: it onboards source-control repositories, ingests codebases, tracks workflow runs, and presents AI-agent-generated engineering workflows, dependency guides, business-logic summaries, interface scans, progress, and event histories. Supporting models cover repository/provider credentials, model and tool configuration including OAuth, operational status and error reporting, plus app and agent feedback that can create GitHub issues.

## Data Model References
### `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/agent-feedback/api.ts`
Expand Down Expand Up @@ -59,11 +59,11 @@ This frontend supports an AI-assisted code analysis and repository operations pl
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/schema.ts#L94-L96`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/schema.ts#L104-L106`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/schema.ts#L124-L126`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/schema.ts#L202-L204`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/schema.ts#L208-L210`

### `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/transformers.ts`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/transformers.ts#L11-L14`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/transformers.ts#L18-L27`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/repository-agent-snapshots/transformers.ts#L18-L28`

### `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/tool-config/types.ts`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/features/tool-config/types.ts#L35-L37`
Expand Down Expand Up @@ -178,7 +178,6 @@ This frontend supports an AI-assisted code analysis and repository operations pl
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L119-L128`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L130-L135`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L137-L139`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L141-L144`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L146-L149`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L152-L156`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L162-L170`
Expand All @@ -190,6 +189,7 @@ This frontend supports an AI-assisted code analysis and repository operations pl
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L227-L243`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L246-L253`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L256-L264`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L267-L270`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L273-L276`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L279-L281`
- `/opt/unoplat/repositories/unoplat-code-confluence/unoplat-code-confluence-frontend/src/types.ts#L284-L295`
Expand Down
Loading
Loading