Skip to content

fix(platform): Improve Linear Search Block#11966

Closed
Otto-AGPT wants to merge 1 commit intodevfrom
fix/linear-search-block-improvements
Closed

fix(platform): Improve Linear Search Block#11966
Otto-AGPT wants to merge 1 commit intodevfrom
fix/linear-search-block-improvements

Conversation

@Otto-AGPT
Copy link
Contributor

@Otto-AGPT Otto-AGPT commented Feb 4, 2026

Summary

Implements SECRT-1880 - Improve Linear Search Block

Changes

Models (models.py)

  • Added State model with id, name, and type fields for workflow state information
  • Added state: State | None field to Issue model

API Client (_api.py)

  • Updated try_search_issues() to:
    • Add max_results parameter (default 10, was ~50) to reduce token usage
    • Add team_id parameter for team filtering
    • Return createdAt, state, project, and assignee fields in results
  • Fixed try_get_team_by_name() to return descriptive error message when team not found instead of crashing with IndexError

Block (issues.py)

  • Added max_results input parameter (1-100, default 10)
  • Added team_name input parameter for optional team filtering
  • Added error output field for graceful error handling
  • Added categories (PRODUCTIVITY, ISSUE_TRACKING)
  • Updated test fixtures to include new fields

Breaking Changes

Change Before After Mitigation
Default result count ~50 10 Users can set max_results up to 100 if needed

Non-Breaking Changes

  • state field added to Issue (optional, defaults to None)
  • max_results param added (has default value)
  • team_name param added (optional, defaults to None)
  • error output added (follows established pattern from GitHub blocks)

Testing

  • Format/lint checks pass
  • Unit test fixtures updated

Linear

SECRT-1880

SECRT-1880

- Add state field (with id, name, type) to Issue model for duplicate detection
- Add State model for workflow state information
- Update try_search_issues() to return createdAt, state, project, and assignee
- Add max_results parameter (default 10, was ~50) to reduce token usage
- Add team_name filter to scope results to specific team
- Fix try_get_team_by_name() to return descriptive error when team not found
- Add error output to LinearSearchIssuesBlock for graceful error handling
- Add categories to LinearSearchIssuesBlock (PRODUCTIVITY, ISSUE_TRACKING)
@Otto-AGPT Otto-AGPT requested a review from a team as a code owner February 4, 2026 14:28
@Otto-AGPT Otto-AGPT requested review from Swiftyos and ntindle and removed request for a team February 4, 2026 14:28
@github-project-automation github-project-automation bot moved this to 🆕 Needs initial review in AutoGPT development kanban Feb 4, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 4, 2026

Walkthrough

The changes enhance the Linear search block with filtering and enriched issue data. The API client now accepts optional max_results and team_id parameters, returns additional issue fields (state, createdAt, project, assignee), and validates team lookups. The block layer exposes these capabilities through max_results and team_name input parameters, resolving team names to IDs before querying.

Changes

Cohort / File(s) Summary
Linear API Client
autogpt_platform/backend/backend/blocks/linear/_api.py
Enhanced try_search_issues to accept optional max_results (default 10) and team_id parameters; updated GraphQL query to request additional fields (state details, createdAt, project, assignee) and pass filter variables. Improved try_get_team_by_name validation to raise 404 when no matching team is found.
Linear Search Block
autogpt_platform/backend/backend/blocks/linear/issues.py
Extended input schema with max_results and team_name parameters; added error field to output schema. Updated search_issues method to accept new parameters and resolve team names to IDs. Modified test data to include State and createdAt fields with new issue identifiers.
Linear Models
autogpt_platform/backend/backend/blocks/linear/models.py
Added new State model with id, name, and type fields; extended Issue model with optional state relationship.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A bunny's quest through Linear threads,
With states and times on issue spreads,
No more blind hops through fifty-some results—
Now filtered searches are my adults!
Ten at a time, by team refined,
The perfect burrow, well-designed.

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.67% 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
Title check ✅ Passed The title is concise and directly describes the main change: improving the Linear search block.
Linked Issues check ✅ Passed The pull request directly implements all primary objectives from SECRT-1880: adds state/workflow status field, populates createdAt and project, reduces default results to 10, and adds team filtering.
Out of Scope Changes check ✅ Passed All changes align with SECRT-1880 requirements: State model, Issue updates, API enhancements, and block improvements are all within scope.
Description check ✅ Passed The pull request description clearly describes the changes made across all three files, references the linked issue (SECRT-1880), and explains the rationale for improvements.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/linear-search-block-improvements

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.

❤️ Share

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

@Otto-AGPT Otto-AGPT closed this Feb 4, 2026
@Otto-AGPT Otto-AGPT deleted the fix/linear-search-block-improvements branch February 4, 2026 14:31
@github-project-automation github-project-automation bot moved this from 🆕 Needs initial review to ✅ Done in AutoGPT development kanban Feb 4, 2026
Copy link
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

🤖 Fix all issues with AI agents
In `@autogpt_platform/backend/backend/blocks/linear/issues.py`:
- Around line 204-219: Remove the inline comments inside the search_issues
implementation: delete the comment lines "// Resolve team name to ID if
provided" and "// Raises LinearAPIException with descriptive message if team not
found" so the function body only contains the logic that instantiates
LinearClient, conditionally sets team_id via
client.try_get_team_by_name(team_name=team_name), and returns
client.try_search_issues(term=term, max_results=max_results, team_id=team_id);
keep all variables and calls (LinearClient, try_get_team_by_name,
try_search_issues, team_id) unchanged.
- Around line 138-152: The Output schema overrides BlockSchemaOutput by
declaring error: str as required while the success path only yields issues; make
the error field optional so successful yields can include None or omit it:
update the Output class (Output, issues, error) to set error's default to None
and type to str | None (e.g., error: str | None = SchemaField(default=None,
description="Error message if the search failed")), or remove the error override
entirely to inherit the base definition from BlockSchemaOutput; adjust any
yields to explicitly yield error=None on success if you choose the optional
field approach.

In `@autogpt_platform/backend/backend/blocks/linear/models.py`:
- Around line 39-44: Remove the inline comment on the State.type field: in the
State model (class State) remove the trailing comment after the default
assignment so the declaration reads with the default value only (retain type
annotation str | None and default = None); no other changes required.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 7e5b84c and f897e8d.

📒 Files selected for processing (3)
  • autogpt_platform/backend/backend/blocks/linear/_api.py
  • autogpt_platform/backend/backend/blocks/linear/issues.py
  • autogpt_platform/backend/backend/blocks/linear/models.py
🧰 Additional context used
📓 Path-based instructions (3)
autogpt_platform/backend/**/*.py

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

autogpt_platform/backend/**/*.py: Always run backend setup commands in order: poetry install, poetry run prisma migrate dev, poetry run prisma generate before backend development
Always run poetry run format (Black + isort) before poetry run lint (ruff) for backend code
Use Python 3.10-3.13 with Python 3.11 required for development (managed by Poetry via pyproject.toml)

autogpt_platform/backend/**/*.py: Use FastAPI with async support for API endpoints in the backend
Use Prisma ORM for database operations with PostgreSQL
Use RabbitMQ for async task processing in the backend
Use JWT-based authentication with Supabase integration
Use poetry run format (Black + isort) to format code and poetry run lint (ruff) for linting in the backend
Use ClamAV integration for file upload security

autogpt_platform/backend/**/*.py: Format Python code with poetry run format
Run poetry run test (runs pytest with a docker based postgres + prisma) before committing backend changes

Files:

  • autogpt_platform/backend/backend/blocks/linear/models.py
  • autogpt_platform/backend/backend/blocks/linear/issues.py
  • autogpt_platform/backend/backend/blocks/linear/_api.py
autogpt_platform/backend/backend/blocks/**/*.py

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Agent blocks in backend/blocks/ must include: block definition with input/output schemas, execution logic with proper error handling, and tests validating functionality. Blocks inherit from Block base class with input/output schemas, implement run method, use uuid.uuid4() for block UUID, and be registered in block registry

Files:

  • autogpt_platform/backend/backend/blocks/linear/models.py
  • autogpt_platform/backend/backend/blocks/linear/issues.py
  • autogpt_platform/backend/backend/blocks/linear/_api.py
autogpt_platform/**/*.{ts,tsx,js,py}

📄 CodeRabbit inference engine (AGENTS.md)

Avoid comments at all times unless the code is very complex

Files:

  • autogpt_platform/backend/backend/blocks/linear/models.py
  • autogpt_platform/backend/backend/blocks/linear/issues.py
  • autogpt_platform/backend/backend/blocks/linear/_api.py
🧬 Code graph analysis (2)
autogpt_platform/backend/backend/blocks/linear/models.py (1)
autogpt_platform/backend/backend/blocks/apollo/models.py (1)
  • BaseModel (10-20)
autogpt_platform/backend/backend/blocks/linear/_api.py (1)
autogpt_platform/backend/backend/blocks/linear/models.py (1)
  • Issue (47-57)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Seer Code Review
  • GitHub Check: types
  • GitHub Check: test (3.12)
  • GitHub Check: test (3.13)
  • GitHub Check: test (3.11)
  • GitHub Check: Check PR Status
🔇 Additional comments (5)
autogpt_platform/backend/backend/blocks/linear/models.py (1)

47-55: State linkage on Issue looks good.

This aligns cleanly with the expanded API response fields.

autogpt_platform/backend/backend/blocks/linear/_api.py (2)

165-174: Team lookup now fails fast with a clear 404 — nice.


251-298: Search query extensions for max_results/teamId and extra fields look solid.

autogpt_platform/backend/backend/blocks/linear/issues.py (2)

20-20: State import is appropriate for the expanded fixtures and output.


159-196: Updated categories and fixtures align with the new fields.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Comment on lines +138 to 152
max_results: int = SchemaField(
description="Maximum number of results to return",
default=10,
ge=1,
le=100,
)
team_name: str | None = SchemaField(
description="Optional team name to filter results (e.g., 'Internal', 'Open Source')",
default=None,
)

class Output(BlockSchemaOutput):
issues: list[Issue] = SchemaField(description="List of issues")
error: str = SchemaField(description="Error message if the search failed")

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, let's find and read the file
find . -type f -name "issues.py" -path "*/backend/blocks/linear/*"

Repository: Significant-Gravitas/AutoGPT

Length of output: 130


🏁 Script executed:

# Check the file size to understand what we're dealing with
wc -l autogpt_platform/backend/backend/blocks/linear/issues.py 2>/dev/null || find . -type f -name "issues.py" -path "*backend*blocks*linear*" -exec wc -l {} \;

Repository: Significant-Gravitas/AutoGPT

Length of output: 132


🏁 Script executed:

# Read the specific lines mentioned in the review (138-152) and surrounding context
cat -n autogpt_platform/backend/backend/blocks/linear/issues.py 2>/dev/null | sed -n '130,240p' || find . -type f -name "issues.py" -path "*backend*blocks*linear*" -exec sh -c 'cat -n "$1" | sed -n "130,240p"' _ {} \;

Repository: Significant-Gravitas/AutoGPT

Length of output: 4880


🏁 Script executed:

# Find the Block base class
find . -type f -name "*.py" -path "*/backend/blocks/*" | head -5
fd -t f "block.py" "backend"

Repository: Significant-Gravitas/AutoGPT

Length of output: 481


🏁 Script executed:

# Look for the Block base class definition
rg -t py "class Block" --type py -A 10 | head -100

Repository: Significant-Gravitas/AutoGPT

Length of output: 8545


🏁 Script executed:

# Check other blocks in the same directory to see how they handle error outputs
ls -la autogpt_platform/backend/backend/blocks/linear/

Repository: Significant-Gravitas/AutoGPT

Length of output: 679


🏁 Script executed:

# Search for output validation in the Block framework
rg -t py "BlockOutput" --type py autogpt_platform/backend/backend | head -20

Repository: Significant-Gravitas/AutoGPT

Length of output: 1865


🏁 Script executed:

# Find the BlockOutput type definition
rg -t py "BlockOutput\s*=" autogpt_platform/backend/backend/sdk --type py -B 2 -A 5

Repository: Significant-Gravitas/AutoGPT

Length of output: 54


🏁 Script executed:

# Look for how outputs are validated in the executor
cat -n autogpt_platform/backend/backend/executor/manager.py | head -150

Repository: Significant-Gravitas/AutoGPT

Length of output: 5933


🏁 Script executed:

# Search for output schema validation
rg -t py "output_schema" autogpt_platform/backend/backend/sdk -A 5 -B 2

Repository: Significant-Gravitas/AutoGPT

Length of output: 54


🏁 Script executed:

# Check one other block with error handling to see the pattern
cat -n autogpt_platform/backend/backend/blocks/agent.py | grep -A 30 "class Output"

Repository: Significant-Gravitas/AutoGPT

Length of output: 1407


🏁 Script executed:

# Find BlockSchema and BlockSchemaOutput definitions
find . -type f -name "*.py" -path "*/backend/*" -exec grep -l "class BlockSchema\|class BlockSchemaOutput" {} \;

Repository: Significant-Gravitas/AutoGPT

Length of output: 120


🏁 Script executed:

# Look at the block.py or models.py in the sdk
ls -la autogpt_platform/backend/backend/sdk/

Repository: Significant-Gravitas/AutoGPT

Length of output: 502


🏁 Script executed:

# Get more context on BlockOutput and output validation
rg -t py "class BlockOutput|class BlockSchemaOutput|class BlockSchema" autogpt_platform/backend --type py -A 10 | head -100

Repository: Significant-Gravitas/AutoGPT

Length of output: 4419


🏁 Script executed:

# Check another block with error field to see if it always yields error
find . -type f -name "*.py" -path "*/backend/blocks/*" -exec grep -l "error.*SchemaField" {} \; | head -3

Repository: Significant-Gravitas/AutoGPT

Length of output: 1898


🏁 Script executed:

# Look at the ai_condition.py block to see how it handles error
cat -n autogpt_platform/backend/backend/blocks/ai_condition.py | grep -A 20 "class Output"

Repository: Significant-Gravitas/AutoGPT

Length of output: 1123


🏁 Script executed:

# Look at apollo/organization.py to see error handling
cat -n autogpt_platform/backend/backend/blocks/apollo/organization.py | grep -A 20 "class Output"

Repository: Significant-Gravitas/AutoGPT

Length of output: 1045


🏁 Script executed:

# Read the full BlockSchemaOutput definition to understand default behavior
cat -n autogpt_platform/backend/backend/data/block.py | sed -n '1,100p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 3826


🏁 Script executed:

# Check the exact definition of BlockSchemaOutput including the error field
cat -n autogpt_platform/backend/backend/data/block.py | sed -n '95,115p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 924


🏁 Script executed:

# Look at how other blocks that extend BlockSchemaOutput handle the error field
rg -t py "class Output\(BlockSchemaOutput\)" autogpt_platform/backend/backend/blocks -A 5 | head -50

Repository: Significant-Gravitas/AutoGPT

Length of output: 4428


🏁 Script executed:

# Check the issues.py run method more carefully to see all yield paths
cat -n autogpt_platform/backend/backend/blocks/linear/issues.py | sed -n '220,250p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 1314


🏁 Script executed:

# Get the complete BlockSchemaOutput definition
cat -n autogpt_platform/backend/backend/data/block.py | sed -n '140,175p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 1555


🏁 Script executed:

# Check how blocks yield output in error cases - do they yield both fields or just one?
cat -n autogpt_platform/backend/backend/blocks/data_manipulation.py | sed -n '1,50p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 2228


🏁 Script executed:

# Look at a block's run method to see the pattern for both success and error
rg -t py "async def run" autogpt_platform/backend/backend/blocks/data_manipulation.py -A 30 | head -80

Repository: Significant-Gravitas/AutoGPT

Length of output: 3264


🏁 Script executed:

# Let me verify the complete picture - check all the Output schemas that override error
rg -t py "error.*SchemaField" autogpt_platform/backend/backend/blocks -B 5 | head -100

Repository: Significant-Gravitas/AutoGPT

Length of output: 10319


🏁 Script executed:

# Check if there's output validation logic that would enforce required fields
rg -t py "validate.*output|required.*output" autogpt_platform/backend --type py -i | head -20

Repository: Significant-Gravitas/AutoGPT

Length of output: 578


🏁 Script executed:

# Look at the CreateDictionaryBlock pattern more carefully - does it always yield error?
cat -n autogpt_platform/backend/backend/blocks/data_manipulation.py | sed -n '50,80p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 1377


🏁 Script executed:

# Get the exact BlockSchemaOutput definition to confirm the default
cat -n autogpt_platform/backend/backend/data/block.py | sed -n '190,210p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 1082


🏁 Script executed:

# Check if there's validation that enforces required outputs
cat -n autogpt_platform/backend/backend/data/block.py | sed -n '250,350p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 4541


🏁 Script executed:

# Get the complete BlockSchemaOutput definition
cat -n autogpt_platform/backend/backend/data/block.py | sed -n '350,365p'

Repository: Significant-Gravitas/AutoGPT

Length of output: 722


🏁 Script executed:

# Now let's check how outputs are validated when a block finishes execution
rg -t py "validate.*output_name|validate_field" autogpt_platform/backend/backend/executor -A 5 -B 5

Repository: Significant-Gravitas/AutoGPT

Length of output: 54


Make error output field optional and yield it on success.

The error: str field in the Output schema is required (overrides the base class default), but the success path only yields issues. Consider making error optional with default=None and yielding None on success, or remove the override entirely to use the base class definition.

Suggested fix
 class Output(BlockSchemaOutput):
     issues: list[Issue] = SchemaField(description="List of issues")
-    error: str = SchemaField(description="Error message if the search failed")
+    error: str | None = SchemaField(
+        description="Error message if the search failed",
+        default=None,
+    )
             issues = await self.search_issues(
                 credentials=credentials,
                 term=input_data.term,
                 max_results=input_data.max_results,
                 team_name=input_data.team_name,
             )
             yield "issues", issues
+            yield "error", None
🤖 Prompt for AI Agents
In `@autogpt_platform/backend/backend/blocks/linear/issues.py` around lines 138 -
152, The Output schema overrides BlockSchemaOutput by declaring error: str as
required while the success path only yields issues; make the error field
optional so successful yields can include None or omit it: update the Output
class (Output, issues, error) to set error's default to None and type to str |
None (e.g., error: str | None = SchemaField(default=None, description="Error
message if the search failed")), or remove the error override entirely to
inherit the base definition from BlockSchemaOutput; adjust any yields to
explicitly yield error=None on success if you choose the optional field
approach.

Comment on lines +204 to +219
max_results: int = 10,
team_name: str | None = None,
) -> list[Issue]:
client = LinearClient(credentials=credentials)
response: list[Issue] = await client.try_search_issues(term=term)
return response

# Resolve team name to ID if provided
# Raises LinearAPIException with descriptive message if team not found
team_id: str | None = None
if team_name:
team_id = await client.try_get_team_by_name(team_name=team_name)

return await client.try_search_issues(
term=term,
max_results=max_results,
team_id=team_id,
)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove inline comments in search_issues to follow the no-comments rule.

The logic is clear without them.
As per coding guidelines, "autogpt_platform/**/*.{ts,tsx,js,py}: Avoid comments at all times unless the code is very complex".

🧹 Proposed cleanup
-        # Resolve team name to ID if provided
-        # Raises LinearAPIException with descriptive message if team not found
         team_id: str | None = None
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
max_results: int = 10,
team_name: str | None = None,
) -> list[Issue]:
client = LinearClient(credentials=credentials)
response: list[Issue] = await client.try_search_issues(term=term)
return response
# Resolve team name to ID if provided
# Raises LinearAPIException with descriptive message if team not found
team_id: str | None = None
if team_name:
team_id = await client.try_get_team_by_name(team_name=team_name)
return await client.try_search_issues(
term=term,
max_results=max_results,
team_id=team_id,
)
max_results: int = 10,
team_name: str | None = None,
) -> list[Issue]:
client = LinearClient(credentials=credentials)
team_id: str | None = None
if team_name:
team_id = await client.try_get_team_by_name(team_name=team_name)
return await client.try_search_issues(
term=term,
max_results=max_results,
team_id=team_id,
)
🤖 Prompt for AI Agents
In `@autogpt_platform/backend/backend/blocks/linear/issues.py` around lines 204 -
219, Remove the inline comments inside the search_issues implementation: delete
the comment lines "// Resolve team name to ID if provided" and "// Raises
LinearAPIException with descriptive message if team not found" so the function
body only contains the logic that instantiates LinearClient, conditionally sets
team_id via client.try_get_team_by_name(team_name=team_name), and returns
client.try_search_issues(term=term, max_results=max_results, team_id=team_id);
keep all variables and calls (LinearClient, try_get_team_by_name,
try_search_issues, team_id) unchanged.

Comment on lines +39 to +44
class State(BaseModel):
id: str
name: str
type: str | None = (
None # Workflow state type (e.g., "triage", "backlog", "started", "completed", "canceled")
)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove inline comment from State.type to comply with the no-comments rule.

The comment isn’t essential for readability here. Consider leaving just the default value.
As per coding guidelines, "autogpt_platform/**/*.{ts,tsx,js,py}: Avoid comments at all times unless the code is very complex".

🧹 Proposed cleanup
-    type: str | None = (
-        None  # Workflow state type (e.g., "triage", "backlog", "started", "completed", "canceled")
-    )
+    type: str | None = None
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
class State(BaseModel):
id: str
name: str
type: str | None = (
None # Workflow state type (e.g., "triage", "backlog", "started", "completed", "canceled")
)
class State(BaseModel):
id: str
name: str
type: str | None = None
🤖 Prompt for AI Agents
In `@autogpt_platform/backend/backend/blocks/linear/models.py` around lines 39 -
44, Remove the inline comment on the State.type field: in the State model (class
State) remove the trailing comment after the default assignment so the
declaration reads with the default value only (retain type annotation str | None
and default = None); no other changes required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant