Condition One Privacy Policy

Effective date: 18 October 2026 App: Condition One for iPhone ("the app"). The App Store listing name is "Condition One: News Alerts". Who runs it: Condition One is run by Code Annex. Contact: conditiononenews@thecodeannex.com

The short version

1. What stays on your iPhone

Your topic, region, and company choices; whether you hide state-run or government-funded media; the confirmation level your feed shows; your muted words; the people, places, and searches you follow; the stories you follow for change alerts; the stories you muted and any alert snooze; the language you chose for article warnings (or “match this phone”); the stories you save; which stories you opened and when you last used the app (so the feed can show unread and new stories); a random install code in the app's own storage (used so each phone can send one report, one read, and one reaction per story, and to count error reports per phone); quiet-hours, brief, and alert switches; and the last news feed the app downloaded (so it can show something when you're offline). Expo's update and notification libraries also keep their own random codes on the phone (section 8). Deleting the app deletes all of these, with one exception: if you ever turned on alerts, a brief, or a story follow, Expo's notification library keeps its random installation code in the iPhone's keychain, which iOS can keep after an app is deleted. That code is sent nowhere unless you reinstall the app and turn one of those on again (section 8). Versions of the app before 15 October 2026 also kept a copy of the install code in the keychain; the app deletes that copy the next time it opens. iCloud backups may include these under Apple's privacy policy.

Company tags are not sent to the server. Muted words, followed people, places, and searches, stories you follow, mute, and save, your feed regions and topics, and the brief times are sent only if you turn on breaking alerts, a brief, or follow a story, as described in section 3.

2. What Code Annex's server sees when the app loads news

To show the news, the app downloads stories, the list of sources, trends, and ship incidents from Code Annex's server at https://conditionone.thecodeannex.com (Oracle Cloud, US West, Phoenix); older versions of the app reach the same server at https://129-146-112-213.sslip.io. The Home Screen and Lock Screen widgets download the newest three stories the same way. Each request includes only what the app needs to answer it: how many stories to send, sort order, which story, and whether you hide state-run or government-funded media. When you use Search, the request includes the words you typed; the server program answers and does not store them (the front-door log below does record the request). The App Store version has no Commodities tab. These requests do not include your name, Apple Account, or a stable identifier.

Like any website, the server receives your IP address when the app connects. The app's server program does not write IP addresses to disk. To limit abuse it keeps short-lived counts of request IP addresses in memory only, for these requests: alert settings (30 per 10 minutes), Report a problem and Request an X account (10 an hour each, also counted per phone code), reads and reactions (30 per 10 minutes per IP address, 60 per phone code), and error reports (30 an hour). Those counts are discarded when the window ends or the server restarts. They are not used to identify you.

Access logs. The https front door on the Oracle Cloud machine logs each request: the IP address, the time, the address requested (which includes any search words and the code of the story opened), the response, and the app name, app build, and iOS version that iPhone apps send with every request. It does not log push tokens, install codes, notes, or anything else sent inside a request. How long: 7 days, only to keep the service secure and working, unless needed longer to investigate a specific security incident. Logs are not combined with push tokens or install codes, not used to work out where you are, and not used for advertising.

Backups. The server's data files (the push records in section 3, the reports and requests in section 4, the read and reaction records in section 5, and the error reports in section 6) are backed up every night on the same server. Each backup is kept for 7 days, so something deleted from the server is gone from the backups within 7 days. When Code Annex updates the server program, the previous version of the program is kept so the update can be undone if it fails; that copy contains none of these data files, and older versions are deleted.

Ship incidents. The ship markers on the map show the public incident list of UK Maritime Trade Operations (UKMTO). Code Annex's server keeps a copy of that list, and the app downloads it only from the server above, about every 5 minutes while the map is open, like the rest of the news. The app does not contact UKMTO, so UKMTO does not receive your IP address. Versions of the app before 15 October 2026 loaded the list directly from UKMTO's website (sccd.royalnavy.mod.uk), which then received the phone's IP address and nothing else; UKMTO's own privacy notice applies to those requests.

AI editor. Code Annex's server uses an AI model (Anthropic's Claude, through Anthropic's API, with a model running on Code Annex's own server as backup) to group reports into stories, decide which stories are on topic, place war events on the map, translate headlines from other languages, and check public X posts shown as tips. It does not write summaries (since Oct 15, 2026). It receives public news headlines and public posts only, never anything about you or your device. Your notes in Report a problem are never sent to it.

3. Push notifications (only if you turn them on)

Notifications are off until you allow them. The feed, map, and story screens work fully without them. Permission is asked on a later onboarding step (or in Settings), not the moment the app first opens.

If you allow them, the app first gets this iPhone's push address from Apple and sends it to Expo, with a random installation code made by Expo's notification library and the app's id. Expo returns an Expo push token. The app then sends Code Annex's server:

To send what you asked for, the server keeps these records with the token:

Why: only to send the news alerts you asked for. Code Annex will not send marketing or promotional notifications unless you separately agree to them in the app, and you can turn alerts off at any time. Who else handles it: notifications are relayed through Expo's push service (Expo, by 650 Industries, Inc.), which receives the push token and the notification text in order to deliver it. Apple then delivers them through the Apple Push Notification service. How long: until you turn breaking alerts, the briefs, and story follows off in the app, or turn off notification permission (the app then unregisters the next time you open it). Unregistering deletes the token and every record listed above. If you delete the app, Code Annex deletes the token the next time Apple or Expo reports that it no longer works (DeviceNotRegistered). The three are separate: with breaking alerts off and a brief or a story follow still on, the server keeps the token and your choices to send those, sends no breaking alerts, and deletes the stories it was holding for a breaking-alert summary or for the end of quiet hours.

If a brief is on and Code Annex's server does not send it (for example, this phone has no push token), the brief is scheduled as a local daily alert on the phone and is not sent through Code Annex's server.

Test versions of the app (TestFlight) also have an owner sign-in, used only by Code Annex on its own phone: it sends the owner password once with that phone's push token, and the server marks that one token as the owner's. The App Store version does not have it, and readers never need it.

Share pages. Anyone with a share link can open a public page for that story (/s/ plus the story's code) on Code Annex's server. That page shows the headline (credited to its outlet), the summary when the story has one, and the source links already in the app. Opening it is like loading any web page: the front door logs the request as described in section 2. The page does not set cookies and does not ask who you are.

4. Reporting a problem with a story

Each story has a Report a problem button. If you send a report, the app sends Code Annex's server:

The server stores the report with the story's code and headline. Why: only to find and fix wrong stories. When several people say a story mixes different events, the AI editor in section 2 checks its headlines again; your note is never sent to the AI editor. How long: 90 days, then the report is deleted. The server counts reports per IP address and per phone code in memory only (10 an hour), to stop abuse; that count is not written to disk.

Settings also has Report a wrong story, which opens your own email app with a message addressed to conditiononenews@thecodeannex.com. Nothing is sent unless you send that email. If you do, Code Annex receives your email address and what you wrote, and uses them only to answer you and fix the story.

Request an X account (Settings → Sources) works the same way: the app sends the accounts you suggest (up to 5 at a time), what you say each covers (up to 200 characters), whether you said it is your own, and the random install code, which the server stores only in scrambled form (scrambled differently from reports). If you say an account is your own, the server keeps that X username with your request, marked as yours: an X username can identify you, so only say so if you are happy for Code Annex to know it. Why: only so Code Annex can decide which accounts to follow; the requests and the count of phones asking for each account are visible only to Code Annex. How long: a year. Requests are counted per IP address and per phone code in memory only (10 an hour).

5. Reads and reactions

Each story can show how many phones opened it (only from 10 up, for example "Read by 1.2K people") and five fixed reactions: Sad, Worrying, Surprising, Hopeful, Important. Each phone can pick one reaction per story; tap it again to remove it. There are no comments.

When you open a story or tap a reaction, the app sends Code Annex's server:

Why: only to show these anonymous counts on the story. The counts are never used to rank the feed, mark a story Breaking, set its confirmation level, or decide alerts. How long: while the story is live or in the search archive (90 days); a story's counts are dropped once it has left both. The server also counts these requests per IP address and per install code in memory only (30 per 10 minutes per IP, 60 per 10 minutes per phone), to stop abuse; that count is not written to disk.

6. Error reports

When something in the app breaks (an error the app's code did not catch, or a screen that failed to draw), the app sends Code Annex's server an error report. This happens in App Store and TestFlight versions, never in development versions, at most 5 times until the app is restarted, and at most once every 10 minutes for the same error. The report contains:

Error messages describe what the app's own code was doing; they can mention a story's code or a web address the app was loading. The app does not add your settings, your notes, or anything else you typed. Why: only to find and fix bugs. Only Code Annex can read the reports. They are not sent to the AI editor and are not linked to your push token. How long: 14 days (and at most the newest 500 reports in all), then deleted.

7. Links to other websites and apps

When you tap a source link, it opens in Safari. Those sites have their own privacy policies, which Code Annex does not control. Request an X account can also open a search on X in Safari, and Report a wrong story opens your email app.

8. Expo: app updates and notifications

The app is built with Expo's tools and uses two Expo services (Expo, by 650 Industries, Inc.):

Expo handles this data under its own privacy policy and terms, as a service provider for Code Annex.

9. Crash reports from Apple

If you have chosen in iOS Settings to share analytics with app developers, Apple may also send Code Annex anonymous crash reports and usage statistics. That is controlled by you in iOS (Settings > Privacy & Security > Analytics & Improvements) and handled under Apple's privacy policy. Apart from the error reports in section 6 and Expo's update check in section 8, the app contains no analytics or crash-reporting tools.

10. Who Code Annex shares data with

Code Annex does not sell, rent, or trade personal data. The only parties that handle data are service providers that run the app for Code Annex, and only for that purpose:

Each is bound by its own terms. Code Annex may disclose data if the law requires it (for example a valid court order).

11. Children

The app shows real news about war, attacks, and other serious events. It is not directed at children under 13, and Code Annex does not knowingly collect their data.

12. Your choices and rights

13. Security

Data between the app and Code Annex's server is sent over encrypted connections (HTTPS). Access to the server is restricted. No system is perfectly secure, but Code Annex keeps the data it holds to a minimum.

14. Changes

If this policy changes, Code Annex will update this page and the effective date. Big changes (for example any new type of data) will also be noted in the app's release notes.

15. Contact

conditiononenews@thecodeannex.com Code Annex