Skip to content

feat: send objective with Alexandria session feedback - #469

Merged
nickscamara merged 2 commits into
mainfrom
nsc/alexandria-feedback-objective
Sep 30, 2026
Merged

nickscamara merged 2 commits into
mainfrom
nsc/alexandria-feedback-objective

Conversation

@nickscamara

@nickscamara nickscamara commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Summary

firecrawl_feedback with endpoint: "alexandria" now requires an objective: the underlying goal behind the session, meaning what the agent or its user was ultimately trying to accomplish, beyond the single website in requestedWebsite.

  • objective is added to the shared Alexandria fields and required in the session schema (trimmed, 1–2000 characters). It is rejected for job feedback, like the other Alexandria-only fields.
  • The tool description explains the field and how it differs from requestedFunctionality.
  • The feedbackTool hint attached to Alexandria results includes an objective placeholder. It is kept short so oversized-result handoffs stay under the 2,000-character budget.
  • README example updated.

Depends on

Tests

npm test: 164/164 pass. The smoke test sends objective and rejects missing or blank values. The hint test asserts the placeholder is present.

Made with Cursor


Summary by cubic

Adds a required objective field to Alexandria session feedback so sessions record the underlying goal behind the task, and bumps the version to 3.27.1.

  • firecrawl_feedback with endpoint: "alexandria" now requires objective (trimmed, 1–2000 characters), included in the session schema but rejected for job feedback.
  • The tool description and README explain how objective differs from requestedFunctionality, and the feedbackTool hint includes an objective placeholder.
  • Smoke and hint tests cover the new field, including missing and blank value rejection.
  • Bumps firecrawl-mcp and gemini-extension.json to version 3.27.1.

Migration
Depends on firecrawl/firecrawl#4877 being deployed first; the API rejects unknown keys in Alexandria feedback until then.

Written for commit a2cfe54. Summary will update on new commits.

Review in cubic

Co-authored-by: Cursor <cursoragent@cursor.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 5 files

Confidence score: 5/5

  • In tests/mcp-smoke.test.mjs, the short, already-trimmed input won’t catch regressions in trimming or the 2,000-character limit; add padded-input and 2,001-character cases that assert the forwarded value.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tests/mcp-smoke.test.mjs">

<violation number="1" location="tests/mcp-smoke.test.mjs:1813">
P3: This only exercises a short, already-trimmed value, so it will not catch regressions in the trimming or 2,000-character limit. Add cases for padded input and a 2,001-character objective, asserting the forwarded value is trimmed and the oversized value is rejected.</violation>
</file>

Requires human review: Adds a required objective field to Alexandria session feedback and updates docs/tests. This changes the public tool contract for existing callers and depends on backend deployment #4877, so release coordination and compatibility sign-off are needed.

Fix all with cubic | Re-trigger cubic

Comment thread tests/mcp-smoke.test.mjs
const sessionFeedback = {
endpoint: 'alexandria', rating: 'partial',
requestedWebsite: { url: 'https://example.com', requestedFunctionality: 'Download attachments' },
objective: 'Compare contract requirements across agencies',

@cubic-dev-ai cubic-dev-ai Bot Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P3: This only exercises a short, already-trimmed value, so it will not catch regressions in the trimming or 2,000-character limit. Add cases for padded input and a 2,001-character objective, asserting the forwarded value is trimmed and the oversized value is rejected.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At tests/mcp-smoke.test.mjs, line 1813:

<comment>This only exercises a short, already-trimmed value, so it will not catch regressions in the trimming or 2,000-character limit. Add cases for padded input and a 2,001-character objective, asserting the forwarded value is trimmed and the oversized value is rejected.</comment>

<file context>
@@ -1810,6 +1810,7 @@ test('stdio transport calls Firecrawl API through a tool end to end', async (t)
   const sessionFeedback = {
     endpoint: 'alexandria', rating: 'partial',
     requestedWebsite: { url: 'https://example.com', requestedFunctionality: 'Download attachments' },
+    objective: 'Compare contract requirements across agencies',
     rationale: 'Only summaries available',
     capabilityFeedback: [{ name: 'attachments', provider: 'example', issue: 'new_capability_request', why: 'Missing attachments', requestedFunctionality: 'Return document links' }],
</file context>
Fix with cubic

Co-authored-by: Cursor <cursoragent@cursor.com>
@nickscamara
nickscamara merged commit e5a7b92 into main Sep 30, 2026
2 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.

1 participant