Skip to content

Add Composio connector suggestions to composer#180

Open
friuns2 wants to merge 29 commits into
mainfrom
codex/2be5-composio-suggestions
Open

Add Composio connector suggestions to composer#180
friuns2 wants to merge 29 commits into
mainfrom
codex/2be5-composio-suggestions

Conversation

@friuns2
Copy link
Copy Markdown
Owner

@friuns2 friuns2 commented May 17, 2026

Summary

  • add hardcoded Composio connector preview/catalog support and logout UI
  • suggest one exact-matched connector from the completed word before the active word
  • attach connector documentation as a file for connected/no-auth connectors and open the connector panel for disconnected connectors
  • keep the suggestion chip in the bottom controls row after Model, Skills, and Thinking

Verification

  • pnpm run test:unit src/components/content/composioComposerSuggestions.test.ts src/components/content/composioConnectorCatalog.test.ts src/components/content/directoryHubUtils.test.ts src/api/codexGateway.test.ts
  • pnpm run build:frontend
  • browser smoke on http://127.0.0.1:4173/#/thread/019dc256-3c74-7470-8d54-b4eb6f771157 confirmed reddit and gmail reddit butt show only Use Reddit +; redditor shows no suggestion; light and dark screenshots captured
  • PROFILE_BASE_URL=http://127.0.0.1:4173 PROFILE_WAIT_MS=7000 pnpm run profile:browser; existing warnings remain threadRead=3 and skillsList=2 with no Composio-specific regression

Summary by CodeRabbit

  • New Features

    • Composer suggests Composio connectors (status badges) with a persisted "Connector suggestions" toggle; selecting suggestions can attach connector docs or open connector details. Directory shows unified Composio preview with incremental "Load more", contextual Install/Login/Logout actions, and logout now invokes a server-side logout.
  • Tests

    • Added unit tests for suggestion ranking, merging, document generation, and catalog integrity.
  • Documentation

    • Updated workflow guidance and added manual regression test plans.
  • Style

    • Added dark-mode styling for suggestion UI.

Review Change Stack

@qodo-free-for-open-source-projects
Copy link
Copy Markdown

Review Summary by Qodo

Add Composio connector suggestions and hardcoded catalog preview
✨ Enhancement

Grey Divider

Walkthroughs

Description
• Add hardcoded Composio connector catalog with live-status merge support
• Implement real-time connector suggestions in composer based on exact word matches
• Attach connector documentation files instead of inline instruction text
• Add Composio logout UI and improve preview/authenticated state handling
• Increase connector detail tool limit from 10 to 100 for better coverage
Diagram
flowchart LR
  A["Hardcoded Catalog"] -->|merge live status| B["Composio Connectors"]
  C["Composer Draft"] -->|extract query| D["Suggestion Query"]
  D -->|rank matches| E["Visible Suggestions"]
  E -->|click suggestion| F{Connected?}
  F -->|yes| G["Attach Docs File"]
  F -->|no| H["Open Directory Panel"]
  G -->|remove mention| I["Updated Draft"]
  H -->|user connects| I
  J["Directory Hub"] -->|show preview| K["Unauthenticated State"]
  J -->|merge with live| L["Authenticated State"]
  L -->|logout| K
Loading

Grey Divider

File Changes

1. src/components/content/composioComposerSuggestions.ts ✨ Enhancement +177/-0

Core suggestion ranking and document generation logic

src/components/content/composioComposerSuggestions.ts


2. src/components/content/composioComposerSuggestions.test.ts 🧪 Tests +118/-0

Comprehensive tests for suggestion matching and ranking

src/components/content/composioComposerSuggestions.test.ts


3. src/components/content/composioConnectorCatalog.ts ⚙️ Configuration changes +1004/-0

Hardcoded Composio connector catalog data

src/components/content/composioConnectorCatalog.ts


View more (10)
4. src/components/content/composioConnectorCatalog.test.ts 🧪 Tests +15/-0

Catalog validation and uniqueness tests

src/components/content/composioConnectorCatalog.test.ts


5. src/server/codexAppServerBridge.ts ✨ Enhancement +37/-1

Add logout endpoint and increase tool list limit

src/server/codexAppServerBridge.ts


6. src/api/codexGateway.ts ✨ Enhancement +16/-0

Add logout API type and client function

src/api/codexGateway.ts


7. src/api/codexGateway.test.ts 🧪 Tests +25/-1

Test logout endpoint POST request

src/api/codexGateway.test.ts


8. src/components/content/DirectoryHub.vue ✨ Enhancement +166/-126

Refactor Composio preview and authenticated UI states

src/components/content/DirectoryHub.vue


9. src/components/content/ThreadComposer.vue ✨ Enhancement +167/-0

Add real-time connector suggestions and document attachment

src/components/content/ThreadComposer.vue


10. src/App.vue ✨ Enhancement +9/-1

Route Composio connector opens from composer to directory

src/App.vue


11. src/style.css ✨ Enhancement +16/-0

Dark theme styling for Composio suggestion chips

src/style.css


12. tests.md 📝 Documentation +113/-0

Add test cases for preview, suggestions, and attachment flows

tests.md


13. AGENTS.md 📝 Documentation +2/-1

Update merge workflow to prefer GitHub PR merges

AGENTS.md


Grey Divider

Qodo Logo

@qodo-free-for-open-source-projects
Copy link
Copy Markdown

qodo-free-for-open-source-projects Bot commented May 17, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Remediation recommended

1. Connector logo URL unnormalized ✓ Resolved 🐞 Bug ≡ Correctness
Description
DirectoryHub binds ` directly, bypassing localAssetSrc() which rewrites connectors://` URLs and
rejects non-http(s)/data/local paths, so Composio connector icons can render broken and/or attempt
to load unsupported schemes from unsanitized Composio metadata.
Code

src/components/content/DirectoryHub.vue[273]

Evidence
DirectoryHub already has localAssetSrc() designed to rewrite connectors:// and restrict URL
schemes, but the new Composio connector card UI bypasses it and uses connector.logoUrl directly.
On the backend, Composio connector summaries set logoUrl directly from Composio metadata
(record.logo/record.meta.logo) without sanitization, so the UI needs to normalize/filter before
binding into an `` tag.

src/components/content/DirectoryHub.vue[271-275]
src/components/content/DirectoryHub.vue[1169-1175]
src/server/codexAppServerBridge.ts[1824-1844]
src/server/codexAppServerBridge.ts[4886-4913]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
DirectoryHub renders Composio connector icons with `:src="connector.logoUrl"` directly. This bypasses the existing `localAssetSrc()` helper that (a) rewrites `connectors://...` to the `/codex-api/connector-logo` proxy and (b) drops unexpected URL formats.
## Issue Context
The server passes `logoUrl` through from Composio toolkit metadata without validation, so the UI should normalize/filter it the same way it does for other assets.
## Fix Focus Areas
- src/components/content/DirectoryHub.vue[271-275]
- src/components/content/DirectoryHub.vue[1169-1175]
- src/server/codexAppServerBridge.ts[1824-1844]
### Suggested fix
- Introduce a small helper (e.g. `composioLogoSrc(connector) { return localAssetSrc(connector.logoUrl) }`).
- Update both Composio lists (preview + authenticated) to use `:src="composioLogoSrc(connector)"` and `v-if="composioLogoSrc(connector)"` so broken/unsupported URLs fall back to the initial avatar.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Composio doc dedupe by label ✓ Resolved 🐞 Bug ≡ Correctness
Description
ThreadComposer prevents attaching the Composio connector doc when any existing attachment has the
same label as the generated filename, so a user-uploaded file with the same basename can
incorrectly suppress attaching the connector documentation.
Code

src/components/content/ThreadComposer.vue[R1769-1772]

Evidence
The new dedupe check compares only attachment.label against the generated doc filename. Since
addFileAttachment() sets labels to a basename/customLabel (not a stable ID) and the upload server
preserves filenames, it’s possible for user uploads to share the same basename and thus prevent the
Composio doc from being attached.

src/components/content/ThreadComposer.vue[1769-1773]
src/components/content/ThreadComposer.vue[1289-1295]
src/server/codexAppServerBridge.ts[4762-4784]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`applyComposioSuggestion()` skips attaching a Composio connector document if *any* current attachment has `attachment.label === fileName`. Since `label` is just a basename/customLabel, unrelated user attachments can collide and prevent attaching the doc.
## Issue Context
- `addFileAttachment()` uses a basename-derived label by default.
- Upload server preserves the original filename when writing the file.
## Fix Focus Areas
- src/components/content/ThreadComposer.vue[1769-1773]
- src/components/content/ThreadComposer.vue[1289-1295]
- src/server/codexAppServerBridge.ts[4762-4784]
### Suggested fix options
Pick one:
1) **Add explicit attachment metadata**: extend `FileAttachment` with optional `source`/`kind` (e.g. `'composio-doc'`) and only dedupe when an existing attachment has both matching `slug` (or `fileName`) and `kind === 'composio-doc'`.
2) **Make filenames effectively uncollidable**: change `composioConnectorDocumentFileName()` to use a reserved prefix unlikely to match user uploads (e.g. `__codex_composio_doc__${slug}.md`) and keep the current label-based check.
3) **Prefer false-positives over false-negatives**: remove the early-return label check (always attach), or gate it behind a stricter predicate so user uploads don’t block docs.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 17, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds composer Composio connector suggestions (ranking, merging, doc generation, and UI), refactors DirectoryHub to merge hardcoded and live connectors with visible-limit paging and route-driven details, implements client POST + server CLI logout, and wires App routing and a persisted settings toggle for connector suggestions.

Changes

Composio Connector Integration

Layer / File(s) Summary
Composio suggestion utilities and tests
src/components/content/composioComposerSuggestions.ts, src/components/content/composioComposerSuggestions.test.ts, src/components/content/composioConnectorCatalog.test.ts
New utilities to merge catalog/live connectors, extract/remove suggestion queries, rank exact-alias suggestions, generate Markdown connector documents and filenames, plus unit tests and a catalog sanity test.
Composer UI, settings, and app routing
src/components/content/ThreadComposer.vue, src/App.vue, src/style.css, tests.md, AGENTS.md
Renders Composio suggestions in composer controls with throttled refresh and apply logic; home/thread composers emit open-composio-connector and App routes to skills?tab=composio&connector=<slug>; adds persisted Connector suggestions toggle, dark-mode styles, and manual test sections; documents a GitHub-first merge step.
Directory hub unified connector catalog
src/components/content/DirectoryHub.vue
Refactors preview and authenticated flows to merge hardcoded catalog with live fetches; replaces cursor/queue paging with visible-limit slicing, builds local preview details when unauthenticated, adds route-driven detail opening, and surfaces Try/Upload and Logout/Install/Login actions.
API gateway and server logout
src/api/codexGateway.ts, src/api/codexGateway.test.ts, src/server/codexAppServerBridge.ts
Adds logout result type and client gateway POST call; server runs Composio CLI logout via spawnSync with structured result and timeout handling, increases connector tools pagination, and exposes POST /codex-api/composio/logout with same-origin enforcement and error handling; includes gateway/server tests.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 I nudged a connector, tidy and neat,
Merged the catalog — new suggestions to meet.
Logout whispers back from a CLI song,
Route opens details where connectors belong.
Hop, click, attach — the composer hums along.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly and concisely summarizes the main change: adding Composio connector suggestions to the composer component.
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 codex/2be5-composio-suggestions

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🤖 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 `@src/api/codexGateway.test.ts`:
- Around line 90-112: The logoutDirectoryComposioCli test is currently nested
inside the listDirectoryComposioConnectors describe block—move it into its own
top-level describe block to improve organization and clarity; locate the test
that stubs global fetch and calls logoutDirectoryComposioCli, cut that it(...)
block and paste it into a new describe('logoutDirectoryComposioCli', () => { ...
}) grouping (keeping the vi.stubGlobal('fetch') setup and the expect asserting
'/codex-api/composio/logout' POST), ensuring any related before/after hooks are
moved or duplicated as needed so the test remains isolated.

In `@src/components/content/composioComposerSuggestions.ts`:
- Line 98: The call to findLatestExactAliasMatch currently passes
value.toLowerCase(), which can cause index misalignment when slicing the
original value due to Unicode case-folding differences; instead pass the
original value (value) so the indexes returned by
findLatestExactAliasMatch(connector, value) align with the original string, and
rely on the regex's case-insensitive flag for matching; update the invocation
and ensure subsequent slicing uses the returned index against the unchanged
value variable.

In `@src/components/content/DirectoryHub.vue`:
- Around line 931-940: The hasMoreComposioConnectors check is using
composioTotal (full dataset) instead of the filtered/sorted results, causing the
"Load more" button to remain when a search yields fewer matches; update
hasMoreComposioConnectors to compare visibleComposioConnectors.value.length
against the total number of filtered/sorted connectors (e.g., compute the
filtered list using filterComposioConnectors(composioConnectors.value,
composioSearchQuery.value) or reuse the sorted variable from
visibleComposioConnectors before slicing) so the comparison reflects the
filtered result count rather than composioTotal.
- Around line 1223-1231: The mergeComposioConnectors function currently maps
only over catalog and drops connectors that exist solely in liveRows; update it
to preserve live-only connectors by producing a union of both sources: keep the
catalog entries merged with liveRows (using the existing bySlug lookup) and then
append any liveRows entries whose slug is not present in catalog (or vice
versa). Reference mergeComposioConnectors, the catalog and liveRows arrays, the
bySlug map and the row/live variables when making the change so the result
returns merged catalog items plus any live-only connectors.

In `@src/components/content/ThreadComposer.vue`:
- Around line 1769-1773: When a duplicate attachment is detected by
fileAttachments.value.some(...) using fileName from
composioConnectorDocumentFileName(connector), the code currently returns early
and leaves the connector trigger text in the draft; update this block so that
before the early return you remove the connector trigger text from the composer
draft (i.e., clear the connector mention from the draft state the component
uses) and then call void nextTick(() => inputRef.value?.focus()); keep the
duplicate check and focus behavior but ensure the connector mention is stripped
first.
- Around line 300-307: The composio suggestion buttons only handle
`@mousedown.prevent` which stops keyboard activation; update the <button> created
in the v-for (class thread-composer-composio-suggestion, v-for over
visibleComposioSuggestions) to also handle `@click` and call the same handler
(applyComposioSuggestion(connector)) so Enter/Space and screen readers can
activate it; keep the existing `@mousedown.prevent` for mouse behavior but do not
prevent or intercept the `@click` handling, and ensure the
:disabled="isInteractionDisabled" remains in place.

In `@src/server/codexAppServerBridge.ts`:
- Around line 6935-6942: The logout POST handler for
'/codex-api/composio/logout' is vulnerable to CSRF; add a same-origin/CSRF check
before calling logoutComposioCli(). Specifically, in the block that checks
req.method === 'POST' && url.pathname === '/codex-api/composio/logout', validate
the request origin by checking req.headers.origin or req.headers.referer matches
the server origin OR require a validated CSRF header/token (e.g. a custom header
like 'x-codex-csrf' that you verify against session/store), and if the check
fails return setJson(res, 403, { error: 'Forbidden' }). Only call
logoutComposioCli() when the origin/token check passes. Ensure you still catch
errors and use getErrorMessage as before.
- Around line 2089-2097: spawnSync is called without a timeout in the logout
flow (the invocation/ result block using spawnSync), which can block if the CLI
hangs; add a timeout option to the spawnSync call (e.g., timeout: <ms>) and
update the error handling for the local variable result to detect a timeout
(result.error && result.error.code === 'ETIMEDOUT' or result.signal indicating
it was killed) and throw a clear timeout-specific Error message; apply the same
change to the other spawnSync uses in this file (the other invocation/result
occurrences mentioned) so all synchronous CLI calls use a consistent timeout and
error path.

In `@tests.md`:
- Around line 375-403: Update the stale test section "Composer suggests matching
Composio connectors while typing" to reflect the new attachment flow: remove or
modify steps and expected results that say clicking a suggestion adds the
"composio-cli" skill chip and appends connector instruction text, and instead
assert the new behavior that a "composio-*.md" attachment is added, the mention
is removed, and no auto skill chip is inserted; also ensure
ranking/connected-state and file-mention precedence expectations remain
consistent with the later documented behavior.
🪄 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: 6799e657-bef5-4a52-8a82-b85c1d5d6bb5

📥 Commits

Reviewing files that changed from the base of the PR and between 745e053 and 095c808.

📒 Files selected for processing (13)
  • AGENTS.md
  • src/App.vue
  • src/api/codexGateway.test.ts
  • src/api/codexGateway.ts
  • src/components/content/DirectoryHub.vue
  • src/components/content/ThreadComposer.vue
  • src/components/content/composioComposerSuggestions.test.ts
  • src/components/content/composioComposerSuggestions.ts
  • src/components/content/composioConnectorCatalog.test.ts
  • src/components/content/composioConnectorCatalog.ts
  • src/server/codexAppServerBridge.ts
  • src/style.css
  • tests.md

Comment thread src/api/codexGateway.test.ts
Comment thread src/components/content/composioComposerSuggestions.ts Outdated
Comment thread src/components/content/DirectoryHub.vue Outdated
Comment thread src/components/content/DirectoryHub.vue
Comment thread src/components/content/ThreadComposer.vue
Comment thread src/components/content/ThreadComposer.vue Outdated
Comment thread src/server/codexAppServerBridge.ts
Comment thread src/server/codexAppServerBridge.ts
Comment thread tests.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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 `@src/components/content/composioComposerSuggestions.ts`:
- Around line 137-140: The mapping that builds toolLines uses
tool.description.trim() which will throw if description is undefined; update the
description handling in the toolLines mapping (the arrow mapping that references
detail?.tools and tool.description) to defensively handle undefined by using
optional chaining or a default (e.g., use tool.description?.trim() or
(tool.description ?? '').trim()) and then use the trimmed result to decide the
formatted string so the existing conditional `${tool.name} (${tool.slug}):
${description}` only runs when the trimmed description is non-empty.
- Line 155: The expression calls .trim() directly on
resolvedConnector.description which can be undefined; change the fallback to
ensure a string before trimming (e.g., use resolvedConnector.description ?? ''
or resolvedConnector.description || '' before .trim()) so the final value
becomes (safe string).trim() || 'No connector description is available in the
local Composio catalog.'; target the resolvedConnector.description usage in
composioComposerSuggestions.ts to implement this guard.
🪄 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: d78a10ee-3b97-44ec-8dfb-642929b74376

📥 Commits

Reviewing files that changed from the base of the PR and between 095c808 and 3af59c7.

📒 Files selected for processing (3)
  • src/components/content/composioComposerSuggestions.test.ts
  • src/components/content/composioComposerSuggestions.ts
  • tests.md
✅ Files skipped from review due to trivial changes (1)
  • tests.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/components/content/composioComposerSuggestions.test.ts

Comment thread src/components/content/composioComposerSuggestions.ts
Comment thread src/components/content/composioComposerSuggestions.ts Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 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 `@src/components/content/DirectoryHub.vue`:
- Around line 1517-1524: The route-driven opener sets
lastRouteComposioConnectorSlug before awaiting openComposioDetail, which allows
a concurrent loadComposio() call to fall back to buildLocalComposioDetail and
skip the later retry; fix openRouteComposioConnector (and the similar block
around the other occurrence) to wait until Composio has finished loading before
locking the slug—e.g., await a composio-ready promise or poll a
composioLoading/composioLoaded flag (the same one used by loadComposio), only
then set lastRouteComposioConnectorSlug.value and composioSearchQuery.value and
call await openComposioDetail(slug) so the live connector detail can be opened
instead of the local fallback.

In `@src/components/content/ThreadComposer.vue`:
- Around line 1748-1764: The function refreshComposioSuggestions currently
always calls Composio APIs; add an early return at its start that checks the
feature toggle (composioSuggestionsEnabled or visibleComposioSuggestions) and
exits when suggestions are disabled so no API calls are made; update
refreshComposioSuggestions to return immediately (respecting the toggle) before
computing composioLoadStartedAt or calling
getDirectoryComposioStatus/listDirectoryComposioConnectors, and ensure any
callers like the watch(draft) invocation rely on that guarded behavior.
- Around line 299-309: The button rendering loop for visibleComposioSuggestions
is binding click and explicit key handlers which cause applyComposioSuggestion
to run twice; remove the `@keydown.enter.prevent` and `@keydown.space.prevent`
attributes from the element(s) with class "thread-composer-composio-suggestion"
(the v-for that uses :key="connector.slug" and calls
applyComposioSuggestion(connector)) and keep the `@click` and optional
`@mousedown.prevent` to preserve mouse behavior—if you need custom keyboard
handling for non-button elements, implement it only for those, but for native
<button> rely on its built-in Enter/Space activation to avoid duplicate
uploads/attachments.
🪄 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: a0d759b2-5a8a-407a-a93d-eeb1142c0888

📥 Commits

Reviewing files that changed from the base of the PR and between d32f7b8 and 9e49869.

📒 Files selected for processing (7)
  • src/api/codexGateway.test.ts
  • src/components/content/DirectoryHub.vue
  • src/components/content/ThreadComposer.vue
  • src/components/content/composioComposerSuggestions.test.ts
  • src/components/content/composioComposerSuggestions.ts
  • src/server/codexAppServerBridge.ts
  • tests.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • src/api/codexGateway.test.ts
  • src/server/codexAppServerBridge.ts
  • tests.md

Comment thread src/components/content/DirectoryHub.vue
Comment thread src/components/content/ThreadComposer.vue Outdated
Comment thread src/components/content/ThreadComposer.vue Outdated
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