Add discovery detail controls and search/scrape guidance - #262
Conversation
There was a problem hiding this comment.
0 issues found across 5 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would auto-approve. Updates Firecrawl skill documentation to integrate Alexandria tool discovery into search/scrape guidance and add large-result recovery instructions via bounded remote Bash reads; docs-only change with CLI behavior unchanged and safety guidance included.
Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 4 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would auto-approve. This PR only changes Firecrawl agent-skill and reference docs: it integrates Alexandria discovery into search/scrape guidance and adds bounded remote-Bash recovery instructions; any remaining risk is ordinary doc correctness, not runtime behavior.
Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 2 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would auto-approve. Documentation-only update to Firecrawl agent skills making search/scrape the reference workflow for Alexandria tool discovery and adding remote-Bash large-result recovery guidance; runtime and CLI are unchanged, so remaining risk is doc correctness.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 12 files (changes from recent commits).
Shadow auto-approve: would not auto-approve because issues were found.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 2 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would not auto-approve. Auto-approval blocked by 1 unresolved issue from previous reviews.
Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 1 file (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would auto-approve. Adds an optional --tool-detail summary|full flag to search and scrape discovery with local validation, forwards it to the API when set, and expands skill guidance. Default behavior is unchanged, so risk is bounded to opt-in use.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 10 files (changes from recent commits).
Shadow auto-approve: would not auto-approve because issues were found.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 2 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would auto-approve. Adds an opt-in --tool-detail compact mode to search/scrape discovery and expands skill/reference guidance; default summary behavior is unchanged and tests cover forwarding and local validation, keeping risk limited to explicit opt-in use.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 5 files (changes from recent commits).
Shadow auto-approve: would not auto-approve because issues were found.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 1 file (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would require human review. Adds --tool-detail controls to search/scrape and changes search's default tool detail from summary to compact, changing output for all users and always sending a new API parameter; default change requires human review.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 5 files (changes from recent commits).
Shadow auto-approve: would not auto-approve because issues were found.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 5 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would not auto-approve. Auto-approval blocked by 2 unresolved issues from previous reviews.
Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 1 file (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would not auto-approve. Auto-approval blocked by 2 unresolved issues from previous reviews.
Re-trigger cubic
There was a problem hiding this comment.
0 issues found across 1 file (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would require human review. Adds --tool-detail controls to search/scrape and changes search's default tool detail from summary to compact, altering default output for all users and always sending a new toolDetail API parameter. The default-output and API-contract change needs human sign-off.
Re-trigger cubic
There was a problem hiding this comment.
1 issue found across 7 files (changes from recent commits).
Confidence score: 3/5
src/commands/list.ts: the root auth hook prompts for stored credentials before the--api-keychild option can be used, so otherwise-authenticated users may be blocked or prompted unnecessarily; update the hook to honoractionCommand's API key.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/commands/list.ts">
<violation number="1" location="src/commands/list.ts:535">
P2: When users run `firecrawl alexandria feedback --api-key <key>` without stored credentials, the root auth hook prompts before the handler can use the child option. Update the auth hook to honor `actionCommand`'s API key before calling `ensureAuthenticated`.</violation>
</file>
Shadow auto-approve: would not auto-approve because issues were found.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
| ) | ||
| .addCommand(createListCommand()) | ||
| .addCommand(createTermsCommand()) | ||
| .addCommand(createAlexandriaFeedbackCommand()) |
There was a problem hiding this comment.
P2: When users run firecrawl alexandria feedback --api-key <key> without stored credentials, the root auth hook prompts before the handler can use the child option. Update the auth hook to honor actionCommand's API key before calling ensureAuthenticated.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/commands/list.ts, line 535:
<comment>When users run `firecrawl alexandria feedback --api-key <key>` without stored credentials, the root auth hook prompts before the handler can use the child option. Update the auth hook to honor `actionCommand`'s API key before calling `ensureAuthenticated`.</comment>
<file context>
@@ -531,5 +532,6 @@ export function createAlexandriaCommand(): Command {
)
.addCommand(createListCommand())
.addCommand(createTermsCommand())
+ .addCommand(createAlexandriaFeedbackCommand())
.addCommand(browse, { isDefault: true, hidden: true });
}
</file context>
There was a problem hiding this comment.
1 issue found across 3 files (changes from recent commits).
Confidence score: 4/5
src/__tests__/alexandria-beta.test.tssetsFIRECRAWL_NO_ENDPOINT_FEEDBACK, causingexecuteEndpointFeedbackto return before reaching API-key/auth logic; authentication regressions could therefore pass unnoticed—disable or remove the environment override for the auth-focused test.
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/__tests__/alexandria-beta.test.ts">
<violation number="1" location="src/__tests__/alexandria-beta.test.ts:1164">
P2: This test never exercises the API-key/auth code it is named after. With `FIRECRAWL_NO_ENDPOINT_FEEDBACK: '1'` set, `executeEndpointFeedback` returns `{ disabled: true, disabledSource: 'env' }` from its first line (src/commands/feedback.ts:231-238), before `getClient`, `getConfig`, or `validateConfig` run, and `handleEndpointFeedbackCommand` then exits 0 for `disabledSource: 'env'`. All three assertions (code 0, zero requests, no auth-error text) hold even if the child-api-key-before-auth handling regresses, so this test cannot catch a regression of the fix it claims to validate. Point `--api-url` at the local test server (`baseUrl`), drop the opt-out env var, and assert the POST to `/v2/feedback` carries `Authorization: Bearer fc-child-key` while the root FIRECRAWL_API_KEY stays empty.</violation>
</file>
Shadow auto-approve: would not auto-approve because issues were found.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
| it('honors the child feedback API key before root authentication', async () => { | ||
| const result = await cli( | ||
| [ | ||
| ...sessionFeedbackArgs, | ||
| '--api-key', | ||
| 'fc-child-key', | ||
| '--api-url', | ||
| 'https://api.firecrawl.dev', | ||
| ], | ||
| '', | ||
| { FIRECRAWL_NO_ENDPOINT_FEEDBACK: '1' } | ||
| ); | ||
| expect(result.code).toBe(0); | ||
| expect(requests).toHaveLength(0); | ||
| expect(result.stdout + result.stderr).not.toMatch( | ||
| /not authenticated|log in|login required/i | ||
| ); | ||
| }); |
There was a problem hiding this comment.
P2: This test never exercises the API-key/auth code it is named after. With FIRECRAWL_NO_ENDPOINT_FEEDBACK: '1' set, executeEndpointFeedback returns { disabled: true, disabledSource: 'env' } from its first line (src/commands/feedback.ts:231-238), before getClient, getConfig, or validateConfig run, and handleEndpointFeedbackCommand then exits 0 for disabledSource: 'env'. All three assertions (code 0, zero requests, no auth-error text) hold even if the child-api-key-before-auth handling regresses, so this test cannot catch a regression of the fix it claims to validate. Point --api-url at the local test server (baseUrl), drop the opt-out env var, and assert the POST to /v2/feedback carries Authorization: Bearer fc-child-key while the root FIRECRAWL_API_KEY stays empty.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/__tests__/alexandria-beta.test.ts, line 1164:
<comment>This test never exercises the API-key/auth code it is named after. With `FIRECRAWL_NO_ENDPOINT_FEEDBACK: '1'` set, `executeEndpointFeedback` returns `{ disabled: true, disabledSource: 'env' }` from its first line (src/commands/feedback.ts:231-238), before `getClient`, `getConfig`, or `validateConfig` run, and `handleEndpointFeedbackCommand` then exits 0 for `disabledSource: 'env'`. All three assertions (code 0, zero requests, no auth-error text) hold even if the child-api-key-before-auth handling regresses, so this test cannot catch a regression of the fix it claims to validate. Point `--api-url` at the local test server (`baseUrl`), drop the opt-out env var, and assert the POST to `/v2/feedback` carries `Authorization: Bearer fc-child-key` while the root FIRECRAWL_API_KEY stays empty.</comment>
<file context>
@@ -1142,3 +1147,107 @@ it('rejects missing session requirements before sending feedback', async () => {
+ 'Missing documents',
+];
+
+it('honors the child feedback API key before root authentication', async () => {
+ const result = await cli(
+ [
</file context>
| it('honors the child feedback API key before root authentication', async () => { | |
| const result = await cli( | |
| [ | |
| ...sessionFeedbackArgs, | |
| '--api-key', | |
| 'fc-child-key', | |
| '--api-url', | |
| 'https://api.firecrawl.dev', | |
| ], | |
| '', | |
| { FIRECRAWL_NO_ENDPOINT_FEEDBACK: '1' } | |
| ); | |
| expect(result.code).toBe(0); | |
| expect(requests).toHaveLength(0); | |
| expect(result.stdout + result.stderr).not.toMatch( | |
| /not authenticated|log in|login required/i | |
| ); | |
| }); | |
| it('honors the child feedback API key before root authentication', async () => { | |
| const result = await cli( | |
| [ | |
| ...sessionFeedbackArgs, | |
| '--api-key', | |
| 'fc-child-key', | |
| '--api-url', | |
| baseUrl, | |
| ], | |
| '' | |
| ); | |
| expect(result.code).toBe(0); | |
| expect(requests).toHaveLength(1); | |
| expect(requests[0].url).toBe('/v2/feedback'); | |
| expect(requests[0].headers.authorization).toBe('Bearer fc-child-key'); | |
| }); |
Integrates tool discovery and execution into the search and scrape skills, with progressive catalogue inspection and guidance for large retained results.
Search defaults to compact tool identities and descriptions.
--tool-detail summaryadds metadata;fullincludes contracts. URL Scrape keeps its summary default. Inspect selected tools withlist. Requires the corresponding API deployment.Validation: build and focused CLI tests. Production skill changes remain here; beta skill updates are separate in #266.