Repository navigation
CLI: orgs list prints each organization's created_at - #4
Merged
Merged
Conversation
`composio orgs list` printed `[{id, name, is_selected_global_org}]` on a
piped stdout. `listOrganizations` kept only `id` and `name` from
`GET /api/v3.1/org/list`, so the `created_at` the API returns with every
organization never reached the output. The API lists organizations newest
first and marks none as the account's default, so `created_at` is the only
reliable way to find the organization Composio created when the account
signed up: its oldest.
`listOrganizations` now returns `OrganizationListItem`, an
`OrganizationSummary` with the API's `created_at` string unchanged, and
`orgs list` prints it next to the existing three fields. The lines on
stderr are unchanged. `OrganizationSummary` stays `{id, name}`, so the
organization pickers of `login` and `orgs switch`, which also build a
summary from an explicit org ID, compile and behave as before; the login
output still maps `id` and `name` explicitly.
The client test gives each organization its own `created_at` and
`updated_at` and expects exactly `id`, `name` and `created_at`. A new
`orgs list` command test serves two organizations with different
`created_at` values and expects both on stdout with the selected marker
unchanged; the test layer now keeps an organization's own `created_at`
instead of overwriting it with TIMESTAMP. Both tests fail without this
change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Lazurio build now differs from upstream in one more way: `composio orgs list` prints each organization's `created_at`, where upstream (still on `next`) prints only `id`, `name` and `is_selected_global_org`. List it next to the other differences, so the Retirement condition covers it too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
agentrozjedemeai
approved these changes
Oct 26, 2026
agentrozjedemeai
left a comment
There was a problem hiding this comment.
Reviewed exact head c3e8611 against e52fc87. The change carries the API-created timestamp through the typed organization list and adds it only to the JSON output; the human-readable output and organization selection behavior remain unchanged. The API client contract declares created_at as a string. In an isolated clone, the CLI suite passed (1431 passed, 1 skipped), CLI typecheck passed, and oxlint/prettier passed for changed files. Head CI checks passed; no open threads or competing review requests. Non-blocking downstream note: orgs list defaults to 50 entries, so a future consumer selecting the oldest org should handle pagination if accounts can exceed that limit. No merge or release performed.
immakermatty
added a commit
to Lazurio/LazurioPlatform
that referenced
this pull request
Oct 26, 2026
…tes the organizations) The personal Environment's default Composio organization is the account's oldest, which only the `created_at` of `orgs list` tells. Lazurio's build prints it from 0.4.3-lazurio.3 (Lazurio/composio#4, released 2026-10-26 on Matěj's go), so the pin moves there: the version and tag, the installer at the release's own commit 5bcde7de (its install.sh byte for byte the one of 0.4.3-lazurio.2) and the four archives' SHA-256 as the release's checksums.txt lists them and the downloaded archives hash. The catalog's target state names four changes; tests that pin the build, docs/integrations.md, environment-tools.md, launchpad-development.md and the F42 addendum of 2026-10-26 (point 5) follow. An Environment with 0.4.3-lazurio.2 keeps the person's choice until Composio is updated in Settings → Tools, which says it is not the build Lazurio uses. Tests: 646 in the related 44 files pass; check:static passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
immakermatty
added a commit
to Lazurio/LazurioPlatform
that referenced
this pull request
Oct 26, 2026
…osio organization (#661) * Integrace: a personal Environment works in the account's default Composio organization On a personal Environment the Integrace showed the apps of a work Composio organization: Composio's browser sign-in lands in the organization open in Composio's dashboard, often an Organization's one since the person creates those there, and the Launchpad left a personal Environment's organization to the person because the CLI did not say which one is the default (F42, addendum (2) of 2026-10-13, point 7). Root decision 0162 says the personal Environment uses the account's default organization. A Machine binding whose owner is a person now has the rule `default`: the account's default organization is its oldest (Composio marks none and lists the newest first), told by the `created_at` that Lazurio's build of the CLI prints in `orgs list` from 0.4.3-lazurio.3 on. The Integrace reading, the sign-in dialog and every link and removal make it current where another one is, as an Organization's Environment does with the one of its name; the dialog offers no choice there, and the page and agents name it as Composio does. Without a date for each organization, or between two equally old, nothing is guessed and the person's choice stands as before. A computer and Organization and Team Environments are unchanged. F42 addendum of 2026-10-26; docs/integrations.md; the preview's fake Composio dates its organizations. Tests: 160 in the six affected files and 653 in the related 45 pass; check:static passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Integrace: no default Composio organization from a full page of orgs list `composio orgs list` prints one page of Composio's list, at most 50 organizations, the newest first, and the CLI does not page further. A full page may leave out the oldest organizations, the account's default among them, so the rule would take an Organization's one for the default. A list of 50 now tells no default and the person's choice stands, as without dates (Pablo's review of Lazurio/composio#4, a non-blocking note). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Tools: pin Lazurio's Composio CLI build 0.4.3-lazurio.3 (orgs list dates the organizations) The personal Environment's default Composio organization is the account's oldest, which only the `created_at` of `orgs list` tells. Lazurio's build prints it from 0.4.3-lazurio.3 (Lazurio/composio#4, released 2026-10-26 on Matěj's go), so the pin moves there: the version and tag, the installer at the release's own commit 5bcde7de (its install.sh byte for byte the one of 0.4.3-lazurio.2) and the four archives' SHA-256 as the release's checksums.txt lists them and the downloaded archives hash. The catalog's target state names four changes; tests that pin the build, docs/integrations.md, environment-tools.md, launchpad-development.md and the F42 addendum of 2026-10-26 (point 5) follow. An Environment with 0.4.3-lazurio.2 keeps the person's choice until Composio is updated in Settings → Tools, which says it is not the build Lazurio uses. Tests: 646 in the related 44 files pass; check:static passes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Status: ready for review. Lazurio's build of the Composio CLI. Plan: HumanAndMachine-ai Mission Control DEV-6626.
Why
Lazurio's Launchpad has to find a person's default Composio organization, the one Composio creates when the account signs up, and make it current in the person's personal Environment. Otherwise Composio's browser sign-in lands in whichever organization is open in Composio's web dashboard.
The default organization is the account's oldest.
GET /api/v3.1/org/listlists organizations newest first and marks none as the default, socreated_at, which the API returns with every organization, is the only reliable way to tell. The CLI drops it:listOrganizationskeeps onlyidandname, andcomposio orgs listprints[{id, name, is_selected_global_org}].What changes
composio orgs listprints[{id, name, created_at, is_selected_global_org}]on a piped stdout.created_atis the API's string, unchanged (an ISO 8601 date-time).listOrganizationsreturnsOrganizationListItem, anOrganizationSummarypluscreated_at, taken from the typed@composio/clientresponse, which already declares it as a required string.created_atandupdated_atand expects exactlyid,nameandcreated_at;orgs listcommand test expects both organizations'created_aton stdout, the selected marker unchanged, and the unchanged human-readable list on stderr;org.listnow keeps an organization's owncreated_at(the default is stillTIMESTAMP) instead of overwriting it.LAZURIO.mdlists this as the fourth difference from upstream (Release source becomes item 5).What does not change
id,nameandis_selected_global_org, their meaning, and the order of the organizations (the API's).OrganizationSummarystays{id, name}. The organization pickers ofcomposio loginandcomposio orgs switch, which also build a summary from an explicit org ID, compile and behave as before, andcomposio login --pollandorgs switchprint the same JSON as before.updated_at, is added.Verification
created_at; with it they pass. Focused run (pnpm exec vitest runon theorgs list, client, test-layer, login andorgs switchtest files): 45/45.pnpm typecheckat the root: 14/14 tasks, including the CLI's src and test typecheck.pnpm testints/packages/cli: 135 files, 1431 passed, 1 skipped; the skill and lint-boundary validations pass.pnpm lintat the root exits 0 with no findings in the changed files (its 50 warnings are all in untouched files).prettier --checkon all seven changed files is clean.next(d8f820480664) still prints only the other three fields (formatOrganizationsJsonints/packages/cli/src/commands/orgs/list/orgs.list.format.ts); no upstream issue or pull request covers it.@composio/client2.0.0-rc.11) and the v3.1 OpenAPI, wherecreated_atis a required string.After merge
Release
@composio/cli@0.4.3-lazurio.3with the "Lazurio CLI Release" workflow. That is a Release and needs Matěj's go. Lazurio/LazurioPlatform then bumps its pinned build (installer commit and per-target SHA-256). Proposing the change upstream is Matěj's call; upstreamnexthas since movedorgs listintoorgs/list/, so it would be a small port.🤖 Generated with Claude Code