Conversation
mesilov
commented
Mar 18, 2026
| Q | A |
|---|---|
| Bug fix? | yes/no |
| New feature? | yes |
| Deprecations? | no |
| Issues | Fix #94 |
| License | MIT |
… for project-level server settings, update `.gitignore`, and enhance project docs with MCP usage instructions. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
… setup steps for `gh` CLI, GitHub MCP, and MCP servers; synchronize `README.md`, `AGENTS.md`, and `docs/tech-stack.md`; introduce environment readiness checklist. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…p and two-step application installation flows: adjust status transitions, consolidate finish-step handling, and update developer documentation with user stories, sequence diagrams, and invariants. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
… transitions, implement distinct flows for single-step and two-step installations, update developer documentation with new user stories, clear finish-flow steps, sequence diagrams, and corner case handling. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…dling for pending installations, implement SDK-compatible `reinstall` flow, update functional and unit tests, and align developer documentation with new contracts and finish-flows. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
… handling for pending installations, establish strict finish-flow sequencing, implement controlled exception paths, update duplicate/mismatch handling, fix `reinstall` flows, revise tests, and update documentation with new canonical flows and sequence diagrams. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…installation handling, canonicalize finish-step flows, add `reinstall` and corner-case logic, improve tests, and extend documentation with detailed user stories and sequence diagrams. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…: introduce in-memory repositories, collecting logger, and spy flusher; replace mocks with real implementations; update unit test logic, assertions, and coverage; standardize handling of pending installations and application tokens. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Bugfix/90 fix app install
Summary of ChangesHello, 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 enhances the application installation mechanism by introducing a more robust and flexible two-step installation flow, alongside the existing one-step process. It addresses a critical bug related to premature installation finalization and clarifies the responsibilities of different use cases. The changes are supported by comprehensive documentation, including sequence diagrams, and a thorough update of unit and functional tests, ensuring reliability and maintainability. Additionally, it standardizes the developer environment by integrating new tooling requirements, improving the overall developer experience and project consistency. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe 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
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 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. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a significant and well-executed refactoring to fix the application installation flow, correctly distinguishing between one-step (with token) and two-step (without token) scenarios. The logic in Install and OnAppInstall handlers is now much clearer and robust, handling various edge cases like reinstalls and duplicate events correctly. The changes are thoroughly covered by a combination of new unit and functional tests, which is excellent. Additionally, comprehensive documentation has been added to explain the new flow. Overall, this is a high-quality contribution that greatly improves the correctness and maintainability of the installation process.
| { | ||
| "mcpServers": { | ||
| "bitrix24-dev": { | ||
| "type": "http", | ||
| "url": "https://mcp-dev.bitrix24.tech/mcp" | ||
| } | ||
| } | ||
| } No newline at end of file |
There was a problem hiding this comment.
Committing configuration files with hardcoded URLs, especially for development environments like mcp-dev.bitrix24.tech, can be problematic. It couples the codebase to a specific environment and might expose internal infrastructure details. Consider using a template file (e.g., .mcp.json.dist) and environment variables to manage environment-specific configurations. This would allow developers to set up their local environments without modifying version-controlled files.
| final class TestLogger extends AbstractLogger | ||
| { | ||
| /** @var array<int, array{message: string, context: array<mixed>}> */ | ||
| public array $warnings = []; | ||
|
|
||
| #[\Override] | ||
| public function log($level, string|\Stringable $message, array $context = []): void | ||
| { | ||
| if ('warning' === $level) { | ||
| $this->warnings[] = [ | ||
| 'message' => (string) $message, | ||
| 'context' => $context, | ||
| ]; | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
This TestLogger class seems to duplicate the functionality of the newly added CollectingLogger in tests/Helpers/CollectingLogger.php. To improve maintainability and reduce code duplication, consider removing this local TestLogger and using the shared CollectingLogger instead. This would ensure a consistent approach to logging and testing across the test suite.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b36baf15a3
ℹ️ 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 "@codex address that feedback".
| if (ApplicationInstallationStatus::active === $applicationInstallation->getStatus()) { | ||
| $this->handleRepeatedEvent($command, $applicationInstallation); | ||
|
|
||
| return; |
There was a problem hiding this comment.
Backfill tokens for legacy active installs
Treating every active installation as a duplicate no-op breaks upgrade compatibility for in-flight UI installs created before this change: previous Install logic could create active account/installation records without a token, and OnAppInstall was the step that persisted the token. With this early return, delayed ONAPPINSTALL events now only log a warning and never save the token, leaving both aggregates permanently tokenless for those installs.
Useful? React with 👍 / 👎.
…form for entity tables, update mappings, tests, and documentation; document breaking changes and manual upgrade steps in `CHANGELOG.md`. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
…and constraints to use `b24lib_` prefix; adapt mappings, tests, and documentation; provide upgrade instructions in `CHANGELOG.md`. Signed-off-by: mesilov <mesilov.maxim@gmail.com>
Feature/93 fix table prefix