diff --git a/config/legal.php b/config/legal.php index d4a1f06d2d..ebc40eed3c 100644 --- a/config/legal.php +++ b/config/legal.php @@ -15,6 +15,6 @@ | */ - 'terms_version' => '2026-10-25T00:00:00Z', + 'terms_version' => '2026-11-01T00:00:00Z', ]; diff --git a/resources/js/lib/legal.ts b/resources/js/lib/legal.ts index be08b743b1..1b71cb0773 100644 --- a/resources/js/lib/legal.ts +++ b/resources/js/lib/legal.ts @@ -1,6 +1,6 @@ export const PRIVACY_EFFECTIVE_DATE = '30 October 2026'; -export const TERMS_EFFECTIVE_DATE = '25 October 2026'; +export const TERMS_EFFECTIVE_DATE = '1 November 2026'; export const COMPANY_NAME = 'Nuno Maduro, Unipessoal Lda'; diff --git a/resources/js/pages/terms/show.tsx b/resources/js/pages/terms/show.tsx index 7e6f9d913c..735bcddbbd 100644 --- a/resources/js/pages/terms/show.tsx +++ b/resources/js/pages/terms/show.tsx @@ -18,6 +18,16 @@ function Privacy() { return privacy policy; } +function MobileApps() { + return ( + <> + /dev/null mobile apps for iOS and + Android built by NativePHP (Bifrost Technology, LLC,{' '} + com.nativephp.devnull) + + ); +} + export default function Show() { return ( <> @@ -114,22 +124,23 @@ export default function Show() {

- Our apps, such as{' '} + Our apps are part of the service. They include{' '} /dev/null for Mac - , are part of the service. We let you install and use - them on devices you own or control, only to use the - service, under a personal, non-exclusive, - non-transferable license that ends when your access to - the service ends. Get them only from dev-null.sh. Each - device you approve can act as you until you revoke it in - your settings, and you are responsible for what happens - through it. We may update, limit, or stop offering any - app, and an outdated version may stop working. Apps we - haven't had notarized by Apple ask you to approve them - in macOS before they first open, and you install them at - your own risk. + , from dev-null.sh, and the , from the App + Store and Google Play. These terms apply to all of them. + We let you install and use them on devices you own or + control, only to use the service, under a personal, + non-exclusive, non-transferable license that ends when + your access to the service ends. Get them only from + those places. Each device you approve can act as you + until you revoke it in your settings, and you are + responsible for what happens through it. We may update, + limit, or stop offering any app, and an outdated version + may stop working. Apps we haven't had notarized by Apple + ask you to approve them in macOS before they first open, + and you install them at your own risk.

@@ -138,7 +149,11 @@ export default function Show() { + Sexually abuse or exploit a child, or post, + share, or ask for anything that does. See{' '} + child safety. + , 'Threaten, harass, or abuse anyone, or post hateful, sexual, or violent content.', 'Post engagement bait: posts that fish for stars, replies, or follows instead of saying something.', 'Post low-effort content: one-word posts, the same post over and over, or copy-pasted memes.', @@ -164,6 +179,43 @@ export default function Show() {

+ +

+ We prohibit child sexual abuse and exploitation (CSAE) + everywhere on the service, and we have zero tolerance + for it. That covers dev-null.sh and the , + and everything on them: commits, replies, messages, + images, voice notes, and profiles. A child is anyone + under 18. +

+

You must not use the service to:

+ +

+ To report a child safety concern, use Report in a + commit's menu. For anything else, including a profile or + a message, write to . Tell us where it is, but + don't send copies of any images. If a child is in + immediate danger, contact your local emergency services + first. +

+

+ We act on reports within 24 hours. When we find CSAE, we + remove it and permanently ban the account. We comply + with the child safety laws that apply to us, and report + it to the relevant law enforcement and child protection + authorities, such as the National Center for Missing and + Exploited Children (NCMEC). +

+
+

At our sole discretion, at any time, for any reason or diff --git a/tests/Feature/Controllers/Api/UserTermsControllerTest.php b/tests/Feature/Controllers/Api/UserTermsControllerTest.php index c0761b341f..514d88fff9 100644 --- a/tests/Feature/Controllers/Api/UserTermsControllerTest.php +++ b/tests/Feature/Controllers/Api/UserTermsControllerTest.php @@ -21,7 +21,7 @@ }); it('records that the terms were accepted, and answers as the current user endpoint does', function (): void { - Date::setTestNow('2026-10-25 12:00:00'); + Date::setTestNow('2026-11-01 12:00:00'); $user = User::factory()->create(); $keyPair = apiKeyPairFor($user); @@ -30,7 +30,7 @@ $response->assertOk() ->assertJsonPath('data.terms_accepted', true) - ->assertJsonPath('data.terms_accepted_at', '2026-10-25T12:00:00Z') + ->assertJsonPath('data.terms_accepted_at', '2026-11-01T12:00:00Z') ->assertExactJson(signedApiRequest($keyPair, 'GET', route('api-current-user.show'))->json()); expect($user->refresh()->hasAcceptedCurrentTerms())->toBeTrue();