Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package agama-web-ui for openSUSE:Factory checked in at 2026-04-01 19:54:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/agama-web-ui (Old) and /work/SRC/openSUSE:Factory/.agama-web-ui.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "agama-web-ui" Wed Apr 1 19:54:57 2026 rev:39 rq:1343949 version:0 Changes: -------- --- /work/SRC/openSUSE:Factory/agama-web-ui/agama-web-ui.changes 2026-03-18 16:50:01.199809299 +0100 +++ /work/SRC/openSUSE:Factory/.agama-web-ui.new.21863/agama-web-ui.changes 2026-04-01 19:55:34.705457084 +0200 @@ -1,0 +2,23 @@ +Tue Mar 24 14:45:14 UTC 2026 - David Diaz <[email protected]> + +- Allow downloading logs and config from the installation finished + page (gh#agama-project/agama#3329). + +------------------------------------------------------------------- +Thu Mar 19 16:35:10 UTC 2026 - David Diaz <[email protected]> + +- Restore PF/Alert default styles, removing some custom overrides + (gh#agama-project/agama#3305). + +------------------------------------------------------------------- +Wed Mar 18 22:29:48 UTC 2026 - Imobach Gonzalez Sosa <[email protected]> + +- Initial support for questions with details (gh#agama-project/agama#3301). + +------------------------------------------------------------------- +Tue Mar 17 17:07:58 UTC 2026 - David Diaz <[email protected]> + +- Show "Unknown" for missing hardware fields + (gh#agama-project/agama#3294). + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ agama.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/package/agama-web-ui.changes new/agama/package/agama-web-ui.changes --- old/agama/package/agama-web-ui.changes 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/package/agama-web-ui.changes 2026-03-24 16:09:40.000000000 +0100 @@ -1,4 +1,27 @@ ------------------------------------------------------------------- +Tue Mar 24 14:45:14 UTC 2026 - David Diaz <[email protected]> + +- Allow downloading logs and config from the installation finished + page (gh#agama-project/agama#3329). + +------------------------------------------------------------------- +Thu Mar 19 16:35:10 UTC 2026 - David Diaz <[email protected]> + +- Restore PF/Alert default styles, removing some custom overrides + (gh#agama-project/agama#3305). + +------------------------------------------------------------------- +Wed Mar 18 22:29:48 UTC 2026 - Imobach Gonzalez Sosa <[email protected]> + +- Initial support for questions with details (gh#agama-project/agama#3301). + +------------------------------------------------------------------- +Tue Mar 17 17:07:58 UTC 2026 - David Diaz <[email protected]> + +- Show "Unknown" for missing hardware fields + (gh#agama-project/agama#3294). + +------------------------------------------------------------------- Tue Mar 17 12:15:23 UTC 2026 - Imobach Gonzalez Sosa <[email protected]> - Version 19 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/assets/styles/index.scss new/agama/src/assets/styles/index.scss --- old/agama/src/assets/styles/index.scss 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/assets/styles/index.scss 2026-03-24 16:09:40.000000000 +0100 @@ -330,41 +330,9 @@ // } :not(.pf-v6-c-alert-group__item) > .pf-v6-c-alert { - --pf-v6-c-alert--m-info__title--Color: var(--agm-t--color--waterhole); - --pf-v6-c-alert__icon--FontSize: var(--pf-t--global--font--size--md); - --pf-v6-c-content--MarginBlockEnd: var(--pf-t--global--spacer--xs); - // --pf-v6-c-alert--BoxShadow: var(--pf-t--global--box-shadow--sm); - --pf-v6-c-alert--BoxShadow: none; - --pf-v6-c-alert--PaddingBlockStart: var(--pf-t--global--spacer--sm); - --pf-v6-c-alert--PaddingBlockEnd: var(--pf-t--global--spacer--sm); - --pf-v6-c-alert--PaddingInlineStart: var(--pf-t--global--spacer--md); - --pf-v6-c-alert--PaddingInlineEnd: var(--pf-t--global--spacer--md); - border-width: 0; - border-radius: 0; - border-inline-start-width: var(--pf-t--global--border--width--box--status--default); - &:has(.pf-v6-c-alert__description) { row-gap: var(--pf-t--global--spacer--xs); } - - $pf-alert-modifiers: "custom", "info", "success", "warning", "danger"; - - @each $modifier in $pf-alert-modifiers { - &.pf-m-#{$modifier} { - background: linear-gradient( - to right in srgb, - color-mix(in srgb, var(--pf-v6-c-alert--m-#{$modifier}--BorderColor), transparent 94%), - color-mix(in srgb, var(--pf-v6-c-alert--m-#{$modifier}--BorderColor), transparent 96%), - color-mix(in srgb, var(--pf-v6-c-alert--m-#{$modifier}--BorderColor), transparent 98%), - transparent - ); - } - } - - &.pf-m-plain { - border: 0; - background: none; - } } .pf-v6-c-alert-group.pf-m-toast { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/core/InstallationFinished.test.tsx new/agama/src/components/core/InstallationFinished.test.tsx --- old/agama/src/components/core/InstallationFinished.test.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/core/InstallationFinished.test.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -102,6 +102,25 @@ screen.getByRole("button", { name: /Reboot/i }); }); + it("shows the installer options menu", async () => { + installerRender(<InstallationFinished />); + screen.getByRole("button", { name: /More installer options/i }); + }); + + it("includes an option for downloading the logs", async () => { + const { user } = installerRender(<InstallationFinished />); + await user.click(screen.getByRole("button", { name: /More installer options/i })); + const menuitem = screen.getByRole("menuitem", { name: /Download logs/i }); + expect(menuitem).toHaveAttribute("download"); + }); + + it("includes an option for downloading the config", async () => { + const { user } = installerRender(<InstallationFinished />); + await user.click(screen.getByRole("button", { name: /More installer options/i })); + const menuitem = screen.getByRole("menuitem", { name: /Download config/i }); + expect(menuitem).toHaveAttribute("download"); + }); + describe("when running storage config in raw mode", () => { beforeEach(() => { mockUseExtendedConfigFn.mockReturnValue(mockStorageConfig("raw", null)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/core/InstallationFinished.tsx new/agama/src/components/core/InstallationFinished.tsx --- old/agama/src/components/core/InstallationFinished.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/core/InstallationFinished.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -32,6 +32,7 @@ } from "@patternfly/react-core"; import Page from "~/components/core/Page"; import RebootButton from "~/components/core/RebootButton"; +import InstallerOptionsMenu from "~/components/core/InstallerOptionsMenu"; import SplitInfoLayout from "~/components/layout/SplitInfoLayout"; import { useExtendedConfig } from "~/hooks/model/config"; import { _ } from "~/i18n"; @@ -43,7 +44,7 @@ const title = _("TPM sealing requires the new system to be booted directly."); return ( - <Alert title={title} variant="danger"> + <Alert isInline title={title} variant="danger"> <Stack hasGutter> <Divider /> <Content isEditorial className={textStyles.fontSizeXl}> @@ -92,7 +93,7 @@ const mountTpmAlert = usingTpm(storageConfig); return ( - <Page variant="minimal"> + <Page noDefaultStartSlot endSlot={<InstallerOptionsMenu hideLabel />}> <Page.Content> <SplitInfoLayout icon="done_all" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/core/IssuesAlert.tsx new/agama/src/components/core/IssuesAlert.tsx --- old/agama/src/components/core/IssuesAlert.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/core/IssuesAlert.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -32,6 +32,7 @@ return ( <Alert + isInline variant="warning" title={_("Before starting the installation, you need to address the following problems:")} > diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/core/LoginPage.tsx new/agama/src/components/core/LoginPage.tsx --- old/agama/src/components/core/LoginPage.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/core/LoginPage.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -99,7 +99,7 @@ /> </FormGroup> {authError && ( - <Alert component="div" variant="danger" title={error.title}> + <Alert isInline variant="danger" title={error.title}> {error.description} </Alert> )} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/core/ProgressBackdrop.tsx new/agama/src/components/core/ProgressBackdrop.tsx --- old/agama/src/components/core/ProgressBackdrop.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/core/ProgressBackdrop.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -158,6 +158,7 @@ <CardTitle> <Alert isPlain + isInline customIcon={<></>} title={ <Flex diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/network/NoPersistentConnectionsAlert.tsx new/agama/src/components/network/NoPersistentConnectionsAlert.tsx --- old/agama/src/components/network/NoPersistentConnectionsAlert.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/network/NoPersistentConnectionsAlert.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -37,7 +37,7 @@ if (persistentConnections !== 0) return; return ( - <Alert variant="custom" title={_("Installed system may not have network connections")}> + <Alert isInline variant="custom" title={_("Installed system may not have network connections")}> {_( "All network connections managed through this interface are currently set to be \ used only during installation and will not be copied to the installed system", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/network/WifiConnectionForm.tsx new/agama/src/components/network/WifiConnectionForm.tsx --- old/agama/src/components/network/WifiConnectionForm.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/network/WifiConnectionForm.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -57,7 +57,7 @@ const PublicNetworkAlert = () => { return ( - <Alert title={_("Not protected network")} variant="warning"> + <Alert isInline title={_("Not protected network")} variant="warning"> <Content component="p"> {_("You will connect to a public network without encryption. Your data may not be secure.")} </Content> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/network/WiredConnectionDetails.tsx new/agama/src/components/network/WiredConnectionDetails.tsx --- old/agama/src/components/network/WiredConnectionDetails.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/network/WiredConnectionDetails.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -118,7 +118,7 @@ {!network && ( <NestedContent margin="mLg"> <Text isBold textStyle="fontSizeMd"> - {_("Network not availble")} + {_("Network not available")} </Text> </NestedContent> )} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/overview/SystemInformationSection.test.tsx new/agama/src/components/overview/SystemInformationSection.test.tsx --- old/agama/src/components/overview/SystemInformationSection.test.tsx 1970-01-01 01:00:00.000000000 +0100 +++ new/agama/src/components/overview/SystemInformationSection.test.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -0,0 +1,103 @@ +/* + * Copyright (c) [2026] SUSE LLC + * + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, contact SUSE LLC. + * + * To contact SUSE LLC about this file by physical or electronic mail, you may + * find current contact information at www.suse.com. + */ + +import React from "react"; +import { screen } from "@testing-library/react"; +import { installerRender } from "~/test-utils"; +import { useSystem } from "~/hooks/model/system"; +import SystemInformationSection from "./SystemInformationSection"; + +const mockUseSystem: jest.Mock<ReturnType<typeof useSystem>> = jest.fn(); + +jest.mock("~/hooks/model/system", () => ({ + ...jest.requireActual("~/hooks/model/system"), + useSystem: () => mockUseSystem(), +})); + +jest.mock("~/components/network/FormattedIpsList", () => ({ + __esModule: true, + default: () => <span>192.168.1.1</span>, +})); + +describe("SystemInformationSection", () => { + describe("when hardware data is available", () => { + beforeEach(() => { + mockUseSystem.mockReturnValue({ + hardware: { + model: "ThinkPad X1 Carbon", + cpu: "Intel Core i7", + memory: 16 * 1024 * 1024 * 1024, + }, + }); + }); + + it("renders the model", () => { + installerRender(<SystemInformationSection />); + screen.getByText("ThinkPad X1 Carbon"); + }); + + it("renders the CPU", () => { + installerRender(<SystemInformationSection />); + screen.getByText("Intel Core i7"); + }); + + it("renders the formatted memory", () => { + installerRender(<SystemInformationSection />); + screen.getByText("16.00 GiB"); + }); + }); + + describe("when hardware data is missing", () => { + beforeEach(() => { + mockUseSystem.mockReturnValue({ + hardware: { + model: undefined, + cpu: undefined, + memory: undefined, + }, + }); + }); + + it("renders 'Unknown' for each missing hardware field", () => { + installerRender(<SystemInformationSection />); + expect(screen.getAllByText("Unknown")).toHaveLength(3); + }); + }); + + describe("when only some hardware data is missing", () => { + beforeEach(() => { + mockUseSystem.mockReturnValue({ + hardware: { + model: "ThinkPad X1 Carbon", + cpu: undefined, + memory: undefined, + }, + }); + }); + + it("renders available fields and 'Unknown' for missing ones", () => { + installerRender(<SystemInformationSection />); + screen.getByText("ThinkPad X1 Carbon"); + expect(screen.getAllByText("Unknown")).toHaveLength(2); + }); + }); +}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/overview/SystemInformationSection.tsx new/agama/src/components/overview/SystemInformationSection.tsx --- old/agama/src/components/overview/SystemInformationSection.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/overview/SystemInformationSection.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -21,19 +21,17 @@ */ import React from "react"; +import xbytes from "xbytes"; +import { isEmpty } from "radashi"; import { Card, CardBody, CardTitle, DescriptionList, + DescriptionListDescription, DescriptionListGroup, DescriptionListTerm, - DescriptionListDescription, - Flex, - DescriptionListTermProps, - DescriptionListDescriptionProps, } from "@patternfly/react-core"; -import xbytes from "xbytes"; import FormattedIPsList from "~/components/network/FormattedIpsList"; import NestedContent from "~/components/core/NestedContent"; import { useSystem } from "~/hooks/model/system"; @@ -43,32 +41,44 @@ type ItemProps = { /** The label/term for this field */ - label: DescriptionListDescriptionProps["children"]; + label: string; /** The value/description for this field */ - children: DescriptionListDescriptionProps["children"]; - /** Additional props passed to the DescriptionListTerm component */ - termProps?: Omit<DescriptionListTermProps, "children">; - /** Additional props passed to the DescriptionListDescription component */ - descriptionProps?: Omit<DescriptionListDescriptionProps, "children">; + children: React.ReactNode; }; /** - * A single item in a `Details` description list. - * - * Wraps a PatternFly `DescriptionListGroup` with `DescriptionListTerm` and - * `DescriptionListDescription`. + * A single item in a `SystemInformationSection` description list. */ -const Item = ({ label, children, termProps = {}, descriptionProps = {} }: ItemProps) => { +const Item = ({ label, children }: ItemProps) => { return ( <DescriptionListGroup> - <DescriptionListTerm {...termProps}>{label}</DescriptionListTerm> - <DescriptionListDescription {...descriptionProps}> - <small className={textStyles.textColorSubtle}>{children}</small> + <DescriptionListTerm>{label}</DescriptionListTerm> + <DescriptionListDescription> + <small className={textStyles.textColorSubtle}> + {isEmpty(children) ? _("Unknown") : children} + </small> </DescriptionListDescription> </DescriptionListGroup> ); }; +/** + * Displays basic hardware information (model, CPU, memory, IPs) in a card. + * + * Fields with missing or undefined values fall back to "Unknown" rather than + * rendering a blank space. + * + * @note A11y: `DescriptionList` renders a `<dl>/<dt>/<dd>` structure. Screen + * reader support is generally good, with the exception of Safari/VoiceOver on + * macOS where virtual cursor navigation exposes each term and description as + * plain text without list semantics. A table-based alternative was evaluated + * but discarded by now: `<th scope="row">` combined with `dataLabel` might + * caused double label announcement for screen reader users, and the component's + * default white background conflicted with the card's secondary variant + * styling. This is a known limitation to revisit if a better PF alternative + * becomes available. + * @see https://adrianroselli.com/2022/12/brief-note-on-description-list-support.html + */ export default function SystemInformationSection() { const { hardware } = useSystem(); @@ -76,20 +86,18 @@ <Card variant="secondary"> <CardTitle component="h3">{_("System Information")}</CardTitle> <CardBody> - <Flex gap={{ default: "gapMd" }} direction={{ default: "column" }}> - <NestedContent margin="mxSm"> - <DescriptionList isCompact> - <Item label={_("Model")}>{hardware.model}</Item> - <Item label={_("CPU")}>{hardware.cpu}</Item> - <Item label={_("Memory")}> - {hardware.memory ? xbytes(hardware.memory, { iec: true }) : undefined} - </Item> - <Item label={_("IPs")}> - <FormattedIPsList /> - </Item> - </DescriptionList> - </NestedContent> - </Flex> + <NestedContent margin="mxSm"> + <DescriptionList isCompact> + <Item label={_("Model")}>{hardware.model}</Item> + <Item label={_("CPU")}>{hardware.cpu}</Item> + <Item label={_("Memory")}> + {hardware.memory ? xbytes(hardware.memory, { iec: true }) : undefined} + </Item> + <Item label={_("IPs")}> + <FormattedIPsList /> + </Item> + </DescriptionList> + </NestedContent> </CardBody> </Card> ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/questions/GenericQuestion.test.tsx new/agama/src/components/questions/GenericQuestion.test.tsx --- old/agama/src/components/questions/GenericQuestion.test.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/questions/GenericQuestion.test.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -39,6 +39,21 @@ defaultAction: "sometimes", }; +const questionWithDetails: Question = { + id: 1, + text: "Failed to fetch the script. Do you want to retry?", + class: "failed-script", + field: { type: FieldType.None }, + actions: [ + { id: "yes", label: "Yes" }, + { id: "no", label: "No" }, + ], + data: { + details: "Some details", + }, + defaultAction: "yes", +}; + const answerFn = jest.fn(); const renderQuestion = () => @@ -51,6 +66,15 @@ await screen.findByText(question.text); }); + describe("if there are details", () => { + it("renders the question details", async () => { + plainRender(<GenericQuestion question={questionWithDetails} answerCallback={answerFn} />); + + await screen.findByText(questionWithDetails.text); + await screen.findByText(questionWithDetails.data.details); + }); + }); + it("sets chosen option and calls the callback after user clicking an action", async () => { const { user } = renderQuestion(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/questions/GenericQuestion.tsx new/agama/src/components/questions/GenericQuestion.tsx --- old/agama/src/components/questions/GenericQuestion.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/questions/GenericQuestion.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -45,9 +45,12 @@ answerCallback(question); }; + const details = question.data?.details; + return ( <Popup isOpen aria-label={_("Question")}> - <Content>{question.text}</Content> + <Content component="p">{question.text}</Content> + {details && <Content>{details}</Content>} <Popup.Actions> <QuestionActions actions={question.actions} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/storage/FixableConfigInfo.tsx new/agama/src/components/storage/FixableConfigInfo.tsx --- old/agama/src/components/storage/FixableConfigInfo.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/storage/FixableConfigInfo.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -51,7 +51,7 @@ ); return ( - <Alert variant="warning" title={title}> + <Alert isInline variant="warning" title={title}> <Description issues={issues} /> </Alert> ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/storage/PotentialDataLossAlert.tsx new/agama/src/components/storage/PotentialDataLossAlert.tsx --- old/agama/src/components/storage/PotentialDataLossAlert.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/storage/PotentialDataLossAlert.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -48,7 +48,7 @@ } return ( - <Alert title={title} variant="danger"> + <Alert isInline title={title} variant="danger"> <Stack hasGutter> {!isCompact && ( <List> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/storage/ProposalFailedInfo.tsx new/agama/src/components/storage/ProposalFailedInfo.tsx --- old/agama/src/components/storage/ProposalFailedInfo.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/storage/ProposalFailedInfo.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -82,7 +82,7 @@ */ export default function ProposalFailedInfo() { return ( - <Alert variant="warning" title={_("Failed to calculate a storage layout")}> + <Alert isInline variant="warning" title={_("Failed to calculate a storage layout")}> <Description /> </Alert> ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/agama/src/components/storage/UnsupportedModelInfo.tsx new/agama/src/components/storage/UnsupportedModelInfo.tsx --- old/agama/src/components/storage/UnsupportedModelInfo.tsx 2026-03-17 15:08:44.000000000 +0100 +++ new/agama/src/components/storage/UnsupportedModelInfo.tsx 2026-03-24 16:09:40.000000000 +0100 @@ -36,7 +36,7 @@ if (config) return null; return ( - <Alert variant="info" title={_("Unable to modify the settings")}> + <Alert isInline variant="info" title={_("Unable to modify the settings")}> <Stack hasGutter> <StackItem> <Content component="p"> ++++++ agama.obsinfo ++++++ --- /var/tmp/diff_new_pack.mtO7kk/_old 2026-04-01 19:55:38.745623857 +0200 +++ /var/tmp/diff_new_pack.mtO7kk/_new 2026-04-01 19:55:38.757624353 +0200 @@ -1,5 +1,5 @@ name: agama -version: 19+0.e4e1132bc -mtime: 1773756524 -commit: e4e1132bc3d19d48ebf6e423d089cce0e78ecf3e +version: 19+69.9fa2aa34c +mtime: 1774364980 +commit: 9fa2aa34c5a7c4e95d5707a1d2ca37716b21c256
