Skip to content

First-run setup checklist for administrators, replacing the currency and time zone dialog #30206

Closed

Description

@objectstack-fleet

epic:#26676#1 · zhuangjianguo · session_cdb7a717def74e719988f089fbaa18ff

Filed on the maintainer's word, verbatim: 「加一个首次配置清单:目前启动时就弹出选择货币很奇怪,一起处理」 (2026-11-05).

From the real-user walkthrough of Setup, on main b7075d9908 unless a line says otherwise.

What a customer sees

  • A new administrator lands on Setup's statistics dashboard, with nothing about what to do first.
  • A dialog asks for the time zone and currency on the first screens, before they have done anything that needs a currency. On the published 18.3.0 it opened right after an invitation and covered the toast saying how to share the link.
  • Defaults disagree. On the test deployment 默认语言 was 英语(美国) and 默认国家 was 美国, beside CNY and Asia/Taipei, while the console itself showed Chinese.
  • Typing 中国 into 默认国家 is refused with an English message, Default country does not match the expected format…. Only the exact list value 中国 (CN) saves.
  • Every invitee reads the default organization name unless someone knows to rename it (First-run flow: small frictions a new deployment's first people meet #30125 row 1).

What exists

ui/apps/console/src/pages/settings/WorkspaceTimezonePrompt.tsx and workspaceTimezonePromptLogic.ts: an administrator is asked once, from objectui#11693's ruling B2 and #28872. Those rulings have reasons this card keeps: the browser's zone is never written silently, and an unset currency must not go unnoticed. What the maintainer's word changes is the form, a dialog at startup.

Expected

  • A checklist for administrators, on the home page or at the top of Setup: company name, language, time zone and currency, email, invite colleagues, and whichever further steps fit. Each row links to its page and shows done from the real setting, not from a click.
  • The time zone and currency dialog goes away. Those two become checklist rows, prefilled from the browser as today, and nothing is written until the administrator confirms.
  • A deployment that never completes the rows still works. The checklist can be dismissed, and it is not shown to members.
  • Language and country defaults follow the same offer, so they do not contradict the currency.
  • 中国 is accepted in the country field, and its refusal text is localized.

The list of rows is for the dev to propose in the PR. #30125 rows 1 and 3 are covered here and should be closed against this card when it lands.

Activity

  1. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: first-touch audit · p3 · domain:ui · pm:queue · 2026-11-05T03:04Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. added
    domain:uiDomain lane — seat card indexed by label:pm:seat
    pm:queueReady for the PM dispatch loop
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 5, 2026
  3. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

    Claim: PM loop round 8 · 2026-11-05T14:16Z
    Session: session_01L6bhgVwQZbHRRM9CaXeKif
    Account: os-sales
    Branch: claude/project-thread-5murn7 (card thread of this project; a thread can push only its designated branch — measured platform exception to claude/issue-<n>-<slug>)
    Worktree: objectstack-issue-30206
    Domain: domain:ui
    Seat: domain:ui#5
    File surface: ui/apps/console/src/pages/settings/WorkspaceTimezonePrompt.tsx + workspaceTimezonePromptLogic.ts (the dialog goes; its logic is reused by the checklist rows) + a new administrator checklist component under ui/apps/console/src/ or ui/packages/app-shell/src/ (home page or the top of Setup) + its mount point + new ui/packages/i18n keys (console namespace, the locales that namespace ships) + their tests + one root .changeset/. ⛔ packages/**: if 「中国」's English refusal in 默认国家 comes from the server's settings validation, the dev reports it and the seat files a domain:server card.
    Container & model: L, mode:thread, model: default, effort: xhigh
    Clause-②: yes (expected: new i18n keys; the dev declares the final arm)
    Metadata-protocol: none
    Responsibility: Console's first-run experience for administrators | a time zone / currency dialog opens on the first screens before anything needs a currency, and nothing says what to set up first | every administrator of a new deployment
    Thread-read: 6648546780
    Premise: holds (on origin/main fa9c0aa2 WorkspaceTimezonePrompt.tsx still opens the dialog; the #30125 os-dev-report measured it opening 0.2–0.3 s after the first /apps)
    Serial constraints: PR #30490 (#30125 item 4, in the merge queue) touches ui/packages/auth and ProtectedRoute.tsx only — no file in common. #30125 rows 1 and 3 close against this card when it lands, as the card says.
    Seat handover: seat 6 (domain:ui#6) passed this card to seat 5 at 14:12Z.
    Ruling kept: the browser's zone is never written silently, and an unset currency must not go unnoticed (objectui#11693 ruling B2, #28872).

    Dispatch order lives in the card thread's opening message.

  4. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

    Claim amendment 1 on #30206 · 2026-11-05T14:18Z

    The dev's check of 「中国」 in 默认国家 found the refusal starts in the console. SettingsField.tsx's DomainCombobox swaps typed text for the option's code only when the text equals the option label (「中国 (CN)」 in the zh pack) or the code, so 「中国」 is submitted as typed. The server then refuses it with invalid_format (packages/services/service-settings/src/settings-service.ts, pattern ^[A-Za-z]{2}$), whose message is not localized.

    File surface grows by the console half: ui/apps/console/src/pages/settings/SettingsField.tsx (a typed country name resolves to its code) and the settings view that renders field errors (a refusal with code invalid_format is drawn from the console's own localized text), with their tests. ⛔ packages/** stays out: the server's pattern check is correct as it is, and the console reading the error by code is what localizes it, so no server card is filed for this item.

  5. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif
    os-dev-report

    {
      "issue": 30206,
      "status": "done",
      "branch": "claude/project-thread-5murn7",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30552",
      "session": "session_01L6bhgVwQZbHRRM9CaXeKif",
      "premise_still_valid": true,
      "summary": "The startup dialog that asked administrators for the system timezone and default currency (WorkspaceTimezonePrompt) is removed. Home now draws an administrator-only first-run checklist with six rows read from real state: organization name, default language and country, system timezone, default currency, email delivery, invite colleagues. The localization rows edit in place with the Settings page's own fields, pre-filled from the browser's first language and zone, and write only on the row's Confirm through the Settings page's PUT; dismissal is a per-device localStorage record. The console half of the 中国 refusal is fixed: a typed option name that exactly one option carries commits that option's code, and an invalid_format refusal is drawn in the console's words and the reader's language on the Settings page and the checklist. Surface beyond the claim, each a reader of what was removed: SetupPage.tsx import, loadLocales.ts comment, four console test mocks, ui/e2e/live/global-setup.ts (its dialog-answering step removed), docs/qa/platform-checklist/RUNNER.md, and three i18n pins (machineLocaleCensus-9909 path, console-copy-system-noun-12956 family, de-quote-pairing-3876 104 to 106).",
      "tests": "On head 9914c31f: pnpm exec vitest run apps/console/src/pages/settings/ apps/console/src/__tests__/ apps/console/src/components/FormPage.routePermissions-29187.test.tsx apps/console/src/pages/auth/ -> Test Files 133 passed (133), Tests 1504 passed (1504). Full console on the 3bcfe085 tree: Test Files 299 passed (299), Tests 2931 passed (2931). pnpm exec vitest run packages/i18n/ -> Test Files 95 passed (95), Tests 1443 passed, 13 skipped. Type-check: @object-ui/console exit 0 (after @object-ui/i18n build), @object-ui/i18n exit 0, type-check:e2e exit 0. New: FirstRunChecklist.test.tsx (10), firstRunChecklistLogic.test.ts (11), SettingsField.domainOptionTypedName-30206.test.tsx (5), settingsFieldRefusals-30206.test.ts (5); updated SettingsView.field-errors, .crypto-unavailable, .refusalToast-13146; removed the three WorkspaceTimezonePrompt test files. Ablations via scripts/ablation-replace.mjs, each restored to the HEAD blob with git diff HEAD empty (console tests import src, no dist leg): name match removed -> 3 failed/2 passed; invalid_format re-wording disabled -> 7 failed; mayWrite ignores writePermission -> member test fails 1/10; isKeySet ignores source -> 7 failed. Live on showcase os dev --fresh + console dev server, 1440, zh-CN and en-US: zh /home shows 2/6 done; typing 中国 in the country box and Confirm sent one PUT {locale: zh-CN, default_country: CN} answered 200 and the row turned done; en Set currency pre-fills USD and writes nothing; /apps/setup 0 dialogs in both; main fa9c0aa2 showed the dialog in both (screenshots in project files issue-30206/).",
      "gates": "node scripts/pm/dispatch-gates.mjs --commands: 42 commands, each run with its exit code recorded before any pipe: 41 exit 0 on df45b9d1; pnpm --dir ui exec vitest run scripts/ first exit 1 (check-vi-mock-inherit: the new test's app-shell mock did not inherit; also a SIGKILL from memory pressure while the dev rig ran), fixed in 9914c31f and re-run on that head exit 0 (Test Files 170 passed, 2 skipped). The list derived on 9914c31f is identical. --ran: 42 derived, 42 run, 0 NOT-MEASURED, 0 UNRUN. CI check-runs on #30552: in_progress at report time, not re-run locally.",
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "reads only — mcp__github__issue_read on #30206 (get, get_comments) and #30125; objectui#11693 is outside this session's scope and was not read; no write tool",
      "api_writes": "2 — fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/pulls, draft, no assignees, no labels) and this os-dev-report comment (POST /repos/objectstack-ai/objectstack/issues/30206/comments); git push is not a REST write",
      "open_questions": [
        {
          "question": "Placement: the checklist is on Home. A deployment whose app declares isDefault lands its administrator in that app, so the checklist is seen on the next visit to Home, not at sign-in. Also draw it at the top of Setup?",
          "options": [
            "A keep Home only (this PR); a follow-up card if isDefault deployments matter",
            "B also mount it at the top of Setup's dashboard (an app-shell change, new claim surface)"
          ],
          "recommendation": "A, because Home is the environment's own home (ADR-0075) and every example deployment lands there; B can follow without changing anything here"
        },
        {
          "question": "Clause-② arm: the changeset declares yes (widening) for the new console i18n keys, with the retired console.workspaceTimezonePrompt.* keys (read only by the removed dialog) named in the same line. Keep, or is the removal judged separately?",
          "options": [
            "A keep yes (widening)",
            "B another arm the seat prefers"
          ],
          "recommendation": "A, matching the 30070 precedent; no reader outside the removed dialog existed"
        }
      ],
      "security_findings": "none",
      "out_of_scope_findings": [
        "carrier: none · noted, not filed — packages/plugins/plugin-auth/src/dev-admin-seed-workspace-timezone.test.ts doc comment still names WorkspaceTimezonePrompt (packages/** out of this card)",
        "carrier: none · noted, not filed — DEFAULT_ORGANIZATION_NAME in firstRunChecklistLogic.ts copies plugin-auth's literal with no pin (a ui test reading packages/** would be an undeclared cross-package input)",
        "carrier: none · noted, not filed — refusal codes other than invalid_format still carry the server's English FieldError.message"
      ]
    }

    Generated by Claude Code

  6. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#5 · os-sales · session_01L6bhgVwQZbHRRM9CaXeKif

    Claim amendment 2 on #30206 · 2026-11-05T15:30Z

    PR #30552 (head 9914c31f) touches files outside the claimed surface. Each one reads the removed dialog, so the seat takes them into the surface:

    • ui/apps/console/src/App.tsx, AppContent.tsx, loadLocales.ts (comment), pages/auth/SetupPage.tsx (import) and four console test mocks that named WorkspaceTimezonePrompt.
    • ui/e2e/live/global-setup.ts (the step that answered the dialog is removed).
    • docs/qa/platform-checklist/RUNNER.md (the checklist run no longer meets the dialog). Not a governed path.
    • Three i18n count tests (machineLocaleCensus-9909, console-copy-system-noun-12956, de-quote-pairing-3876) that count keys this PR adds or retires.

    Seat calls on the dev's two questions:

    Size: +2659 / −1923 = 4582 changed lines, over 3,000, so the PR lands by the end-state set with ③ (approver review), not the ordinary queue.

  7. 10 remaining items

  8. added
    pm:queueReady for the PM dispatch loop
    and removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Nov 6, 2026
  9. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: unlock · pm:blocked → pm:queue · 2026-11-06T05:50Z

    ⛔ Not a claim.


    Generated by Claude Code

  10. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  11. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp

    Claim: PM loop round 2 · 2026-11-06T05:57Z · takeover of PR #30552
    Session: session_01L9qibxW6qraU2Z3mwupUGp
    Account: os-tesla (the card's assignee)
    Branch: the new card thread's designated claude/project-thread-* branch, cut from claude/project-thread-5murn7 @ 2dc81e70, named in a claim amendment once the thread reports it. The old branch belongs to an account out of tokens; a cloud thread can push only its own branch, so the thread opens a superseding PR and the seat closes #30552 with a pointer.
    Worktree: objectstack-issue-30206
    Domain: domain:ui
    Seat: domain:ui#3 (split with domain:ui#2, mailbox #30817 6677724447 / 6677742320), on Tesla 「ui 车道跟进一下 3小时内没更新的pr和已派发的issue,接手处理。」 and 「目前ui车道都在你这里,前任没token了」 (2026-11-06T05:20Z, project "Objectstack security ui")
    File surface: PR #30552's 42 files as reviewed (first-run checklist on Home, the currency and time zone dialog retired), plus any key move into the lazy marketplace namespace the merge needs. ⛔ No ceiling raise on i18n-locale-en. Stop on breach and explain in the report.
    Container & model: L, mode:thread, model: default (opus), effort: high
    Clause-②: no (narrowing) — owes one CONTRACT_REVIEW_TIER review on the final head (the dialog is retired); over 3,000 changed lines, so a governed approver's APPROVED review before the queue
    Metadata-protocol: none
    Responsibility: n/a — not a defect card
    Thread-read: 6678030109
    Premise: holds — Release 6674541420: the PR's only red was check:eager-closure, the budget fix PR #30640 merged as d996c3817e. Unblock path per that Release: merge main, move new marketplace-page strings into the namespace, re-measure, full dogfood + derived gates on the final head, v3 title and body.
    Serial constraints cleared: #30205 (PR #30652, also this seat); #30511 (PR #30595) and #30325 (PR #30545) with domain:ui#2 touch the same language packs: ordinary concurrency, the later lander merges main.
    Resume-from: claude/project-thread-5murn7@2dc81e70

  12. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp

    席位核对 · Amendment · 2026-11-06T05:59Z · claim 6678125188 branch named

    Branch: claude/project-thread-03bt30 (the card thread's designated branch; session session_01L9qibynkEvahBBwY1bFkmH), cut from claude/project-thread-5murn7 @ 2dc81e70, then origin/main merged. Everything else in claim 6678125188 stands.

  13. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp

    席位核对 · Amendment 2 · 2026-11-06T06:11Z · claim 6678125188 Clause-② corrected

    Clause-②: yes (narrowing)

    The claim's Clause-②: no (narrowing) was a seat error. Seat 5's ruling 6662003141 stands and the PR's changeset and body already carry it: the PR widens the published face (new console.firstRunChecklist.* and settingsView.invalidFormat* keys in all ten @object-ui/i18n packs; a typed country name is now accepted) and narrows it (the currency and time zone dialog is retired). Owed before the queue: the CONTRACT_REVIEW_TIER review of the narrowing face on the final head, which also covers the yes declaration; over 3,000 changed lines, so a governed approver's APPROVED review. Everything else in claim 6678125188 stands.

  14. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#3 · os-tesla · session_01L9qibynkEvahBBwY1bFkmH
    os-dev-report

    {
      "issue": 30206,
      "status": "done",
      "branch": "claude/project-thread-03bt30",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/30868",
      "session": "session_01L9qibynkEvahBBwY1bFkmH",
      "premise_still_valid": true,
      "summary": "Takeover of PR #30552 per Release 6674541420 and claim 6678125188. Branch cut from claude/project-thread-5murn7 @ 2dc81e70, origin/main b6182249c3 merged with scripts/pm/os-regen-merge.sh (clean, no conflicts, no os-regen path taken), head e823d8fd9d. The PR adds no marketplace-page strings, so nothing moved into the lazy marketplace namespace. Re-measured: i18n-locale-en 57,233 gz against the unchanged 60,000 ceiling (headroom 2,767); no ceiling touched. No source change on top of the old head; superseding draft PR #30868 carries the v3 title (feat(console)!) and body, Clause-②: yes (narrowing) per the seat's correction 6678424638, and says Supersedes #30552. Main has moved 9 commits since the merge; GitHub reports mergeable_state blocked (draft, checks pending), not dirty, so not re-merged per AGENTS.md §10.",
      "tests": "On e823d8fd9d after a full turbo build (118/118): pnpm --dir ui exec vitest run --maxWorkers=2 apps/console/ packages/i18n/ -> Test Files 402 passed (402), Tests 4540 passed, 13 skipped (lock VERDICT command-exit 0). Type-check: @object-ui/i18n, @object-ui/console, ui type-check:e2e, @objectstack/example-showcase typecheck all exit 0. Console vite build + pnpm --dir ui run check:eager-closure exit 0 (closure 2157.8 KB gz, 103 of 2412 chunks). No ablation re-run: no tested behaviour changed since the #30552 ablations.",
      "gates": "node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack on e823d8fd9d: 58 commands, each run with stdin closed, exit codes captured before any pipe: 58 exit 0 (pnpm --dir ui exec vitest run scripts/ first answered 99, lock not reached while the console tests held it, re-run under the same slot: exit 0, Test Files 170 passed, 2 skipped). --ran: 58 derived, 58 run, 0 NOT-MEASURED. pnpm --dir ui run check:new-line-citations: 0 new. List in project files ui-seat-3/r2026-11-06/30206/gates-ran-e823d8fd.list. PR #30868 check-runs: in_progress at report time, not re-run locally.",
      "dogfood_battery": "e823d8fd9d · os-verify-lock VERDICT command-exit 0 (held 28m35s) · pnpm --filter @objectstack/dogfood test, unsharded · Test Files 424 passed, 3 skipped (427) · Tests 3538 passed, 41 skipped (3579) · no failures",
      "mcp_calls": "reads only: mcp__github__issue_read on #30206 (get, get_comments), mcp__github__pull_request_read on #30552 (get); no write tool",
      "api_writes": "2: fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/pulls, draft, no assignees, no labels; read-back identical 15645 bytes) and this os-dev-report comment (POST /repos/objectstack-ai/objectstack/issues/30206/comments); git push is not a REST write",
      "deviations": "The eight commits carried over from #30552 name the card in their subjects; landed history is not rewritten. The v2 body files named in Release 6674541420 (project files issue-30206/) are not in this project's files and #30552 still carries v1, so v3 was rebuilt from v1 plus the v2 changes the reports and claim amendments 2 and 3 record.",
      "open_questions": [],
      "security_findings": "none",
      "out_of_scope_findings": [
        "unchanged from the #30552 reports: the three noted, not filed findings stand"
      ]
    }
  15. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp

    维护者速读

    • 改了什么:管理员打开首页(/home)时,顶部出现一张「完成初始设置」清单(组织名称、默认语言和国家、系统时区、默认货币、邮件发送、邀请同事),原来一进系统就弹出的时区/货币对话框删掉了;在默认国家里输入「中国」现在能保存为 CN,格式错误的提示改成读者的语言。
    • 为什么改:维护者原话「加一个首次配置清单:目前启动时就弹出选择货币很奇怪,一起处理」;新部署的管理员不知道先设什么,默认语言、国家和货币还会互相矛盾。
    • 风险与回滚:只动控制台、语言包、两处 e2e 准备脚本和一页 QA 文档,不动服务端;清单只读设置,只有点「确认」才写,写的就是设置页同一个 PUT。语言包删掉对话框的 14 个键,属 TypeScript 层面的收窄,changeset 写明了迁移。首屏英文包 57,233 / 60,000 gz,上限未动。回滚即撤本 PR,弹窗回来。
    • 先看:ui/apps/console/src/pages/settings/FirstRunChecklist.tsx(读取与只在确认时写入)和 firstRunChecklistLogic.ts(每行何时算完成)。
    • 两分钟验证:os dev --fresh 后用管理员登录,打开 /home,顶部应有清单;中文浏览器下在「默认语言和国家/地区」点「设置」,国家框输入「中国」点「确认」,应提示已保存、该行打勾,Setup 页不再弹任何对话框。
    • 需要你做的:改动 4,694 行(42 个文件),超过 3,000 行人工合并线,请用 os-zhuang 在 feat(console)!: an administrator's first-run checklist on Home replaces the currency and time zone dialog #30868 上批准;批准后席位入队落地。
    • 席位意见:可合。合并后另有一处 QA 文档(docs/qa/platform-checklist/areas/studio-authoring.json 第 3687 行)还写着关掉旧弹窗,席位随后补一个小修正,不挡本 PR。

    席位核对 — ACCEPT · head e823d8f

  16. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:ui#3 · os-tesla · session_01L9qibxW6qraU2Z3mwupUGp

    Landed 2026-11-06T08:17Z: PR #30868 merged through the merge queue as 18870c9289 (2026-11-06T08:16:25Z on the PR; readied and enqueued by os-zhuang at 07:59Z after the seat's ACCEPT 6680112511 and same-head CONTRACT_REVIEW_TIER PASS 6679836310 on e823d8fd). The PR said Fixes #30206, so the card is closed. pm:dispatched removed here and pm:awaiting-merge removed from the PR in this round. #30552 was closed as superseded.

    probe reading
    git ls-tree --name-only origin/main ui/apps/console/src/pages/settings/ FirstRunChecklist.tsx and firstRunChecklistLogic.ts present, WorkspaceTimezonePrompt.tsx gone

    #30125 rows 1 (organization name) and 3 (the dialog over the toast) are covered by this landing; that card is already closed under domain:devx. Left from the contract review: docs/qa/platform-checklist/areas/studio-authoring.json:3687 still tells QA runners to dismiss the retired currency prompt; the seat carries it as a docs-only follow-up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain:uiDomain lane — seat card indexed by label:pm:seatenhancementNew feature or requestpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions