forge icon indicating copy to clipboard operation
forge copied to clipboard

fix: dev-core mode workspace inheritance issue

Open namastex888 opened this issue 3 weeks ago • 2 comments

Summary

  • Fixes dev-core mode failing due to Cargo [patch] breaking workspace inheritance
  • Uses file swapping instead of patching for clean separation

Changes

  • Add Cargo.dev-core.toml files (root, forge-app, forge-extensions/config)
  • Update Makefile to swap 3 Cargo.toml files
  • Add FORGE_WATCH_PATHS support for hot reload of forge-core changes
  • Restore .cargo/config.toml with platform settings

Test plan

  • [ ] make dev-core successfully clones, swaps, and compiles
  • [ ] cargo check passes in dev-core mode
  • [ ] make dev-core-off restores original state
  • [ ] CI pipeline passes

namastex888 avatar Nov 29 '25 23:11 namastex888

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Summary of Changes

Hello @namastex888, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly refactors the dev-core development mode to address a critical problem with Cargo's workspace inheritance when attempting to use local path overrides. By moving away from [patch] directives in .cargo/config.toml and implementing a robust file-swapping strategy for Cargo.toml files, the system now allows forge-app to function as an independent crate. This change ensures that local forge-core dependencies are correctly resolved, providing a more stable and efficient development experience for core components.

Highlights

  • Dev-Core Mode Fix: Resolves an issue where the dev-core development mode failed due to Cargo's [patch] directives interfering with workspace inheritance.
  • Cargo.toml Swapping Mechanism: Replaces the previous .cargo/config.toml patching approach with a file-swapping mechanism for Cargo.toml files, introducing Cargo.dev-core.toml variants for the root, forge-app, and forge-extensions/config.
  • Standalone Forge-App: Configures forge-app to operate as a standalone crate in dev-core mode, allowing it to correctly resolve local forge-core path dependencies without workspace conflicts.
  • Makefile Updates: The Makefile now handles backing up and swapping Cargo.toml files for dev-core activation and deactivation, ensuring a clean transition between development modes.
  • Hot Reload Support: Introduces FORGE_WATCH_PATHS support in scripts/dev/run-dev.sh to enable hot reloading of changes within forge-core crates during dev-core development.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with :thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

[^1]: Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot] avatar Nov 29 '25 23:11 gemini-code-assist[bot]