Skip to content

Random fixes#93

Merged
webdevcody merged 4 commits intomainfrom
random-fixes
Dec 14, 2025
Merged

Random fixes#93
webdevcody merged 4 commits intomainfrom
random-fixes

Conversation

@webdevcody
Copy link
Collaborator

No description provided.

- Added a new GitHub Actions workflow for end-to-end (E2E) testing, including setup for Node.js, Playwright, and server initialization.
- Introduced a setup script for E2E test fixtures to create necessary directories and files.
- Integrated CodeMirror for XML syntax editing in the XmlSyntaxEditor component, improving code highlighting and editing experience.
- Updated package dependencies in package.json and package-lock.json to include new libraries for XML handling and theming.
- Refactored various components for improved readability and consistency, including the sidebar and file browser dialog.
- Added tests for spec editor persistence to ensure data integrity across sessions.
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @webdevcody, I'm Gemini Code Assist1! 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 delivers a suite of enhancements and fixes aimed at improving the application's core functionalities. Key updates include a significant upgrade to the XML syntax editor, a more robust E2E testing framework for critical features, and user experience improvements in project navigation. The spec generation process has been refined for better reliability, and new configuration options provide greater control over the application's interface.

Highlights

  • XML Syntax Editor Upgrade: The custom XML syntax editor has been replaced with a more robust integration of @uiw/react-codemirror, enhancing functionality and providing better syntax highlighting. This involved adding several new CodeMirror-related dependencies.
  • Enhanced E2E Testing Infrastructure: New Playwright E2E tests have been introduced to verify the persistence of spec editor changes across application restarts and to validate the full project opening flow via the file browser. A new script (setup-e2e-fixtures.js) was added to prepare test environments.
  • File Browser Improvements: The file browser dialog now includes a direct path input field, allowing users to quickly paste or type a full directory path for navigation, significantly improving usability.
  • Configurable Sidebar Visibility: Environment variables have been added to control the visibility of various sidebar items (e.g., Terminal, Wiki, AI Profiles), offering greater flexibility in UI configuration.
  • Spec Generation Logic Refinements: The spec generation process has been made more resilient with improved state synchronization, error handling, and more precise completion detection during both spec and feature generation.
  • Standardized XML Format for App Specs: A new module (app-spec-format.ts) has been added to define and enforce a strict XML format for app_spec.txt, ensuring consistency and providing clear instructions for AI models during spec generation.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/e2e-tests.yml
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 👍 and 👎 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.

Footnotes

  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.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a variety of valuable improvements, from bug fixes to significant feature enhancements and refactoring. The replacement of the custom XML syntax editor with CodeMirror is a major step forward for maintainability and user experience. The addition of comprehensive E2E tests for the spec editor, along with the necessary setup scripts and configuration, greatly strengthens the project's test suite. Other notable changes include the ability to configure sidebar visibility via environment variables and a UX improvement to the file browser dialog. The code is well-structured and the changes are thoughtfully implemented. I have one suggestion for a minor refactor to improve maintainability in the sidebar component.

Comment on lines +632 to +646
const visibleToolsItems = allToolsItems.filter((item) => {
if (item.id === "spec" && hideSpecEditor) {
return false;
}
if (item.id === "context" && hideContext) {
return false;
}
if (item.id === "profiles" && hideAiProfiles) {
return false;
}
if (item.id === "terminal" && hideTerminal) {
return false;
}
return true;
});
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This series of if statements can be refactored into a switch statement for better readability and structure. This makes it clearer that you are checking against the item.id and makes the logic easier to follow.

    const visibleToolsItems = allToolsItems.filter((item) => {
      switch (item.id) {
        case "spec":
          return !hideSpecEditor;
        case "context":
          return !hideContext;
        case "profiles":
          return !hideAiProfiles;
        case "terminal":
          return !hideTerminal;
        default:
          return true;
      }
    });

…and related libraries

- Added new dependencies for CodeMirror, including lang-xml, theme-one-dark, and various utilities to enhance the XML editing experience.
- Updated existing dependencies to their latest versions for improved functionality and security.
- Included additional modules for better code handling and syntax highlighting.
@webdevcody webdevcody merged commit 590437c into main Dec 14, 2025
3 checks passed
@webdevcody webdevcody deleted the random-fixes branch December 14, 2025 21:15
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