AGPL source offer, notices and name cleanup
Every build writes the exact tree it was built from, uncommitted work included, as source.tar.gz next to the app, and names that tree. The sidebar, user menu, sign-in card and version tooltip link to it. Coffey Labs' copyright line is added below Stalwart Labs' in every inherited file changed, and the new files carry Coffey Labs' alone. The upgrade prompt and its links are gone, the edition tooltip is neutral, storage keys and the package description are INBUXA's own, and the README states the lineage once, in the fine print.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
|
||||
* SPDX-FileCopyrightText: 2026 Coffey Labs
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
||||
*/
|
||||
@@ -13,7 +14,7 @@ import {
|
||||
} from '@/lib/layout';
|
||||
import type { Layout, Schema } from '@/types/schema';
|
||||
|
||||
const STORAGE_KEY = 'stalwart-last-visited';
|
||||
const STORAGE_KEY = 'inbuxa-last-visited';
|
||||
|
||||
function readAll(): Record<string, unknown> {
|
||||
try {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
|
||||
* SPDX-FileCopyrightText: 2026 Coffey Labs
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
|
||||
* SPDX-FileCopyrightText: 2026 Coffey Labs
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
|
||||
* SPDX-FileCopyrightText: 2026 Coffey Labs
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
||||
*/
|
||||
@@ -924,7 +925,7 @@ const structSchema: Schema = {
|
||||
allowInvalidCerts: { description: '', type: { type: 'boolean' }, update: 'mutable' },
|
||||
},
|
||||
defaults: {
|
||||
bucket: 'stalwart',
|
||||
bucket: 'mail',
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -959,7 +960,7 @@ describe('buildNewObjectValue', () => {
|
||||
it('seeds the first variant with its @type, defaults and booleans', () => {
|
||||
expect(buildNewObjectValue(structSchema, 'x:Store')).toEqual({
|
||||
'@type': 'S3',
|
||||
bucket: 'stalwart',
|
||||
bucket: 'mail',
|
||||
allowInvalidCerts: false,
|
||||
});
|
||||
});
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
|
||||
* SPDX-FileCopyrightText: 2026 Coffey Labs
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
|
||||
*/
|
||||
@@ -10,7 +11,7 @@ const SIEVEPAD_FORMAT_VERSION = 1;
|
||||
const SIEVEPAD_MAX_NAME_LENGTH = 80;
|
||||
const SIEVEPAD_MAIN_SCRIPT = 'main';
|
||||
const BASE64_CHUNK_SIZE = 0x8000;
|
||||
const WARNING_DISMISSED_KEY = 'stalwart-sievepad-warning-dismissed';
|
||||
const WARNING_DISMISSED_KEY = 'inbuxa-sievepad-warning-dismissed';
|
||||
|
||||
const SIEVE_SCRIPT_FIELDS: Record<string, string> = {
|
||||
'x:SieveSystemScript': 'contents',
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2026 Coffey Labs
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
import { getBasePath } from '@/lib/basePath';
|
||||
|
||||
/** Where this build's own source is: written next to the app at build time (see source-archive.ts). */
|
||||
export function sourceDownloadUrl(): string {
|
||||
return `${getBasePath()}/source.tar.gz`;
|
||||
}
|
||||
Reference in New Issue
Block a user