Skip to content

fix: declare --fields option in job:get command#29

Merged
Vitexus merged 3 commits into
mainfrom
fix/job-get-fields-option
May 6, 2026
Merged

fix: declare --fields option in job:get command#29
Vitexus merged 3 commits into
mainfrom
fix/job-get-fields-option

Conversation

@Vitexus
Copy link
Copy Markdown
Member

@Vitexus Vitexus commented May 5, 2026

Summary

  • The --fields option was used in execute() of job:get but never declared in configure(), causing the error: The "fields" option does not exist.
  • Added ->addOption('fields', ...) to GetCommand::configure() to match the existing usage

Test plan

  • Run multiflexi-cli job:get --id <id> — should work without error
  • Run multiflexi-cli job:get --id <id> --fields name,status — should filter output to specified fields

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • The job:get command accepts an optional --fields parameter to display only the specified job attributes (comma-separated) in both JSON and text output.
  • Chores

    • Added development tooling and testing dependencies.
    • Updated application metadata and added/install icon assets for packaging.

The --fields option was used in execute() but never registered in configure(), causing a runtime error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 5, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 384f471b-2375-4dc4-85f9-31022cbeff0a

📥 Commits

Reviewing files that changed from the base of the PR and between 4277422 and f7729b2.

⛔ Files ignored due to path filters (1)
  • composer.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • composer.json

📝 Walkthrough

Walkthrough

Adds an optional --fields option to job:get to restrict output to named job keys; JSON/text output respect the filter. Also adds dev dependencies in composer.json, includes a package icon and icon install mapping, and applies minor whitespace/heredoc adjustments.

Changes

Job:Get field filtering

Layer / File(s) Summary
CLI Option Configuration
src/Command/Job/GetCommand.php
Adds optional --fields CLI option in configure().
Data Filtering Logic
src/Command/Job/GetCommand.php
execute() parses --fields CSV and filters $job->getData() using array_filter(..., ARRAY_FILTER_USE_KEY).
Output Formatting
src/Command/Job/GetCommand.php
Both JSON and plain-text output use the filtered dataset when --fields is supplied.

Development tooling (dev dependencies)

Layer / File(s) Summary
Dev Dependencies Added
composer.json
Adds require-dev block with: ergebnis/composer-normalize, ergebnis/php-cs-fixer-config, friendsofphp/php-cs-fixer, phpstan/phpstan, phpunit/phpunit.

Debian packaging: icon and install mapping

Layer / File(s) Summary
App Metadata
debian/cz.vitexsoftware.multiflexi-cli.metainfo.xml
Adds <icon type="stock">multiflexi-cli</icon> to component metadata.
Install Manifest
debian/multiflexi-cli.install
Adds install mapping for multiflexi-cli.svgusr/share/icons/hicolor/scalable/apps/.

Minor formatting / non-functional edits

Layer / File(s) Summary
Whitespace in command output
src/Command/CompanyAppCommand.php
Non-functional whitespace/line-break adjustments in list and assign branches.
Heredoc delimiter spacing
src/Command/Encryption/InitCommand.php
Adjusted spacing around heredoc closing delimiter in PDO prepare call.
Whitespace in switch case
src/Command/Job/ListCommand.php
Blank-line/whitespace adjustments in case 'pending' block without behavior change.

Estimated Code Review Effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I nibble commas, prune the rest,
Fields aligned, the output dressed.
JSON neat or plain-text song,
Small hops tidy — quick and strong. 🎋

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly matches the main change: adding the --fields option declaration to the job:get command, which fixes a runtime error where the option was used but not declared.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/job-get-fields-option

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
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: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (5)
src/Command/Job/GetCommand.php (5)

57-58: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Field names parsed from --fields are not trimmed, so --fields name, status silently fails to match status.

explode(',', $fields) preserves surrounding whitespace. Users naturally write --fields name, status and expect both fields.

🛠️ Proposed fix
-            $fieldsArray = explode(',', $fields);
+            $fieldsArray = array_map('trim', explode(',', $fields));
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/Command/Job/GetCommand.php` around lines 57 - 58, The field parsing uses
explode(',', $fields) which leaves surrounding whitespace so entries like "
status" won't match keys; update the parsing before using $fieldsArray by
trimming each element (e.g. replace the explode call with an array_map('trim',
explode(',', $fields)) or equivalent) so $fieldsArray contains trimmed field
names, then keep the existing array_filter($job->getData(), ...,
\ARRAY_FILTER_USE_KEY) logic unchanged.

24-36: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Missing docblocks for the class and both methods.

GetCommand, configure(), and execute() all lack PHPDoc blocks.

🛠️ Proposed fix
+/**
+ * Retrieves a single MultiFlexi job by its ID and outputs its data.
+ */
 class GetCommand extends MultiFlexiCommand
 {
     protected static $defaultName = 'job:get';

+    /**
+     * Configures the command options: id, fields, and format.
+     */
     protected function configure(): void
+    /**
+     * Executes the job:get command.
+     *
+     * `@param` InputInterface  $input  The console input.
+     * `@param` OutputInterface $output The console output.
+     *
+     * `@return` int Command exit code.
+     */
     protected function execute(InputInterface $input, OutputInterface $output): int

As per coding guidelines, "Include a docblock for every function and class, describing its purpose, parameters, and return types."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/Command/Job/GetCommand.php` around lines 24 - 36, Add missing PHPDoc
blocks for the GetCommand class and its configure() and execute() methods: add a
class-level docblock above class GetCommand summarizing its purpose (CLI command
to fetch a job by ID), and add method-level docblocks for configure() describing
the configuration steps and for execute() describing parameters (InputInterface
$input, OutputInterface $output), return type (int) and possible thrown
exceptions; ensure descriptions follow project style and include `@param` and
`@return/`@throws tags where applicable and reference the existing method names
configure and execute in their respective docblocks.

53-61: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

No existence check after loading the job — silently returns empty data with SUCCESS for an unknown ID.

new Job((int) $id) returns an unpopulated object when the ID doesn't exist. The command exits SUCCESS with an empty payload, giving the caller no indication that the job was not found.

🛠️ Proposed fix
         $job = new Job((int) $id);
+
+        if (empty($job->getData())) {
+            if ($format === 'json') {
+                $output->writeln(json_encode(['status' => 'error', 'message' => "Job {$id} not found"], \JSON_PRETTY_PRINT));
+            } else {
+                $output->writeln("<error>Job {$id} not found</error>");
+            }
+
+            return self::FAILURE;
+        }
+
         $fields = $input->getOption('fields');
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/Command/Job/GetCommand.php` around lines 53 - 61, After creating the Job
with new Job((int) $id) in GetCommand, add an existence check on the loaded
object (e.g. inspect $job->getId() or that $job->getData() is non-empty) and if
the job was not found, write a clear error message to the console/output and
return a non-zero status (Command::FAILURE) instead of proceeding to output
empty data; keep the existing fields filtering logic but only run it when the
existence check passes.

67-69: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Text output will raise a warning (or produce "Array") when a job field value is non-scalar.

$v from $job->getData() can be an array or object. String interpolation "{$k}: {$v}" triggers an Array to string conversion notice in PHP 8 and renders the literal string "Array". Serialize complex values before printing.

🛠️ Proposed fix
-            foreach ($data as $k => $v) {
-                $output->writeln("{$k}: {$v}");
-            }
+            foreach ($data as $k => $v) {
+                $scalar = \is_array($v) || \is_object($v)
+                    ? json_encode($v, \JSON_UNESCAPED_UNICODE)
+                    : (string) $v;
+                $output->writeln("{$k}: {$scalar}");
+            }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/Command/Job/GetCommand.php` around lines 67 - 69, Non-scalar job field
values cause an "Array to string conversion" warning when printing "{$k}: {$v}"
from $job->getData(); update the loop in GetCommand (the foreach over $data and
$output->writeln call) to serialize non-scalar values before outputting: for
each $k/$v from $job->getData() check is_scalar/is_null and print directly,
otherwise convert $v to a readable string (e.g. json_encode or var_export) and
then call $output->writeln("{$k}: " . $serializedValue) so arrays/objects are
rendered safely.

24-74: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

PHPUnit test file must be created or updated for the Job\GetCommand class.

The class was modified but no corresponding PHPUnit test file exists. As per coding guidelines, "When creating or updating a class, always create or update its PHPUnit test file." Create tests/src/Command/Job/GetCommandTest.php with appropriate unit tests for this command class.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/Command/Job/GetCommand.php` around lines 24 - 74, Add a new PHPUnit test
file tests/src/Command/Job/GetCommandTest.php that covers GetCommand behavior:
use Symfony\Component\Console\Tester\CommandTester to execute the GetCommand and
assert outputs for (1) missing --id in text mode (expect failure exit code and
"<error>Missing --id</error>"), (2) missing --id in json mode (expect JSON error
with status "error" and message "Missing --id"), and (3) successful retrieval
cases — mock or stub the Job data source so GetCommand (class GetCommand)
returns a predictable array from Job::getData and assert that --fields filters
keys correctly and that --format=json returns pretty JSON while text format
prints "key: value" lines; ensure tests instantiate GetCommand, pass options
'format', 'id', and 'fields' to CommandTester, and assert exit codes
SUCCESS/FAILURE and exact output content.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/Command/Job/GetCommand.php`:
- Around line 32-35: Wrap all user-facing literal strings in GetCommand.php with
the i18n helper `_()`: change the description passed to setDescription('Get a
job by ID') to setDescription(_('Get a job by ID')), and wrap each addOption
label/description values (the format option description 'Output format: text or
json', the id option name/description 'Job ID', and the fields option
description 'Comma-separated list of fields to display') using `_()`. Also
locate the two "Missing --id" messages referenced in the execute/validation
logic and wrap those literal messages with `_()` as well so all displayed
strings go through the i18n layer (target symbols: setDescription, addOption
calls, and the "Missing --id" error messages).

---

Outside diff comments:
In `@src/Command/Job/GetCommand.php`:
- Around line 57-58: The field parsing uses explode(',', $fields) which leaves
surrounding whitespace so entries like " status" won't match keys; update the
parsing before using $fieldsArray by trimming each element (e.g. replace the
explode call with an array_map('trim', explode(',', $fields)) or equivalent) so
$fieldsArray contains trimmed field names, then keep the existing
array_filter($job->getData(), ..., \ARRAY_FILTER_USE_KEY) logic unchanged.
- Around line 24-36: Add missing PHPDoc blocks for the GetCommand class and its
configure() and execute() methods: add a class-level docblock above class
GetCommand summarizing its purpose (CLI command to fetch a job by ID), and add
method-level docblocks for configure() describing the configuration steps and
for execute() describing parameters (InputInterface $input, OutputInterface
$output), return type (int) and possible thrown exceptions; ensure descriptions
follow project style and include `@param` and `@return/`@throws tags where
applicable and reference the existing method names configure and execute in
their respective docblocks.
- Around line 53-61: After creating the Job with new Job((int) $id) in
GetCommand, add an existence check on the loaded object (e.g. inspect
$job->getId() or that $job->getData() is non-empty) and if the job was not
found, write a clear error message to the console/output and return a non-zero
status (Command::FAILURE) instead of proceeding to output empty data; keep the
existing fields filtering logic but only run it when the existence check passes.
- Around line 67-69: Non-scalar job field values cause an "Array to string
conversion" warning when printing "{$k}: {$v}" from $job->getData(); update the
loop in GetCommand (the foreach over $data and $output->writeln call) to
serialize non-scalar values before outputting: for each $k/$v from
$job->getData() check is_scalar/is_null and print directly, otherwise convert $v
to a readable string (e.g. json_encode or var_export) and then call
$output->writeln("{$k}: " . $serializedValue) so arrays/objects are rendered
safely.
- Around line 24-74: Add a new PHPUnit test file
tests/src/Command/Job/GetCommandTest.php that covers GetCommand behavior: use
Symfony\Component\Console\Tester\CommandTester to execute the GetCommand and
assert outputs for (1) missing --id in text mode (expect failure exit code and
"<error>Missing --id</error>"), (2) missing --id in json mode (expect JSON error
with status "error" and message "Missing --id"), and (3) successful retrieval
cases — mock or stub the Job data source so GetCommand (class GetCommand)
returns a predictable array from Job::getData and assert that --fields filters
keys correctly and that --format=json returns pretty JSON while text format
prints "key: value" lines; ensure tests instantiate GetCommand, pass options
'format', 'id', and 'fields' to CommandTester, and assert exit codes
SUCCESS/FAILURE and exact output content.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ca7a94a3-2fb0-4586-985e-c8273d5f9a85

📥 Commits

Reviewing files that changed from the base of the PR and between 7094eb2 and 1760d52.

📒 Files selected for processing (1)
  • src/Command/Job/GetCommand.php

Comment thread src/Command/Job/GetCommand.php
- Added an icon for the MultiFlexi CLI in the metainfo XML.
- Updated the installation file to include the new SVG icon.
- Cleaned up whitespace in CompanyAppCommand and ListCommand classes.
- Fixed formatting in InitCommand for better readability.
Copy link
Copy Markdown
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: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/Command/Encryption/InitCommand.php (1)

59-72: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Algorithm label stored in DB does not match the algorithm actually used — decrypt will fail.

Line 59 encrypts with 'aes-256-cbc', but line 72 records 'aes-256-gcm' in the algorithm column. Any code that later reads this column to choose the decryption cipher will attempt GCM decryption on a CBC ciphertext, producing a decryption failure or corrupted plaintext. The two must be consistent.

🐛 Proposed fix — align the stored algorithm with the actual cipher used

Option A — keep CBC and fix the label:

-            $encryptedKey = openssl_encrypt($key, 'aes-256-cbc', $hashedMasterKey, \OPENSSL_RAW_DATA, $iv);
+            $encryptedKey = openssl_encrypt($key, 'aes-256-cbc', $hashedMasterKey, \OPENSSL_RAW_DATA, $iv);
             // ...
-                 VALUES ('credentials', :key_data, 'aes-256-gcm', NOW(), TRUE)
+                 VALUES ('credentials', :key_data, 'aes-256-cbc', NOW(), TRUE)

Option B — switch to GCM (preferred; authenticated encryption, no separate IV storage needed) and fix the label to match:

-            $iv = random_bytes(16);
-            $hashedMasterKey = hash('sha256', $masterKey, true);
-            $encryptedKey = openssl_encrypt($key, 'aes-256-cbc', $hashedMasterKey, \OPENSSL_RAW_DATA, $iv);
+            $iv = random_bytes(12);          // GCM standard nonce size
+            $tag = '';
+            $hashedMasterKey = hash('sha256', $masterKey, true);
+            $encryptedKey = openssl_encrypt($key, 'aes-256-gcm', $hashedMasterKey, \OPENSSL_RAW_DATA, $iv, $tag);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/Command/Encryption/InitCommand.php` around lines 59 - 72, The DB
algorithm label must match the cipher used: either change the openssl_encrypt
call in InitCommand.php to use 'aes-256-gcm' and update how you persist key_data
(capture the GCM auth tag from openssl_encrypt and store iv|ciphertext|tag in
$keyData before inserting, and set the INSERT algorithm value to 'aes-256-gcm'),
or keep 'aes-256-cbc' by changing the INSERT algorithm value to 'aes-256-cbc' so
it matches the existing openssl_encrypt call; locate the openssl_encrypt usage
(producing $encryptedKey and $iv), the $keyData construction, and the INSERT
into encryption_keys to make the consistent change and ensure any decrypt logic
that reads the algorithm column is updated to expect the chosen format (CBC:
iv|ciphertext; GCM: iv|ciphertext|tag).
🧹 Nitpick comments (1)
src/Command/Encryption/InitCommand.php (1)

22-32: ⚡ Quick win

Missing docblocks on class and methods.

InitCommand, configure(), and execute() have no PHPDoc blocks. As per coding guidelines, every class and function must include a docblock describing its purpose, parameters, and return types.

📝 Proposed docblocks
+/**
+ * Initializes or re-initializes the AES encryption key used for storing credentials.
+ */
 class InitCommand extends BaseCommand
 {
     protected static $defaultName = 'encryption:init';

+    /**
+     * Configures the encryption:init command options.
+     */
     protected function configure(): void
     {
+    /**
+     * Executes the encryption key initialization.
+     *
+     * `@param` InputInterface  $input  Console input
+     * `@param` OutputInterface $output Console output
+     *
+     * `@return` int Command exit code (SUCCESS or FAILURE)
+     */
     protected function execute(InputInterface $input, OutputInterface $output): int
     {

As per coding guidelines: "Include a docblock for every function and class, describing its purpose, parameters, and return types."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/Command/Encryption/InitCommand.php` around lines 22 - 32, Add PHPDoc
blocks for the InitCommand class and its methods: place a class-level docblock
above class InitCommand describing its purpose (initializing/re-initializing
encryption keys), add a docblock above configure() describing what it
configures, and add a docblock above execute() specifying parameters (`@param`
InputInterface $input, `@param` OutputInterface $output) and return type (`@return`
int) plus a short description of the action and behavior; use standard PHPDoc
tags and exact type names (InputInterface, OutputInterface, int) so tooling and
static analysis pick them up.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@composer.json`:
- Line 46: Replace the wildcard PHPUnit constraint to avoid unpredictable major
upgrades: in composer.json update the "phpunit/phpunit": "*" entry to a bounded
major compatible with PHP 8.1/Symfony 6.4 (for example "phpunit/phpunit": "^11")
so CI and local installs remain deterministic; ensure you run composer update
and commit the changed composer.json and composer.lock.

---

Outside diff comments:
In `@src/Command/Encryption/InitCommand.php`:
- Around line 59-72: The DB algorithm label must match the cipher used: either
change the openssl_encrypt call in InitCommand.php to use 'aes-256-gcm' and
update how you persist key_data (capture the GCM auth tag from openssl_encrypt
and store iv|ciphertext|tag in $keyData before inserting, and set the INSERT
algorithm value to 'aes-256-gcm'), or keep 'aes-256-cbc' by changing the INSERT
algorithm value to 'aes-256-cbc' so it matches the existing openssl_encrypt
call; locate the openssl_encrypt usage (producing $encryptedKey and $iv), the
$keyData construction, and the INSERT into encryption_keys to make the
consistent change and ensure any decrypt logic that reads the algorithm column
is updated to expect the chosen format (CBC: iv|ciphertext; GCM:
iv|ciphertext|tag).

---

Nitpick comments:
In `@src/Command/Encryption/InitCommand.php`:
- Around line 22-32: Add PHPDoc blocks for the InitCommand class and its
methods: place a class-level docblock above class InitCommand describing its
purpose (initializing/re-initializing encryption keys), add a docblock above
configure() describing what it configures, and add a docblock above execute()
specifying parameters (`@param` InputInterface $input, `@param` OutputInterface
$output) and return type (`@return` int) plus a short description of the action
and behavior; use standard PHPDoc tags and exact type names (InputInterface,
OutputInterface, int) so tooling and static analysis pick them up.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fa3a9c53-98b8-45e8-aa2f-6f782e02b557

📥 Commits

Reviewing files that changed from the base of the PR and between 1760d52 and 4277422.

⛔ Files ignored due to path filters (2)
  • composer.lock is excluded by !**/*.lock
  • multiflexi-cli.svg is excluded by !**/*.svg
📒 Files selected for processing (6)
  • composer.json
  • debian/cz.vitexsoftware.multiflexi-cli.metainfo.xml
  • debian/multiflexi-cli.install
  • src/Command/CompanyAppCommand.php
  • src/Command/Encryption/InitCommand.php
  • src/Command/Job/ListCommand.php
💤 Files with no reviewable changes (1)
  • src/Command/CompanyAppCommand.php
✅ Files skipped from review due to trivial changes (2)
  • debian/cz.vitexsoftware.multiflexi-cli.metainfo.xml
  • src/Command/Job/ListCommand.php

Comment thread composer.json Outdated
Replaces "*" with "^13" to prevent unpredictable major upgrades.
Matches the version already resolved in the lock file (PHP 8.4 env).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Vitexus Vitexus merged commit 5d39102 into main May 6, 2026
2 of 3 checks passed
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