Skip to content

Fix/backend#75

Merged
respp merged 3 commits intomainfrom
fix/backend
Jun 20, 2025
Merged

Fix/backend#75
respp merged 3 commits intomainfrom
fix/backend

Conversation

@respp
Copy link
Contributor

@respp respp commented Jun 20, 2025

StellarRent Logo

Pull Request | StellarRent

📝 Summary

Provide a brief description of what this PR accomplishes.

🔗 Related Issues

Closes #(issue number) (Replace with the actual issue number).

🔄 Changes Made

Provide a general description of the changes. Include any relevant background information or context to help reviewers understand the purpose of this PR.

🖼️ Current Output

Provide visual evidence of the changes:

  • For small changes: Screenshots.
  • For large changes: Video or Loom link.

🧪 Testing

If applicable, describe the tests performed. Include screenshots, test outputs, or any resources that help reviewers understand how the changes were tested.

✅ Testing Checklist

  • Unit tests added/modified
  • Integration tests performed
  • Manual tests executed
  • All tests pass in CI/CD

⚠️ Potential Risks

List any possible issues that might arise with this change.

🚀 Next Steps & Improvements

This change lays a solid foundation for further optimizations. Some areas that could benefit from future improvements include:

  • 🔹 Performance optimization
  • 🔹 Increased test coverage
  • 🔹 Potential user experience enhancements

💬 Comments

Any additional context, questions, or considerations for reviewers.

Summary by CodeRabbit

  • New Features

    • Introduced mock mode for blockchain booking availability checks, allowing toggling between real and mock data using an environment variable.
    • Added helper functions to manage mock bookings for testing scenarios.
    • Provided example environment configuration and detailed documentation for backend setup, including mock mode usage.
  • Documentation

    • Added comprehensive Project Requirements Document (PRD) templates and examples for the StellarRent platform.
    • Updated usage instructions to include mock mode configuration.
    • Included detailed comments and explanations in environment example files.
  • Chores

    • Enhanced .gitignore files with additional patterns for logs and editor files.
    • Added configuration and state files for task management and AI operational modes.
    • Expanded test scripts for more granular backend testing.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 20, 2025

Walkthrough

This change introduces a mock mode for blockchain booking availability checks in the backend, controlled by a new USE_MOCK environment variable. It adds mock implementations, updates documentation and configuration files, extends ignore patterns, and provides new templates and operational mode definitions to support testing and modular AI task orchestration.

Changes

File(s) Change Summary
.gitignore, apps/backend/.gitignore Added ignore patterns for Cursor and editor/debug files.
USAGE.md Added USE_MOCK=true to the environment variable documentation.
apps/backend/.env.example New example environment configuration file, including USE_MOCK and detailed backend settings.
apps/backend/.roomodes New file defining custom AI operational modes and permissions for backend task orchestration.
apps/backend/.taskmaster/config.json, apps/backend/.taskmaster/state.json New Taskmaster backend configuration and state tracking files.
apps/backend/.taskmaster/templates/PRD.txt, apps/backend/scripts/PRD.txt Added Project Requirements Documents (PRD) for StellarRent, outlining MVP and technical architecture.
apps/backend/.taskmaster/templates/example_prd.txt New template file for writing Product Requirements Documents.
apps/backend/package.json Expanded and restructured test scripts for granular and composite testing.
apps/backend/src/mocks/bookingContract.ts New mock module for booking contracts with in-memory booking management and availability checks.
apps/backend/src/blockchain/bookingContract.ts Updated to conditionally use the mock booking contract based on USE_MOCK; improved simulation result handling; re-exported helpers.
apps/backend/src/blockchain/types.ts Added new MockBooking interface for mock booking data structure.

Sequence Diagram(s)

sequenceDiagram
    participant Caller
    participant BookingContract
    participant MockBooking as MockBookingContract

    Caller->>BookingContract: checkBookingAvailability(propertyId, from, to)
    alt USE_MOCK=true
        BookingContract->>MockBooking: checkBookingAvailability(propertyId, from, to)
        MockBooking-->>BookingContract: boolean (availability)
        BookingContract-->>Caller: boolean (availability)
    else USE_MOCK=false
        BookingContract->>BookingContract: Validate env & blockchain params
        BookingContract->>BookingContract: Simulate contract invocation
        BookingContract-->>Caller: boolean (availability)
    end
Loading

Possibly related PRs

  • Stellar-Rent/stellar-rent#74: Adds mock infrastructure for booking contract availability checks, updates environment variables to include USE_MOCK, and extends .gitignore with Cursor-related entries.
  • Stellar-Rent/stellar-rent#71: Implements the original blockchain booking availability check, which this PR extends with mock mode and utilities.

Poem

In the backend burrow, a switch now appears,
"USE_MOCK" lets us test without blockchain fears.
Bookings hop in memory, fast as a hare,
With PRDs and configs, we’re ready to dare!
🐇 The code now is nimble, for every test race—
Mock or real, we’re set for the chase!

✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@respp respp merged commit 158abad into main Jun 20, 2025
4 of 8 checks passed
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: 2

🧹 Nitpick comments (9)
USAGE.md (1)

45-47: Suggest clarifying default behavior of USE_MOCK
Good addition of USE_MOCK=true. Consider noting that mock mode is disabled by default (i.e., USE_MOCK=false or unset) for clarity.

apps/backend/.env.example (2)

4-4: Consider stronger placeholder values for security-sensitive keys.

The current placeholders (JWT_SECRET=xyz, secret keys with 'X' patterns) might be accidentally used in production. Consider using more explicit placeholder text.

-JWT_SECRET=xyz
+JWT_SECRET=your_jwt_secret_here_minimum_32_characters
-STELLAR_SECRET_KEY=SXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+STELLAR_SECRET_KEY=SXXXX_REPLACE_WITH_YOUR_STELLAR_SECRET_KEY_XXXX
-SOROBAN_CONTRACT_ID=CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+SOROBAN_CONTRACT_ID=CXXXX_REPLACE_WITH_YOUR_CONTRACT_ID_XXXX

Also applies to: 19-19, 23-23


36-36: Fix missing blank line at end of file.

 USE_MOCK=false
+
apps/backend/.taskmaster/templates/example_prd.txt (1)

29-29: Fix grammar error: use "built" instead of "build".

-- Do not think about timelines whatsoever -- all that matters is scope and detailing exactly what needs to be build in each phase so it can later be cut up into tasks]
+- Do not think about timelines whatsoever -- all that matters is scope and detailing exactly what needs to be built in each phase so it can later be cut up into tasks]
apps/backend/src/__mocks__/bookingContract.ts (1)

46-47: Consider using splice(0) for better performance when clearing large arrays.

-export function clearMockBookings(): void {
-  mockBookings.length = 0;
-}
+export function clearMockBookings(): void {
+  mockBookings.splice(0);
+}

Though both approaches work, splice(0) is more explicit about clearing the entire array.

apps/backend/src/blockchain/bookingContract.ts (1)

13-40: Verify environment variable handling and consider fail-safe defaults.

The conditional initialization based on USE_MOCK is well-structured. However, consider these improvements:

  1. The environment variables are required but only validated when not in mock mode
  2. Consider logging when mock mode is enabled for debugging purposes

Consider adding logging to indicate when mock mode is active:

 const useMock = process.env.USE_MOCK === 'true';
+
+if (useMock) {
+  console.log('Running in mock mode - blockchain calls will be mocked');
+}
apps/backend/scripts/PRD.txt (1)

1-151: Comprehensive PRD with clear technical alignment.

This PRD provides excellent foundation for the StellarRent project with well-defined MVP scope, user personas, and technical architecture that aligns with the blockchain implementation seen in other files.

Minor formatting improvements needed for the data model section:

 - **Tables in Supabase**:
-  - `users`: id, email, name, password_hash, created_at, updated_at.
-  - `profiles`: user_id, name, avatar_url, phone, address, preferences.
-  - `properties`: id, title, description, price, address, city, amenities, images, owner_id, status.
-  - `bookings`: id, property_id, user_id, dates, guests, total, status, created_at.
+  - `users`: id, email, name, password_hash, created_at, updated_at
+  - `profiles`: user_id, name, avatar_url, phone, address, preferences
+  - `properties`: id, title, description, price, address, city, amenities, images, owner_id, status
+  - `bookings`: id, property_id, user_id, dates, guests, total, status, created_at
 - **Smart Contracts in Soroban**:
-  - `PropertyListing`: id, data_hash, owner, status.
-  - `BookingContract`: id, property_id, user_id, start_date, end_date, total_price, status.
+  - `PropertyListing`: id, data_hash, owner, status
+  - `BookingContract`: id, property_id, user_id, start_date, end_date, total_price, status
apps/backend/.roomodes (1)

1-63: Well-structured AI operational mode definitions.

The configuration provides clear role separation and delegation patterns for complex workflow orchestration. The permission groups are appropriately scoped for each mode's responsibilities.

Consider adding validation for the fileRegex pattern in the Architect mode:

The Architect mode restricts editing to markdown files only, which aligns well with its documentation-focused role. However, consider if this restriction might be too limiting for generating other types of technical documentation or configuration files.

apps/backend/.taskmaster/templates/PRD.txt (1)

1-151: Let’s try alternative checksum utilities to confirm duplication:

#!/bin/bash
# Attempt MD5 and SHA256 via shasum or openssl if available
echo "MD5 checksums:"
md5sum apps/backend/scripts/PRD.txt apps/backend/.taskmaster/templates/PRD.txt 2>/dev/null || true

echo "SHA256 via shasum:"
shasum -a 256 apps/backend/scripts/PRD.txt apps/backend/.taskmaster/templates/PRD.txt 2>/dev/null || true

echo "SHA256 via openssl:"
openssl dgst -sha256 apps/backend/scripts/PRD.txt apps/backend/.taskmaster/templates/PRD.txt 2>/dev/null || true
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1ce60f3 and 1a75888.

⛔ Files ignored due to path filters (4)
  • apps/backend/package-lock.json is excluded by !**/package-lock.json
  • apps/web/package-lock.json is excluded by !**/package-lock.json
  • bun.lock is excluded by !**/*.lock
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (14)
  • .gitignore (1 hunks)
  • USAGE.md (1 hunks)
  • apps/backend/.env.example (1 hunks)
  • apps/backend/.gitignore (1 hunks)
  • apps/backend/.roomodes (1 hunks)
  • apps/backend/.taskmaster/config.json (1 hunks)
  • apps/backend/.taskmaster/state.json (1 hunks)
  • apps/backend/.taskmaster/templates/PRD.txt (1 hunks)
  • apps/backend/.taskmaster/templates/example_prd.txt (1 hunks)
  • apps/backend/package.json (1 hunks)
  • apps/backend/scripts/PRD.txt (1 hunks)
  • apps/backend/src/__mocks__/bookingContract.ts (1 hunks)
  • apps/backend/src/blockchain/bookingContract.ts (3 hunks)
  • apps/backend/src/blockchain/types.ts (1 hunks)
🧰 Additional context used
🪛 GitHub Actions: CI
apps/backend/.taskmaster/state.json

[error] 1-7: Prettier formatting check failed. Run 'prettier --write' to fix code style issues.

apps/backend/.taskmaster/config.json

[error] 1-35: Prettier formatting check failed. Run 'prettier --write' to fix code style issues.

apps/backend/package.json

[error] 1-38: Prettier formatting check failed. Run 'prettier --write' to fix code style issues.

🪛 dotenv-linter (3.3.0)
apps/backend/.env.example

[warning] 3-3: [UnorderedKey] The SUPABASE_ANON_KEY key should go before the SUPABASE_URL key


[warning] 4-4: [UnorderedKey] The JWT_SECRET key should go before the PORT key


[warning] 5-5: [UnorderedKey] The SUPABASE_SERVICE_ROLE_KEY key should go before the SUPABASE_URL key


[warning] 11-11: [UnorderedKey] The CLOUDINARY_API_KEY key should go before the CLOUDINARY_CLOUD_NAME key


[warning] 12-12: [UnorderedKey] The CLOUDINARY_API_SECRET key should go before the CLOUDINARY_CLOUD_NAME key


[warning] 36-36: [EndingBlankLine] No blank line at the end of the file

🪛 LanguageTool
apps/backend/.taskmaster/templates/example_prd.txt

[grammar] ~29-~29: The past participle is required after “to be”.
Context: ... and detailing exactly what needs to be build in each phase so it can later be cut up...

(BE_VBP_IN)

apps/backend/.taskmaster/templates/PRD.txt

[uncategorized] ~77-~77: Loose punctuation mark.
Context: ..., created_at, updated_at. - profiles: user_id, name, avatar_url, phone, addre...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~78-~78: Loose punctuation mark.
Context: ..., address, preferences. - properties: id, title, description, price, address,...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~79-~79: Loose punctuation mark.
Context: ...images, owner_id, status. - bookings: id, property_id, user_id, dates, guests...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~82-~82: Loose punctuation mark.
Context: ...sh, owner, status. - BookingContract: id, property_id, user_id, start_date, e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~93-~93: Possible missing comma found.
Context: ... Monitoring: Health checks every 30 seconds with automatic restart on failure. ---...

(AI_HYDRA_LEO_MISSING_COMMA)

apps/backend/scripts/PRD.txt

[uncategorized] ~77-~77: Loose punctuation mark.
Context: ..., created_at, updated_at. - profiles: user_id, name, avatar_url, phone, addre...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~78-~78: Loose punctuation mark.
Context: ..., address, preferences. - properties: id, title, description, price, address,...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~79-~79: Loose punctuation mark.
Context: ...images, owner_id, status. - bookings: id, property_id, user_id, dates, guests...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~82-~82: Loose punctuation mark.
Context: ...sh, owner, status. - BookingContract: id, property_id, user_id, start_date, e...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~93-~93: Possible missing comma found.
Context: ... Monitoring: Health checks every 30 seconds with automatic restart on failure. ---...

(AI_HYDRA_LEO_MISSING_COMMA)

🔇 Additional comments (17)
.gitignore (1)

40-45: Approve new AI-generated ignore patterns
The additions of bun.lockb, .cursor, .clinerules, and .roo entries correctly exclude new tooling artifacts from version control.

apps/backend/.gitignore (1)

35-53: Approve backend-specific ignore enhancements
The Task Master AI–added section cleanly excludes logs, debug files, editor dirs, and node_modules/. The duplicate node_modules/ entry is harmless but could be consolidated later.

apps/backend/src/blockchain/types.ts (1)

1-5: Approve new MockBooking interface
The interface is well-defined with ISO date strings for mock booking entries. It provides clear typing for the mock booking functionality.

apps/backend/.taskmaster/state.json (1)

1-6: JSON structure looks correct for state tracking.

The state file structure appropriately tracks current tag, last switched timestamp, branch mappings, and migration notices for the Taskmaster system.

apps/backend/package.json (3)

11-11: Test script behavior changed - ensure this is intentional.

The main test script now runs unit and integration tests sequentially instead of the original bun test. This changes the default test behavior.


12-14: Well-organized test structure.

The hierarchical test organization with composite scripts (test:all, test:api:all, test:docker:all) provides good modularity and flexibility for different testing scenarios.


11-25: Verify shell script files exist and are executable.

The new test scripts reference shell files that need to be present and executable:

  • ./tests/api/simple.test.sh
  • ./tests/api/endpoints.test.sh
  • ./tests/api/profile.test.sh
  • ./tests/docker/integration.test.sh
  • ./tests/docker/validate.test.sh
#!/bin/bash
# Check if test script files exist and are executable
for script in \
  "./tests/api/simple.test.sh" \
  "./tests/api/endpoints.test.sh" \
  "./tests/api/profile.test.sh" \
  "./tests/docker/integration.test.sh" \
  "./tests/docker/validate.test.sh"; do
  
  if [ -f "$script" ]; then
    echo "$script exists"
    if [ -x "$script" ]; then
      echo "$script is executable"
    else
      echo "$script is not executable"
    fi
  else
    echo "$script does not exist"
  fi
done
apps/backend/.env.example (2)

34-36: Excellent development configuration with USE_MOCK flag.

The USE_MOCK environment variable provides a clean way to toggle between real blockchain calls and mock implementations, which is essential for development and testing.


14-32: Comprehensive Stellar configuration with helpful comments.

The detailed comments for Stellar network configuration, including command examples for key generation and contract deployment, provide excellent developer guidance.

apps/backend/.taskmaster/templates/example_prd.txt (1)

1-47: Well-structured PRD template with comprehensive sections.

The template provides excellent guidance for creating Product Requirements Documents, covering all essential aspects from overview to technical architecture and risk management.

apps/backend/src/__mocks__/bookingContract.ts (3)

11-21: Robust date validation with clear error messages.

The date validation properly handles invalid date strings and ensures logical date ordering with descriptive error messages.


24-37: Correct overlap detection logic.

The overlap detection logic correctly handles all three overlap scenarios:

  1. New booking starts during existing booking
  2. New booking ends during existing booking
  3. New booking completely encompasses existing booking

The logic properly returns !hasOverlap to indicate availability.


41-48: Useful helper functions for testing.

The addMockBooking and clearMockBookings functions provide essential testing utilities for managing mock data state.

apps/backend/src/blockchain/bookingContract.ts (4)

11-11: LGTM: Clean mock import structure.

The conditional import pattern allows for clean separation between mock and real implementations.


47-49: LGTM: Clean early return for mock mode.

The early return pattern is clean and maintains the same function signature regardless of mode.


108-109: LGTM: Proper re-export of mock helpers.

Re-exporting the mock helpers maintains a clean API surface and allows external code to manage mock state.


86-102: Improved simulation result handling with better error resilience.

The updated type guard checking for results array instead of result property is more robust. The error logging and graceful fallback to false improves reliability.

However, verify that the Stellar SDK change from result to results is intentional:

#!/bin/bash
# Verify if this is a breaking change in Stellar SDK usage
rg -r apps/backend -A 5 -B 5 "sim\.result"

Comment on lines +1 to +34
{
"models": {
"main": {
"provider": "anthropic",
"modelId": "claude-3-7-sonnet-20250219",
"maxTokens": 120000,
"temperature": 0.2
},
"research": {
"provider": "perplexity",
"modelId": "sonar-pro",
"maxTokens": 8700,
"temperature": 0.1
},
"fallback": {
"provider": "anthropic",
"modelId": "claude-3-5-sonnet-20240620",
"maxTokens": 8192,
"temperature": 0.1
}
},
"global": {
"logLevel": "info",
"debug": false,
"defaultSubtasks": 5,
"defaultPriority": "medium",
"projectName": "Taskmaster",
"ollamaBaseURL": "http://localhost:11434/api",
"bedrockBaseURL": "https://bedrock.us-east-1.amazonaws.com",
"defaultTag": "master",
"azureOpenaiBaseURL": "https://your-endpoint.openai.azure.com/",
"userId": "1234567890"
}
} No newline at end of file
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

Fix JSON formatting to satisfy Prettier
CI is failing on a Prettier check for this file. Please run prettier --write apps/backend/.taskmaster/config.json (or your project’s format script) to resolve style issues.

🧰 Tools
🪛 GitHub Actions: CI

[error] 1-35: Prettier formatting check failed. Run 'prettier --write' to fix code style issues.

🤖 Prompt for AI Agents
In apps/backend/.taskmaster/config.json lines 1 to 34, the JSON formatting does
not comply with Prettier style rules, causing CI failures. Run the Prettier
formatter on this file using the command `prettier --write
apps/backend/.taskmaster/config.json` or your project's formatting script to
automatically fix indentation, spacing, and other style issues.

Comment on lines +1 to +6
{
"currentTag": "master",
"lastSwitched": "2025-06-16T03:38:45.075Z",
"branchTagMapping": {},
"migrationNoticeShown": false
} No newline at end of file
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

Fix Prettier formatting issues.

The pipeline indicates Prettier formatting errors. Please run prettier --write to resolve the formatting issues.

#!/bin/bash
# Fix formatting issues
cd apps/backend/.taskmaster
prettier --write state.json
🧰 Tools
🪛 GitHub Actions: CI

[error] 1-7: Prettier formatting check failed. Run 'prettier --write' to fix code style issues.

🤖 Prompt for AI Agents
In apps/backend/.taskmaster/state.json lines 1 to 6, the file has Prettier
formatting issues. Run the Prettier formatter on this file by executing
`prettier --write state.json` inside the apps/backend/.taskmaster directory to
fix the formatting errors automatically.

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