Skip to content

Conversation

@cs-util
Copy link

@cs-util cs-util commented Oct 13, 2025

This pull request primarily improves project documentation and code formatting standards. The most significant changes are a major rewrite and clarification of the AGENTS.md agent rules and workflow documentation, as well as the introduction of a Prettier configuration file to enforce consistent code style. Additionally, minor formatting and clarity improvements were made to the README.md goals, architecture, and security sections.

Documentation improvements:

  • AGENTS.md: Completely rewritten to clarify coding rules, development workflow, testing approach, and feature development process. Emphasizes a no-build, static workflow, TDD failure loop, and spec-first feature development, with concise, actionable guidelines for contributors.
  • README.md: Reformatted and clarified the MVP goals, non-goals, architecture choices, and security/privacy sections for better readability and maintainability.

Tooling and code style:

  • .prettierrc.json: Added a Prettier configuration to enforce single quotes, trailing commas where valid in ES5, and semicolons, ensuring consistent code formatting across the project.

…RL.createObjectURL, so the app no longer accumulates unreleased blob URLs. Updated iteration-api.test.js expectations to match the new scheme and dropped the unused object URL stubs
…pp.js), and it is removed both when the modal closes and during destroy() so we don’t leak the listener
… forced iteration tiles into a single-column grid, and switched the preview frames to a 3:2 aspect ratio so each render scales tall enough to fill the available space on every screen size
…ead of URL.createObjectURL, so the app no longer accumulates unreleased blob URLs. Updated iteration-api.test.js expectations to match the new scheme and dropped the unused object URL stubs"

This reverts commit 816ea53.
…3/2] utility on the tile preview container in app.js, so the layout stays the same without tripping CSP
…ription that shows only a short preview by default and reveals the full copy plus user notes on demand, reducing visual noise while keeping the annotation flow intact
…eps walls, openings, and ceiling heights fixed to the source photo.

- Documented that reference images serve style cues only and must not influence room geometry.
- Added unit test expectations around the new guardrail language to prevent regressions.
…ction so the "Start generating" button lives directly beneath the Silent Room Brief card.

- Hid the generate-next-iteration bar until the first gallery exists and stopped mounting the compare-final modal until a hi-res candidate is available, keeping the pre-run UI minimal.
- Added layout/unit tests that lock in the new control order and lazy modal creation to catch regressions.
…en class and the native hidden attribute; this keeps the bar truly out of view (and out of the accessibility tree) until an iteration selection exists, matching the Playwright expectation.

Added generate bar toggles the hidden attribute with selection state in app.layout.test.js to lock in the behavior in unit tests
…e summary paragraph and constraint bullets can be tuned before launching a run.

- Added guardrails for constraint rows (add/remove up to five) and wired state updates on input events so iteration prompts reuse the edited text.
- Extended the layout spec to assert the editable controls render with the generated brief content.
…indows, and room entries stay fixed to the source photo.

- Updated prompt unit tests to assert the new guardrail language for future regressions.
…pec and cut redundant architectural guardrails.

- Adjusted iteration prompt unit tests to check the leaner phrasing while keeping geometry preservation coverage.
@gemini-code-assist
Copy link

Summary of Changes

Hello @cs-util, 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 significantly advances the project by transitioning its core functionality to an iterative design workflow, allowing users to refine interior designs through successive rounds of AI-generated variants. This major functional change is complemented by substantial improvements in code quality, maintainability, and documentation. The introduction of a standardized code formatter and updated development tool configurations ensures a more consistent and robust codebase, while rewritten documentation provides clearer guidelines for contributors and users alike.

Highlights

  • Iterative Design Workflow: The project's core functionality has been refactored from an analysis-first approach to a new iterative design workflow. This includes a single photo ingest, optional drag-sort references, silent room brief regeneration, and a 12-tile iterative gallery powered by a diversity deck.
  • User Interface Enhancements: A sticky generate bar with guidance input now appears only when favorites are queued. A modal compare-and-replace finalization process has been added, utilizing hi-res re-renders and build notes. The UI now also features editable inputs for the silent room brief, allowing users to tune the summary paragraph and constraint bullets.
  • AI Integration Updates: New Gemini iteration utilities have been implemented for room brief generation, variant creation, and finalization, featuring resilient text auto-repair and a pool-based runner. Prompt wording has been simplified and guardrails clarified to ensure Gemini maintains fixed room geometry (walls, openings, ceiling heights) and uses reference images solely for style cues.
  • Code Formatting and Quality Tooling: A Prettier configuration has been introduced to enforce consistent code style (single quotes, trailing commas, semicolons). Configuration files for dependency-cruiser, jscpd, eslint, and jest have been updated to exclude generated report directories and align with new quality standards. A new Stryker configuration for mutation testing has also been added.
  • Documentation Improvements: The AGENTS.md file has been completely rewritten to clarify coding rules, development workflow, testing approach, and feature development processes. The README.md has been reformatted and clarified in its MVP goals, non-goals, architecture choices, and security/privacy sections for better readability.
  • E2E Testing Setup: Playwright has been integrated for end-to-end testing, including new scripts in package.json for running e2e tests, capturing artifacts, and running in headed/UI modes. A dedicated Playwright configuration file and a smoke test for index.html have been added.
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

@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 significant improvements to the project's documentation, tooling, and core application logic. The rewrite of AGENTS.md and the introduction of .prettierrc.json establish clearer standards for contributors. The major refactoring to implement the "V2" iterative workflow is well-executed, with new logic cleanly separated into modules like iteration-api.js and iteration-prompts.js. I've identified a critical inconsistency between the README.md and package.json regarding the CSS build step, along with some minor documentation formatting issues that should be addressed. Overall, this is a great step forward for the project's maintainability and clarity.

"check:cycles": "madge --circular --extensions js src",
"check:cycles": "madge --circular --extensions js --exclude '\\.stryker-tmp|playwright-report' src",
"check:boundaries": "depcruise -c config/.dependency-cruiser.js src",
"build:css": "tailwindcss -i ./src/tailwind.input.pcss -o ./styles/app.css --minify",

Choose a reason for hiding this comment

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

high

The build:css script has been removed, but the README.md file still contains instructions to run it. This creates a contradiction in the development setup documentation. Please update README.md to remove the reference to npm run build:css to align with the project's move to using the Tailwind Play CDN, which doesn't require a build step.

- Before PR/release: `npm run validate:all` (tests + checks + mutation)
- Always run commands in a real terminal and include actual output in notes/PRs.
- Source composed of small, focused modules in `src/` (`components/`, `utils/`, ..) with colocated tests
- Frequently during development and before each commit: run `npm test`

Choose a reason for hiding this comment

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

medium

This line has a trailing whitespace character at the end, which should be removed for consistent formatting.

Suggested change
- Frequently during development and before each commit: run `npm test`
- Frequently during development and before each commit: run `npm test`

- Large refactors
- Changing public URLs or Pages config
## TDD Failure loop to use
1. Prefer the simplest fix first

Choose a reason for hiding this comment

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

medium

This line has a trailing whitespace character at the end. Please remove it to maintain consistent formatting.

Suggested change
1. Prefer the simplest fix first
1. Prefer the simplest fix first

@claude please implement the user authentication feature described in this issue
```

### 2. Cursor CLI Agent

Choose a reason for hiding this comment

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

medium

This heading has trailing whitespace. Please remove it for consistent formatting.

Suggested change
### 2. Cursor CLI Agent
### 2. Cursor CLI Agent

- **Purpose:** Structured feature requests with clear requirements
- **Agent-friendly:** Includes implementation guidance and testing strategy

### Bug Report Template

Choose a reason for hiding this comment

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

medium

This heading has trailing whitespace. Please remove it for consistent formatting.

Suggested change
### Bug Report Template
### Bug Report Template

Comment on lines +75 to +77
```
```

Choose a reason for hiding this comment

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

medium

There appear to be some extraneous, empty code fences at the end of this file. These should be removed to clean up the document.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment on lines +93 to +109
async function pool(taskFns, size) {
let cursor = 0;
const running = new Set();

async function launchNext() {
if (cursor >= taskFns.length) return;
const fn = taskFns[cursor++];
const promise = fn().finally(() => running.delete(promise));
running.add(promise);
if (running.size < size) {
await launchNext();
}
}

const starters = Math.min(size, taskFns.length);
for (let i = 0; i < starters; i += 1) {
await launchNext();

Choose a reason for hiding this comment

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

P1 Badge Enforce pool concurrency limit

The new pool helper never respects its size cap. launchNext() already recurses until running.size reaches the limit, but the subsequent loop still invokes launchNext() size additional times. With 12 tasks and size = 6, this loop pushes five more promises, so 11 image-generation requests fire in parallel instead of six, defeating the throttling and increasing the likelihood of rate-limit or timeout errors. The pool should only start size tasks once and enqueue replacements after a running task settles.

Useful? React with 👍 / 👎.

cs-util and others added 3 commits October 13, 2025 21:22
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…css once again compiles tailwind.input.pcss into app.css
@cs-util cs-util merged commit b7e3b63 into main Oct 13, 2025
2 checks passed
@cs-util cs-util deleted the v4 branch October 13, 2025 19:35
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.

2 participants