Overview
File Change Frequency Overall
  • There are 647 files with 73,331 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 3 files changed 21-50 times (1,448 lines of code)
    • 42 files changed 6-20 times (18,287 lines of code)
    • 602 files changed 1-5 times (53,596 lines of code)
0% | 0% | 1% | 24% | 73%
Legend:
101+
51-100
21-50
6-20
1-5

explore: grouped by folders | grouped by update frequency | data
Contributors Count Frequency Overall
  • There are 647 files with 73,331 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 0 files changed by 11-25 contributors (0 lines of code)
    • 0 files changed by 6-10 contributors (0 lines of code)
    • 0 files changed by 2-5 contributors (0 lines of code)
    • 647 files changed by 1 contributor (73,331 lines of code)
0% | 0% | 0% | 0% | 100%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
rs, json, kt, swift, sql, ts, md, tsx, sh, toml, xml, txt, gitignore, dockerfile, svg, plist, pro, kts, properties, yaml, js, yml, html, gradle, css, py, dockerignore, bat, npmrc, pub
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
rs0% | 0% | 3% | 21% | 74%
toml0% | 0% | 2% | 97% | <1%
xml0% | 0% | 0% | 96% | 3%
tsx0% | 0% | 0% | 33% | 66%
ts0% | 0% | 0% | 19% | 80%
kts0% | 0% | 0% | 23% | 76%
swift0% | 0% | 0% | 0% | 100%
kt0% | 0% | 0% | 0% | 100%
sql0% | 0% | 0% | 0% | 100%
yaml0% | 0% | 0% | 0% | 100%
js0% | 0% | 0% | 0% | 100%
html0% | 0% | 0% | 0% | 100%
pub0% | 0% | 0% | 0% | 0%
pro0% | 0% | 0% | 0% | 0%
css0% | 0% | 0% | 0% | 0%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
journalist-vault0% | 0% | 25% | 16% | 58%
journalist-client0% | 0% | 2% | 34% | 62%
android0% | 0% | <1% | 32% | 66%
supply-chain0% | 0% | 0% | 100% | 0%
common0% | 0% | 0% | 19% | 80%
admin0% | 0% | 0% | 61% | 38%
api0% | 0% | 0% | 29% | 70%
tools0% | 0% | 0% | 18% | 81%
covernode0% | 0% | 0% | 5% | 94%
ios0% | 0% | 0% | 0% | 100%
journalist-services0% | 0% | 0% | 0% | 100%
group-messaging0% | 0% | 0% | 0% | 100%
identity-api0% | 0% | 0% | 0% | 100%
client0% | 0% | 0% | 0% | 100%
tasks0% | 0% | 0% | 0% | 100%
u2j-appender0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
trust-anchors0% | 0% | 0% | 0% | 100%
.devcontainer0% | 0% | 0% | 0% | 100%
.cargo0% | 0% | 0% | 0% | 0%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
lib.rs
in journalist-vault/src
1118 - 2025-06-09 2026-09-22 28 1 +1080 / -728 secure.collaboration secure.collaboration
libs.versions.toml
in android/gradle
84 - 2025-06-13 2026-09-23 26 1 +72 / -59 secure.collaboration secure.collaboration
lib.rs
in journalist-client/src-tauri/src
246 4 2025-06-09 2026-09-15 21 1 +264 / -138 secure.collaboration secure.collaboration
App.tsx
in journalist-client/src
408 - 2025-06-09 2026-08-05 19 1 +449 / -145 secure.collaboration secure.collaboration
SettingsPopover.tsx
in journalist-client/src/components
385 - 2025-07-18 2026-08-05 18 1 +341 / -172 secure.collaboration secure.collaboration
ChatsSideBar.tsx
in journalist-client/src/components
748 3 2025-06-09 2026-08-24 18 1 +787 / -302 secure.collaboration secure.collaboration
verification-metadata.xml
in android/gradle
4229 - 2025-06-13 2026-09-10 18 1 +470 / -4 secure.collaboration secure.collaboration
config.toml
in supply-chain
78 - 2025-09-02 2026-09-21 15 1 +768 / -2710 secure.collaboration secure.collaboration
cli.rs
in admin/src
306 - 2025-06-05 2026-09-18 15 1 +230 / -75 secure.collaboration secure.collaboration
main.rs
in admin/src
539 2 2025-06-05 2026-09-18 15 1 +400 / -135 secure.collaboration secure.collaboration
backup.rs
in common/src/protocol
833 18 2025-09-09 2026-09-18 13 1 +1283 / -203 secure.collaboration secure.collaboration
audits.toml
in supply-chain
3032 - 2025-09-11 2026-09-17 13 1 +2279 / -106 secure.collaboration secure.collaboration
main.rs
in tools/coverup/src
483 - 2025-06-09 2026-08-24 12 1 +163 / -46 secure.collaboration secure.collaboration
main.rs
in api/src
248 1 2025-07-14 2026-09-22 10 1 +133 / -43 secure.collaboration secure.collaboration
app_state.rs
in journalist-client/src-tauri/src
299 - 2025-06-25 2026-08-05 10 1 +245 / -45 secure.collaboration secure.collaboration
backups.rs
in admin/src
239 - 2025-10-22 2026-09-18 9 1 +381 / -91 secure.collaboration secure.collaboration
lib.rs
in admin/src
36 - 2025-06-05 2026-02-17 8 1 +17 / -12 secure.collaboration secure.collaboration
backups.rs
in api/src/controllers
114 - 2025-09-23 2026-08-05 8 1 +286 / -149 secure.collaboration secure.collaboration
admin.rs
in journalist-client/src-tauri/src/commands
178 - 2025-07-25 2026-08-05 8 1 +137 / -53 secure.collaboration secure.collaboration
cli.rs
in tools/coverup/src
300 - 2025-06-09 2026-08-24 8 1 +74 / -11 secure.collaboration secure.collaboration
message_queries.rs
in journalist-vault/src
602 - 2025-06-30 2026-08-24 8 1 +462 / -89 secure.collaboration secure.collaboration
api_client.rs
in common/src/api
686 - 2025-07-25 2026-09-22 8 1 +376 / -79 secure.collaboration secure.collaboration
mod.rs
in journalist-client/src-tauri/src/model
14 - 2025-06-09 2026-01-13 7 1 +8 / -6 secure.collaboration secure.collaboration
backend_to_frontend_events.rs
in journalist-client/src-tauri/src/model
18 - 2025-09-23 2026-08-05 7 1 +125 / -4 secure.collaboration secure.collaboration
constants.rs
in common/src/protocol
65 - 2025-10-30 2026-09-18 7 1 +67 / -45 secure.collaboration secure.collaboration
roles.rs
in common/src/protocol
106 - 2025-07-18 2026-09-18 7 1 +142 / -64 secure.collaboration secure.collaboration
backup.rs
in journalist-client/src-tauri/src/commands
146 - 2025-08-14 2026-08-05 7 1 +254 / -34 secure.collaboration secure.collaboration
chats.rs
in journalist-client/src-tauri/src/commands
222 1 2025-06-09 2026-08-05 7 1 +111 / -77 secure.collaboration secure.collaboration
mod.rs
in admin/src/ceremony
229 2 2025-06-26 2026-02-18 7 1 +75 / -80 secure.collaboration secure.collaboration
automated_backups.rs
in journalist-client/src-tauri/src/tasks
241 - 2025-11-24 2026-08-05 7 1 +364 / -55 secure.collaboration secure.collaboration
state_machine.rs
in admin/src/ceremony
612 6 2025-06-26 2026-09-18 7 1 +553 / -164 secure.collaboration secure.collaboration
constants.rs
in common/src/backup
8 - 2025-09-23 2026-09-18 6 1 +24 / -3 secure.collaboration secure.collaboration
pull_dead_drops.rs
in journalist-client/src-tauri/src/tasks
35 - 2025-08-12 2026-03-03 6 1 +75 / -127 secure.collaboration secure.collaboration
vaults.ts
in journalist-client/src/commands
44 - 2025-08-14 2026-02-11 6 1 +48 / -53 secure.collaboration secure.collaboration
admin.ts
in journalist-client/src/commands
63 - 2025-07-25 2026-08-05 6 1 +55 / -10 secure.collaboration secure.collaboration
build.gradle.kts
in android/core
107 - 2025-06-13 2026-08-05 6 1 +150 / -18 secure.collaboration secure.collaboration
vaults.rs
in journalist-client/src-tauri/src/commands
118 - 2025-08-13 2026-08-05 6 1 +85 / -77 secure.collaboration secure.collaboration
backup_queries.rs
in journalist-vault/src
125 - 2025-08-14 2025-12-05 6 1 +185 / -8 secure.collaboration secure.collaboration
ChooseBackupContactModal.tsx
in journalist-client/src/components
162 1 2025-10-02 2026-08-05 6 1 +205 / -28 secure.collaboration secure.collaboration
main.rs
in covernode/src
183 - 2025-07-14 2026-09-21 6 1 +36 / -45 secure.collaboration secure.collaboration
IdleTimeoutMonitor.tsx
in journalist-client/src/components
213 - 2026-01-12 2026-08-05 6 1 +246 / -14 secure.collaboration secure.collaboration
OpenVault.tsx
in journalist-client/src/views
215 - 2025-08-14 2026-08-05 6 1 +40 / -24 secure.collaboration secure.collaboration
useTrayIcon.ts
in journalist-client/src/hooks
299 6 2025-09-17 2026-08-05 6 1 +388 / -35 secure.collaboration secure.collaboration
organization_public_key_family_list.rs
in common/src/protocol/keys/hierarchy/organization
583 - 2025-10-14 2026-09-18 6 1 +215 / -36 secure.collaboration secure.collaboration
keys.rs
in api/src/controllers
736 2 2025-07-14 2026-09-18 6 1 +357 / -112 secure.collaboration secure.collaboration
receive_u2j.rs
in tools/message-canary/src/services
62 - 2025-06-12 2026-08-24 5 1 +59 / -106 secure.collaboration secure.collaboration
error.rs
in common/src
81 - 2025-06-10 2026-08-05 5 1 +18 / -0 secure.collaboration secure.collaboration
TestingBridge.swift
in ios/reference/CoverDropCore/Sources/CoverDropCore/Utilities/TestOnlyUtils
82 - 2025-07-15 2026-04-29 5 1 +63 / -11 secure.collaboration secure.collaboration
to_user_publishing_service.rs
in covernode/src/services/dead_drop_publishing
99 - 2025-09-02 2026-09-22 5 1 +27 / -26 secure.collaboration secure.collaboration
canary_state.rs
in tools/message-canary/src
101 - 2025-07-18 2026-08-05 5 1 +37 / -29 secure.collaboration secure.collaboration
Files With Most Churn (Top 50)
Based on the number of lines added and deleted across all commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
config.toml
in supply-chain
78 - 2025-09-02 2026-09-21 15 1 +768 / -2710 secure.collaboration secure.collaboration
audits.toml
in supply-chain
3032 - 2025-09-11 2026-09-17 13 1 +2279 / -106 secure.collaboration secure.collaboration
lib.rs
in journalist-vault/src
1118 - 2025-06-09 2026-09-22 28 1 +1080 / -728 secure.collaboration secure.collaboration
backup.rs
in common/src/protocol
833 18 2025-09-09 2026-09-18 13 1 +1283 / -203 secure.collaboration secure.collaboration
group_messaging_service.rs
in journalist-services/group-messaging-service/src
1017 6 2026-08-05 2026-08-27 3 1 +1313 / -0 secure.collaboration secure.collaboration
ChatsSideBar.tsx
in journalist-client/src/components
748 3 2025-06-09 2026-08-24 18 1 +787 / -302 secure.collaboration secure.collaboration
coverdrop_service.rs
in journalist-services/coverdrop-service/src
529 - 2026-03-03 2026-09-22 5 1 +864 / -142 secure.collaboration secure.collaboration
state_machine.rs
in admin/src/ceremony
612 6 2025-06-26 2026-09-18 7 1 +553 / -164 secure.collaboration secure.collaboration
App.tsx
in journalist-client/src
408 - 2025-06-09 2026-08-05 19 1 +449 / -145 secure.collaboration secure.collaboration
message_queries.rs
in journalist-vault/src
602 - 2025-06-30 2026-08-24 8 1 +462 / -89 secure.collaboration secure.collaboration
main.rs
in admin/src
539 2 2025-06-05 2026-09-18 15 1 +400 / -135 secure.collaboration secure.collaboration
SettingsPopover.tsx
in journalist-client/src/components
385 - 2025-07-18 2026-08-05 18 1 +341 / -172 secure.collaboration secure.collaboration
backup_data.rs
in common/src/protocol
291 7 2025-09-09 2026-09-18 5 1 +422 / -59 secure.collaboration secure.collaboration
verification-metadata.xml
in android/gradle
4229 - 2025-06-13 2026-09-10 18 1 +470 / -4 secure.collaboration secure.collaboration
secret_sharing.rs
in common/src/crypto
333 18 2025-09-09 2025-11-19 2 1 +452 / -21 secure.collaboration secure.collaboration
backups.rs
in admin/src
239 - 2025-10-22 2026-09-18 9 1 +381 / -91 secure.collaboration secure.collaboration
database.rs
in covernode/covernode-database/src
708 - 2025-11-17 2026-09-21 3 1 +439 / -32 secure.collaboration secure.collaboration
keys.rs
in api/src/controllers
736 2 2025-07-14 2026-09-18 6 1 +357 / -112 secure.collaboration secure.collaboration
api_client.rs
in common/src/api
686 - 2025-07-25 2026-09-22 8 1 +376 / -79 secure.collaboration secure.collaboration
backups.rs
in api/src/controllers
114 - 2025-09-23 2026-08-05 8 1 +286 / -149 secure.collaboration secure.collaboration
useTrayIcon.ts
in journalist-client/src/hooks
299 6 2025-09-17 2026-08-05 6 1 +388 / -35 secure.collaboration secure.collaboration
GroupChat.tsx
in journalist-client/src/components
393 3 2026-08-05 2026-08-05 1 1 +422 / -0 secure.collaboration secure.collaboration
automated_backups.rs
in journalist-client/src-tauri/src/tasks
241 - 2025-11-24 2026-08-05 7 1 +364 / -55 secure.collaboration secure.collaboration
lib.rs
in journalist-client/src-tauri/src
246 4 2025-06-09 2026-09-15 21 1 +264 / -138 secure.collaboration secure.collaboration
mixing_strategy.rs
in covernode/src/mixing
440 16 2026-08-24 2026-09-21 4 1 +267 / -131 secure.collaboration secure.collaboration
create_keys_task.rs
in covernode/src/services/tasks
84 2 2025-11-17 2026-09-18 4 1 +319 / -77 secure.collaboration secure.collaboration
UserChat.tsx
in journalist-client/src/components
324 2 2026-08-05 2026-08-05 1 1 +392 / -0 secure.collaboration secure.collaboration
Logs.tsx
in journalist-client/src/components
359 2 2025-11-13 2025-11-14 2 1 +387 / -3 secure.collaboration secure.collaboration
promotable_id_key_pair.rs
in journalist-vault/src
310 9 2026-08-05 2026-09-18 2 1 +368 / -9 secure.collaboration secure.collaboration
sentinel_queries.rs
in api/src/services/queries
279 - 2026-08-05 2026-08-05 1 1 +319 / -0 secure.collaboration secure.collaboration
hierarchy_queries.rs
in api/src/services/queries
591 1 2025-10-14 2026-09-18 3 1 +251 / -68 secure.collaboration secure.collaboration
ChatsSideBar.stories.tsx
in journalist-client/src/components
242 2 2025-08-26 2026-08-05 5 1 +297 / -8 secure.collaboration secure.collaboration
cli.rs
in admin/src
306 - 2025-06-05 2026-09-18 15 1 +230 / -75 secure.collaboration secure.collaboration
verification.rs
in common/src/protocol/keys
314 7 2026-01-28 2026-09-18 3 1 +299 / -4 secure.collaboration secure.collaboration
group_messaging_queries.rs
in journalist-vault/src
271 - 2026-08-05 2026-08-05 1 1 +301 / -0 secure.collaboration secure.collaboration
211 13 2025-08-26 2026-09-15 4 1 +290 / -3 secure.collaboration secure.collaboration
app_state.rs
in journalist-client/src-tauri/src
299 - 2025-06-25 2026-08-05 10 1 +245 / -45 secure.collaboration secure.collaboration
backup.rs
in journalist-client/src-tauri/src/commands
146 - 2025-08-14 2026-08-05 7 1 +254 / -34 secure.collaboration secure.collaboration
CustomExpiryModal.tsx
in journalist-client/src/components
215 2 2025-08-08 2026-08-05 4 1 +252 / -18 secure.collaboration secure.collaboration
message_queries.rs
in group-messaging/delivery-service/src/services/queries
144 - 2026-04-01 2026-08-05 2 1 +257 / -10 secure.collaboration secure.collaboration
IdleTimeoutMonitor.tsx
in journalist-client/src/components
213 - 2026-01-12 2026-08-05 6 1 +246 / -14 secure.collaboration secure.collaboration
ManualBackupModal.tsx
in journalist-client/src/components
225 1 2026-01-13 2026-01-19 2 1 +247 / -9 secure.collaboration secure.collaboration
organization_public_key_family_list.rs
in common/src/protocol/keys/hierarchy/organization
583 - 2025-10-14 2026-09-18 6 1 +215 / -36 secure.collaboration secure.collaboration
ChooseBackupContactModal.tsx
in journalist-client/src/components
162 1 2025-10-02 2026-08-05 6 1 +205 / -28 secure.collaboration secure.collaboration
build.gradle.kts
in android/ui
141 - 2025-06-13 2026-08-05 5 1 +200 / -27 secure.collaboration secure.collaboration
rotatable_id_key_pair.rs
in journalist-services/coverdrop-service/src
161 5 2026-08-05 2026-09-18 2 1 +226 / -0 secure.collaboration secure.collaboration
journalist_id_key_queries.rs
in journalist-vault/src
195 - 2026-08-05 2026-09-18 2 1 +225 / -1 secure.collaboration secure.collaboration
logging.rs
in journalist-vault/src
250 - 2025-06-09 2026-09-22 4 1 +185 / -40 secure.collaboration secure.collaboration
build.gradle.kts
in android/app
143 - 2025-06-13 2026-08-06 4 1 +202 / -20 secure.collaboration secure.collaboration
group_messaging.rs
in journalist-client/src-tauri/src/commands
166 - 2026-08-05 2026-08-05 1 1 +222 / -0 secure.collaboration secure.collaboration
Files With Most Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
lib.rs
in journalist-vault/src
1118 - 2025-06-09 2026-09-22 28 1 +1080 / -728 secure.collaboration secure.collaboration
libs.versions.toml
in android/gradle
84 - 2025-06-13 2026-09-23 26 1 +72 / -59 secure.collaboration secure.collaboration
lib.rs
in journalist-client/src-tauri/src
246 4 2025-06-09 2026-09-15 21 1 +264 / -138 secure.collaboration secure.collaboration
App.tsx
in journalist-client/src
408 - 2025-06-09 2026-08-05 19 1 +449 / -145 secure.collaboration secure.collaboration
verification-metadata.xml
in android/gradle
4229 - 2025-06-13 2026-09-10 18 1 +470 / -4 secure.collaboration secure.collaboration
SettingsPopover.tsx
in journalist-client/src/components
385 - 2025-07-18 2026-08-05 18 1 +341 / -172 secure.collaboration secure.collaboration
ChatsSideBar.tsx
in journalist-client/src/components
748 3 2025-06-09 2026-08-24 18 1 +787 / -302 secure.collaboration secure.collaboration
main.rs
in admin/src
539 2 2025-06-05 2026-09-18 15 1 +400 / -135 secure.collaboration secure.collaboration
cli.rs
in admin/src
306 - 2025-06-05 2026-09-18 15 1 +230 / -75 secure.collaboration secure.collaboration
config.toml
in supply-chain
78 - 2025-09-02 2026-09-21 15 1 +768 / -2710 secure.collaboration secure.collaboration
backup.rs
in common/src/protocol
833 18 2025-09-09 2026-09-18 13 1 +1283 / -203 secure.collaboration secure.collaboration
audits.toml
in supply-chain
3032 - 2025-09-11 2026-09-17 13 1 +2279 / -106 secure.collaboration secure.collaboration
main.rs
in tools/coverup/src
483 - 2025-06-09 2026-08-24 12 1 +163 / -46 secure.collaboration secure.collaboration
main.rs
in api/src
248 1 2025-07-14 2026-09-22 10 1 +133 / -43 secure.collaboration secure.collaboration
app_state.rs
in journalist-client/src-tauri/src
299 - 2025-06-25 2026-08-05 10 1 +245 / -45 secure.collaboration secure.collaboration
backups.rs
in admin/src
239 - 2025-10-22 2026-09-18 9 1 +381 / -91 secure.collaboration secure.collaboration
message_queries.rs
in journalist-vault/src
602 - 2025-06-30 2026-08-24 8 1 +462 / -89 secure.collaboration secure.collaboration
cli.rs
in tools/coverup/src
300 - 2025-06-09 2026-08-24 8 1 +74 / -11 secure.collaboration secure.collaboration
lib.rs
in admin/src
36 - 2025-06-05 2026-02-17 8 1 +17 / -12 secure.collaboration secure.collaboration
api_client.rs
in common/src/api
686 - 2025-07-25 2026-09-22 8 1 +376 / -79 secure.collaboration secure.collaboration
backups.rs
in api/src/controllers
114 - 2025-09-23 2026-08-05 8 1 +286 / -149 secure.collaboration secure.collaboration
admin.rs
in journalist-client/src-tauri/src/commands
178 - 2025-07-25 2026-08-05 8 1 +137 / -53 secure.collaboration secure.collaboration
state_machine.rs
in admin/src/ceremony
612 6 2025-06-26 2026-09-18 7 1 +553 / -164 secure.collaboration secure.collaboration
mod.rs
in admin/src/ceremony
229 2 2025-06-26 2026-02-18 7 1 +75 / -80 secure.collaboration secure.collaboration
constants.rs
in common/src/protocol
65 - 2025-10-30 2026-09-18 7 1 +67 / -45 secure.collaboration secure.collaboration
roles.rs
in common/src/protocol
106 - 2025-07-18 2026-09-18 7 1 +142 / -64 secure.collaboration secure.collaboration
automated_backups.rs
in journalist-client/src-tauri/src/tasks
241 - 2025-11-24 2026-08-05 7 1 +364 / -55 secure.collaboration secure.collaboration
backend_to_frontend_events.rs
in journalist-client/src-tauri/src/model
18 - 2025-09-23 2026-08-05 7 1 +125 / -4 secure.collaboration secure.collaboration
mod.rs
in journalist-client/src-tauri/src/model
14 - 2025-06-09 2026-01-13 7 1 +8 / -6 secure.collaboration secure.collaboration
backup.rs
in journalist-client/src-tauri/src/commands
146 - 2025-08-14 2026-08-05 7 1 +254 / -34 secure.collaboration secure.collaboration
chats.rs
in journalist-client/src-tauri/src/commands
222 1 2025-06-09 2026-08-05 7 1 +111 / -77 secure.collaboration secure.collaboration
backup_queries.rs
in journalist-vault/src
125 - 2025-08-14 2025-12-05 6 1 +185 / -8 secure.collaboration secure.collaboration
main.rs
in covernode/src
183 - 2025-07-14 2026-09-21 6 1 +36 / -45 secure.collaboration secure.collaboration
organization_public_key_family_list.rs
in common/src/protocol/keys/hierarchy/organization
583 - 2025-10-14 2026-09-18 6 1 +215 / -36 secure.collaboration secure.collaboration
constants.rs
in common/src/backup
8 - 2025-09-23 2026-09-18 6 1 +24 / -3 secure.collaboration secure.collaboration
build.gradle.kts
in android/core
107 - 2025-06-13 2026-08-05 6 1 +150 / -18 secure.collaboration secure.collaboration
keys.rs
in api/src/controllers
736 2 2025-07-14 2026-09-18 6 1 +357 / -112 secure.collaboration secure.collaboration
pull_dead_drops.rs
in journalist-client/src-tauri/src/tasks
35 - 2025-08-12 2026-03-03 6 1 +75 / -127 secure.collaboration secure.collaboration
vaults.rs
in journalist-client/src-tauri/src/commands
118 - 2025-08-13 2026-08-05 6 1 +85 / -77 secure.collaboration secure.collaboration
ChooseBackupContactModal.tsx
in journalist-client/src/components
162 1 2025-10-02 2026-08-05 6 1 +205 / -28 secure.collaboration secure.collaboration
IdleTimeoutMonitor.tsx
in journalist-client/src/components
213 - 2026-01-12 2026-08-05 6 1 +246 / -14 secure.collaboration secure.collaboration
useTrayIcon.ts
in journalist-client/src/hooks
299 6 2025-09-17 2026-08-05 6 1 +388 / -35 secure.collaboration secure.collaboration
admin.ts
in journalist-client/src/commands
63 - 2025-07-25 2026-08-05 6 1 +55 / -10 secure.collaboration secure.collaboration
vaults.ts
in journalist-client/src/commands
44 - 2025-08-14 2026-02-11 6 1 +48 / -53 secure.collaboration secure.collaboration
OpenVault.tsx
in journalist-client/src/views
215 - 2025-08-14 2026-08-05 6 1 +40 / -24 secure.collaboration secure.collaboration
msg_key_queries.rs
in journalist-vault/src
208 - 2025-07-18 2026-09-18 5 1 +52 / -31 secure.collaboration secure.collaboration
key_rows.rs
in journalist-vault/src
166 3 2025-11-11 2026-08-05 5 1 +49 / -23 secure.collaboration secure.collaboration
canary_state.rs
in tools/message-canary/src
101 - 2025-07-18 2026-08-05 5 1 +37 / -29 secure.collaboration secure.collaboration
receive_u2j.rs
in tools/message-canary/src/services
62 - 2025-06-12 2026-08-24 5 1 +59 / -106 secure.collaboration secure.collaboration
to_user_publishing_service.rs
in covernode/src/services/dead_drop_publishing
99 - 2025-09-02 2026-09-22 5 1 +27 / -26 secure.collaboration secure.collaboration
Files With Least Contributors (Top 50)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
Buttons.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/components
252 6
multi_anonymous_box.rs
in common/src/crypto
220 10
covernode_key_queries.rs
in api/src/services/queries
218 -
MessageThread.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/components
195 -
two_party_box.rs
in common/src/crypto
190 5
Colors.swift
in ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Styles
186 -
AlertDialog.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/components
178 3
mod.rs
in tools/coverup/src/dev/watch/builder
155 -
SignedKeys.swift
in ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/Keys
146 -
NewSessionViewModel.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/viewmodels
144 7
TwoLineComponents.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/components
141 3
HelpScreenComponents.swift
in ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Components
137 1
MockUrlData.swift
in ios/reference/CoverDropCore/Sources/CoverDropCore/Utilities
137 -
password_generator.rs
in common/src/generators
130 6
ApiResponseCache.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/api
128 -
prefix.rs
in common/src/aws/ssm
125 13
MessageHelper.swift
in ios/reference/CoverDropCore/Sources/CoverDropCore/Utilities/TestOnlyUtils
116 -
CoverDropNavigation.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/navigation
116 1
ContinueSessionViewModel.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/viewmodels
110 6
kube_client.rs
in tools/coverup/src
109 -
PassphraseWordList.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/crypto
108 11
MultiAnonymousBox.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/crypto
103 2
HelpScreenMarkupParser.swift
in ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Utilities
102 5
EncryptedStorageWithPassword.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/encryptedstorage
102 5
IntegrityGuard.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/security
100 8
client.rs
in common/src/aws/ssm
99 -
App.css
in journalist-client/src
98 -
CoverDropModule.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/di
96 6
user_to_covernode_message.rs
in common/src/api/models/messages
94 2
94 -
PassphraseKdf.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/crypto
93 3
MessageSentView.swift
in ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface
91 -
RecipientSelectionViewModel.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/viewmodels
91 3
SilenceableIndirectLifecycleCallbackProxyImpl.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/tracking
91 14
OkHttpApiCallProvider.kt
in android/app/src/main/java/com/theguardian/coverdrop
89 2
message_sender.rs
in common/src/client/mailbox
88 1
fs_watcher.rs
in tools/coverup/src/dev/watch/fs
86 -
BlockQuote.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/components
86 1
StartCoverDropSessionView.swift
in ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface
84 -
EncryptionKeys.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/crypto
84 4
main.rs
in tools/cover-traffic/src
83 -
EncryptedStorageConfiguration.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/encryptedstorage
83 -
journalist_to_covernode_message.rs
in common/src/api/models/messages
82 2
BackgroundWorker.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/background
82 3
SendMessageUITest.swift
in ios/reference/referenceUITests
81 3
InboxViewModel.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/viewmodels
81 5
tracing.rs
in common/src
79 -
system_key_queries.rs
in api/src/services/queries
79 -
MessageLimitIndicator.kt
in android/ui/src/main/java/com/theguardian/coverdrop/ui/components
78 -
SigningKeys.kt
in android/core/src/main/java/com/theguardian/coverdrop/core/crypto
78 5
Correlations

File Size vs. Number of Changes: 647 points

android/core/src/main/java/com/theguardian/coverdrop/core/api/models/PublishedKeysAndProfiles.kt x: 98 lines of code y: 1 # changes android/core/src/main/java/com/theguardian/coverdrop/core/crypto/CertificateData.kt x: 90 lines of code y: 2 # changes android/core/src/main/java/com/theguardian/coverdrop/core/crypto/KeyVerifier.kt x: 313 lines of code y: 2 # changes android/testutils/src/main/java/com/theguardian/coverdrop/testutils/IntegrationTestKeys.kt x: 49 lines of code y: 1 # changes android/testutils/src/main/java/com/theguardian/coverdrop/testutils/IntegrationTestVectors.kt x: 40 lines of code y: 1 # changes android/gradle/libs.versions.toml x: 84 lines of code y: 26 # changes api/migrations/20260722162726_add_dead_drop_created_at_index.down.sql x: 4 lines of code y: 1 # changes api/scripts/db/wipe_all_tables.sql x: 13 lines of code y: 1 # changes api/src/controllers/dead_drops.rs x: 195 lines of code y: 3 # changes api/src/controllers/dead_drops_legacy.rs x: 75 lines of code y: 1 # changes api/src/controllers/mod.rs x: 7 lines of code y: 3 # changes api/src/main.rs x: 248 lines of code y: 10 # changes api/src/services/queries/dead_drop_queries.rs x: 250 lines of code y: 2 # changes client/src/commands/dead_drops.rs x: 42 lines of code y: 2 # changes client/src/commands/journalist/auto_reply.rs x: 57 lines of code y: 2 # changes client/src/commands/journalist/mod.rs x: 137 lines of code y: 4 # changes common/src/api/api_client.rs x: 686 lines of code y: 8 # changes common/src/api/models/dead_drops/journalist_to_user/unverified_journalist_to_user_dead_drop_list.rs x: 18 lines of code y: 1 # changes common/src/api/models/mod.rs x: 12 lines of code y: 3 # changes common/src/client/mailbox/user_mailbox/mod.rs x: 298 lines of code y: 2 # changes common/src/client/mailbox/user_mailbox/secret_mailbox_data.rs x: 86 lines of code y: 1 # changes common/src/lib.rs x: 33 lines of code y: 3 # changes common/src/protocol/covernode.rs x: 215 lines of code y: 2 # changes covernode/src/services/dead_drop_publishing/to_journalist_publishing_service.rs x: 102 lines of code y: 5 # changes covernode/src/services/dead_drop_publishing/to_user_publishing_service.rs x: 99 lines of code y: 5 # changes journalist-services/coverdrop-service/src/coverdrop_service.rs x: 529 lines of code y: 5 # changes journalist-vault/src/info_queries.rs x: 150 lines of code y: 2 # changes journalist-vault/src/lib.rs x: 1118 lines of code y: 28 # changes journalist-vault/src/logging.rs x: 250 lines of code y: 4 # changes tools/message-canary/message-canary-database/src/database.rs x: 318 lines of code y: 4 # changes tools/message-canary/src/services/receive_j2u.rs x: 102 lines of code y: 4 # changes covernode/covernode-database/src/database.rs x: 708 lines of code y: 3 # changes covernode/src/cli.rs x: 73 lines of code y: 3 # changes covernode/src/lib.rs x: 94 lines of code y: 2 # changes covernode/src/main.rs x: 183 lines of code y: 6 # changes covernode/src/mixing/mixing_message_types.rs x: 65 lines of code y: 2 # changes covernode/src/mixing/mixing_strategy.rs x: 440 lines of code y: 4 # changes covernode/src/services/decrypt_and_threshold/journalist_to_user_decrypt_and_threshold_service.rs x: 102 lines of code y: 3 # changes covernode/src/services/decrypt_and_threshold/user_to_journalist_decrypt_and_threshold_service.rs x: 139 lines of code y: 3 # changes covernode/src/services/journalist_to_user_covernode_service.rs x: 73 lines of code y: 2 # changes covernode/src/services/tasks/mod.rs x: 10 lines of code y: 2 # changes supply-chain/config.toml x: 78 lines of code y: 15 # changes admin/src/backups.rs x: 239 lines of code y: 9 # changes admin/src/ceremony/state_machine.rs x: 612 lines of code y: 7 # changes admin/src/cli.rs x: 306 lines of code y: 15 # changes admin/src/generate_covernode_database.rs x: 51 lines of code y: 2 # changes admin/src/generate_journalists.rs x: 159 lines of code y: 4 # changes admin/src/generate_keys.rs x: 254 lines of code y: 3 # changes admin/src/integration_tests/generate_journalist_messaging_keys.rs x: 28 lines of code y: 2 # changes admin/src/main.rs x: 539 lines of code y: 15 # changes admin/src/reseed_journalist_vault_id_key_pair.rs x: 47 lines of code y: 3 # changes api/src/controllers/keys.rs x: 736 lines of code y: 6 # changes api/src/services/queries/hierarchy_queries.rs x: 591 lines of code y: 3 # changes common/src/backup/constants.rs x: 8 lines of code y: 6 # changes common/src/backup/keys.rs x: 83 lines of code y: 3 # changes common/src/backup/roles.rs x: 20 lines of code y: 3 # changes common/src/client/mailbox/user_mailbox/plain_mailbox_data.rs x: 65 lines of code y: 1 # changes common/src/crypto/keys/id_key_certificate_data.rs x: 37 lines of code y: 1 # changes common/src/crypto/keys/serde.rs x: 339 lines of code y: 3 # changes common/src/crypto/keys/signing.rs x: 325 lines of code y: 1 # changes common/src/crypto/keys/untrusted/encryption/signed_public_encryption_key.rs x: 81 lines of code y: 2 # changes common/src/crypto/keys/untrusted/signing/signed_public_signing_key.rs x: 115 lines of code y: 2 # changes common/src/protocol/backup.rs x: 833 lines of code y: 13 # changes common/src/protocol/backup_data.rs x: 291 lines of code y: 5 # changes common/src/protocol/constants.rs x: 65 lines of code y: 7 # changes common/src/protocol/keys/generation.rs x: 334 lines of code y: 5 # changes common/src/protocol/keys/hierarchy/backup/mod.rs x: 2 lines of code y: 2 # changes common/src/protocol/keys/hierarchy/identity_public_key_family_list.rs x: 108 lines of code y: 2 # changes common/src/protocol/keys/hierarchy/organization/organization_public_key_family_list.rs x: 583 lines of code y: 6 # changes common/src/protocol/keys/loading.rs x: 282 lines of code y: 3 # changes common/src/protocol/keys/mod.rs x: 168 lines of code y: 5 # changes common/src/protocol/keys/sign.rs x: 93 lines of code y: 4 # changes common/src/protocol/keys/verification.rs x: 314 lines of code y: 3 # changes common/src/protocol/roles.rs x: 106 lines of code y: 7 # changes covernode/src/key_state/inner_key_state.rs x: 351 lines of code y: 3 # changes covernode/src/services/tasks/create_keys_task.rs x: 84 lines of code y: 4 # changes covernode/src/services/tasks/publish_keys_task.rs x: 244 lines of code y: 2 # changes identity-api/src/tasks/id_key_to_rotate.rs x: 38 lines of code y: 2 # changes journalist-services/coverdrop-service/src/rotatable_id_key_pair.rs x: 161 lines of code y: 2 # changes journalist-vault/src/journalist_id_key_queries.rs x: 195 lines of code y: 2 # changes journalist-vault/src/msg_key_queries.rs x: 208 lines of code y: 5 # changes journalist-vault/src/promotable_id_key_pair.rs x: 310 lines of code y: 2 # changes journalist-vault/src/sentinel_id_key_queries.rs x: 187 lines of code y: 2 # changes journalist-vault/src/vault_setup_bundle.rs x: 174 lines of code y: 3 # changes supply-chain/audits.toml x: 3032 lines of code y: 13 # changes admin/src/generate_test_vectors.rs x: 234 lines of code y: 1 # changes client/src/main.rs x: 86 lines of code y: 3 # changes common/src/padded_byte_vector.rs x: 211 lines of code y: 4 # changes journalist-client/src-tauri/src/lib.rs x: 246 lines of code y: 21 # changes tools/coverup/src/aws/secrets.rs x: 79 lines of code y: 1 # changes tools/coverup/src/data_copier_pod.rs x: 359 lines of code y: 1 # changes android/gradle/verification-metadata.xml x: 4229 lines of code y: 18 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/activities/CoverDropActivity.kt x: 150 lines of code y: 4 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/components/PassphraseComponents.kt x: 380 lines of code y: 2 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Components/PassphraseForm.swift x: 101 lines of code y: 2 # changes journalist-services/group-messaging-service/src/group_messaging_service.rs x: 1017 lines of code y: 3 # changes journalist-client/src/euiIconsWorkAround.ts x: 1035 lines of code y: 1 # changes tasks/key-expiry/src/cli.rs x: 16 lines of code y: 2 # changes tools/coverup/src/cli.rs x: 300 lines of code y: 8 # changes tools/coverup/src/main.rs x: 483 lines of code y: 12 # changes common/src/api/models/untrusted_keys_and_journalist_profiles.rs x: 56 lines of code y: 3 # changes common/src/aws/kinesis/client.rs x: 360 lines of code y: 3 # changes common/src/protocol/journalist.rs x: 159 lines of code y: 1 # changes covernode/src/services/mod.rs x: 24 lines of code y: 1 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/DeadDrops/DecryptedDeadDrops.swift x: 57 lines of code y: 1 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/Models/MessageData.swift x: 116 lines of code y: 3 # changes ios/reference/referenceTests/DeadDropDecryptionServiceTests.swift x: 83 lines of code y: 4 # changes journalist-client/src/components/ChatsSideBar.tsx x: 748 lines of code y: 18 # changes journalist-vault/src/message_queries.rs x: 602 lines of code y: 8 # changes tools/message-canary/src/services/receive_u2j.rs x: 62 lines of code y: 5 # changes admin/src/generate_constants_files.rs x: 303 lines of code y: 3 # changes android/core/src/main/java/com/theguardian/coverdrop/core/crypto/DeadDropProcessor.kt x: 133 lines of code y: 1 # changes common/src/api/models/messages/journalist_to_user_message.rs x: 126 lines of code y: 1 # changes android/app/build.gradle.kts x: 143 lines of code y: 4 # changes android/core/build.gradle.kts x: 107 lines of code y: 6 # changes android/testutils/build.gradle.kts x: 43 lines of code y: 4 # changes android/ui/build.gradle.kts x: 141 lines of code y: 5 # changes api/src/controllers/backups.rs x: 114 lines of code y: 8 # changes api/src/services/database.rs x: 42 lines of code y: 3 # changes api/src/services/queries/journalist_queries.rs x: 498 lines of code y: 3 # changes api/src/services/queries/sentinel_queries.rs x: 279 lines of code y: 1 # changes common/src/api/forms/mod.rs x: 38 lines of code y: 4 # changes common/src/backup/forms/retrieve_upload_url.rs x: 25 lines of code y: 3 # changes common/src/clients.rs x: 57 lines of code y: 4 # changes common/src/error.rs x: 81 lines of code y: 5 # changes common/src/task/runner.rs x: 176 lines of code y: 3 # changes group-messaging/delivery-service/src/controllers/clients.rs x: 130 lines of code y: 2 # changes group-messaging/delivery-service/src/services/queries/message_queries.rs x: 144 lines of code y: 2 # changes identity-api/src/main.rs x: 109 lines of code y: 4 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/JournalistMessageView.swift x: 235 lines of code y: 4 # changes journalist-client/src-tauri/src/app_state.rs x: 299 lines of code y: 10 # changes journalist-client/src-tauri/src/commands/admin.rs x: 178 lines of code y: 8 # changes journalist-client/src-tauri/src/commands/backup.rs x: 146 lines of code y: 7 # changes journalist-client/src-tauri/src/commands/chats.rs x: 222 lines of code y: 7 # changes journalist-client/src-tauri/src/commands/group_messaging.rs x: 166 lines of code y: 1 # changes journalist-client/src-tauri/src/commands/vaults.rs x: 118 lines of code y: 6 # changes journalist-client/src-tauri/src/model/backend_to_frontend_events.rs x: 18 lines of code y: 7 # changes journalist-client/src-tauri/src/tasks/automated_backups.rs x: 241 lines of code y: 7 # changes journalist-client/src/App.tsx x: 408 lines of code y: 19 # changes journalist-client/src/commands/admin.ts x: 63 lines of code y: 6 # changes journalist-client/src/components/ChatsSideBar.stories.tsx x: 242 lines of code y: 5 # changes journalist-client/src/components/ChooseBackupContactModal.tsx x: 162 lines of code y: 6 # changes journalist-client/src/components/CreateOrEditGroupModal.tsx x: 145 lines of code y: 1 # changes journalist-client/src/components/CustomExpiryModal.tsx x: 215 lines of code y: 4 # changes journalist-client/src/components/GroupChangeMessages.tsx x: 150 lines of code y: 1 # changes journalist-client/src/components/GroupChat.stories.tsx x: 122 lines of code y: 1 # changes journalist-client/src/components/GroupChat.tsx x: 393 lines of code y: 1 # changes journalist-client/src/components/GroupMessageDisplay.tsx x: 195 lines of code y: 1 # changes journalist-client/src/components/IdleTimeoutMonitor.tsx x: 213 lines of code y: 6 # changes journalist-client/src/components/SettingsPopover.tsx x: 385 lines of code y: 18 # changes journalist-client/src/hooks/useTrayIcon.ts x: 299 lines of code y: 6 # changes journalist-client/src/views/OpenVault.tsx x: 215 lines of code y: 6 # changes journalist-vault/src/group_messaging_queries.rs x: 271 lines of code y: 1 # changes journalist-vault/src/key_rows.rs x: 166 lines of code y: 5 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/CoverDropConfig.swift x: 114 lines of code y: 3 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/Keys/VerifiedKeys.swift x: 341 lines of code y: 2 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/MultiAnonymousBox.swift x: 106 lines of code y: 1 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/PrivateSendingQueue/PrivateSendingQueue.swift x: 243 lines of code y: 1 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/Repositories/PublicDataRepository.swift x: 189 lines of code y: 4 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/AboutCoverDropView.swift x: 178 lines of code y: 1 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/InboxView.swift x: 222 lines of code y: 2 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/InboxViewModel.swift x: 127 lines of code y: 2 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Styles/Styles.swift x: 506 lines of code y: 1 # changes ios/reference/referenceTests/BackgroundMessagesScheduleServiceTests.swift x: 155 lines of code y: 2 # changes ios/reference/referenceTests/Repositories/SecretDataRepositoryTests.swift x: 311 lines of code y: 4 # changes ios/reference/referenceUITests/NavigationUITests.swift x: 108 lines of code y: 1 # changes journalist-client/src-tauri/src/tasks/pull_dead_drops.rs x: 35 lines of code y: 6 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Resources/HelpScreenMarkupStrings.swift x: 240 lines of code y: 3 # changes admin/src/lib.rs x: 36 lines of code y: 8 # changes journalist-client/src/commands/vaults.ts x: 44 lines of code y: 6 # changes tools/message-canary/src/main.rs x: 176 lines of code y: 4 # changes common/src/form.rs x: 128 lines of code y: 5 # changes common/src/clap.rs x: 209 lines of code y: 2 # changes common/src/crypto/keys/signed.rs x: 92 lines of code y: 3 # changes android/core/src/main/java/com/theguardian/coverdrop/core/CoverDropLib.kt x: 329 lines of code y: 2 # changes android/core/src/main/java/com/theguardian/coverdrop/core/CoverDropPrivateDataRepository.kt x: 200 lines of code y: 2 # changes android/core/src/main/java/com/theguardian/coverdrop/core/CoverDropPublicDataRepository.kt x: 219 lines of code y: 1 # changes android/ui/src/main/res/values/strings.xml x: 159 lines of code y: 3 # changes journalist-client/src-tauri/src/model/mod.rs x: 14 lines of code y: 7 # changes journalist-client/src/components/CopyToClipboardModal.tsx x: 117 lines of code y: 5 # changes common/src/argon2_sqlcipher.rs x: 312 lines of code y: 3 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/HowThisWorksScreen.kt x: 207 lines of code y: 3 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/MessageSentScreen.kt x: 164 lines of code y: 3 # changes api/src/error.rs x: 49 lines of code y: 4 # changes journalist-vault/src/backup_queries.rs x: 125 lines of code y: 6 # changes android/core/src/main/java/com/theguardian/coverdrop/core/crypto/PrivateSendingQueue.kt x: 254 lines of code y: 1 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/components/CoverDropTopAppBar.kt x: 183 lines of code y: 2 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/components/HelpScreenContent.kt x: 284 lines of code y: 2 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/ContinueSessionScreen.kt x: 327 lines of code y: 3 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/ConversationScreen.kt x: 303 lines of code y: 5 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/EntryScreen.kt x: 235 lines of code y: 2 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/InboxScreen.kt x: 407 lines of code y: 3 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/NewMessageScreen.kt x: 375 lines of code y: 3 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/RecipientSelectionScreen.kt x: 396 lines of code y: 4 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/utils/SampleDataProvider.kt x: 131 lines of code y: 3 # changes journalist-client/src/components/Logs.tsx x: 359 lines of code y: 2 # changes ios/reference/CoverDropCore/Sources/CoverDropCore/Services/CoverDropService.swift x: 191 lines of code y: 5 # changes ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/HeaderView.swift x: 147 lines of code y: 3 # changes tools/coverup/src/dev/watch/ui/app.rs x: 332 lines of code y: 1 # changes android/core/src/main/java/com/theguardian/coverdrop/core/persistence/PublicStorage.kt x: 190 lines of code y: 1 # changes android/ui/src/main/java/com/theguardian/coverdrop/ui/components/ChatBubble.kt x: 271 lines of code y: 2 # changes
28.0
# changes
  min: 1.0
  average: 2.37
  25th percentile: 1.0
  median: 2.0
  75th percentile: 3.0
  max: 28.0
0 4229.0
lines of code
min: 1.0 | average: 113.34 | 25th percentile: 25.0 | median: 55.0 | 75th percentile: 128.0 | max: 4229.0

Number of Contributors vs. Number of Changes: 647 points

android/core/src/main/java/com/theguardian/coverdrop/core/api/models/PublishedKeysAndProfiles.kt x: 1 # contributors y: 1 # changes android/core/src/main/java/com/theguardian/coverdrop/core/crypto/CertificateData.kt x: 1 # contributors y: 2 # changes android/gradle/libs.versions.toml x: 1 # contributors y: 26 # changes api/src/controllers/dead_drops.rs x: 1 # contributors y: 3 # changes api/src/main.rs x: 1 # contributors y: 10 # changes client/src/commands/journalist/mod.rs x: 1 # contributors y: 4 # changes common/src/api/api_client.rs x: 1 # contributors y: 8 # changes covernode/src/services/dead_drop_publishing/to_journalist_publishing_service.rs x: 1 # contributors y: 5 # changes journalist-vault/src/lib.rs x: 1 # contributors y: 28 # changes covernode/src/main.rs x: 1 # contributors y: 6 # changes supply-chain/config.toml x: 1 # contributors y: 15 # changes admin/src/backups.rs x: 1 # contributors y: 9 # changes admin/src/ceremony/state_machine.rs x: 1 # contributors y: 7 # changes common/src/protocol/backup.rs x: 1 # contributors y: 13 # changes journalist-client/src-tauri/src/lib.rs x: 1 # contributors y: 21 # changes android/gradle/verification-metadata.xml x: 1 # contributors y: 18 # changes tools/coverup/src/main.rs x: 1 # contributors y: 12 # changes journalist-client/src/App.tsx x: 1 # contributors y: 19 # changes
28.0
# changes
  min: 1.0
  average: 2.37
  25th percentile: 1.0
  median: 2.0
  75th percentile: 3.0
  max: 28.0
0 1.0
# contributors
min: 1.0 | average: 1.0 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 1.0

Number of Contributors vs. File Size: 647 points

android/core/src/main/java/com/theguardian/coverdrop/core/api/models/PublishedKeysAndProfiles.kt x: 1 # contributors y: 98 lines of code android/core/src/main/java/com/theguardian/coverdrop/core/crypto/KeyVerifier.kt x: 1 # contributors y: 313 lines of code android/testutils/src/main/java/com/theguardian/coverdrop/testutils/IntegrationTestKeys.kt x: 1 # contributors y: 49 lines of code api/migrations/20260722162726_add_dead_drop_created_at_index.down.sql x: 1 # contributors y: 4 lines of code api/src/controllers/dead_drops.rs x: 1 # contributors y: 195 lines of code api/src/controllers/dead_drops_legacy.rs x: 1 # contributors y: 75 lines of code api/src/main.rs x: 1 # contributors y: 248 lines of code api/src/services/queries/dead_drop_queries.rs x: 1 # contributors y: 250 lines of code client/src/commands/journalist/auto_reply.rs x: 1 # contributors y: 57 lines of code client/src/commands/journalist/mod.rs x: 1 # contributors y: 137 lines of code common/src/api/api_client.rs x: 1 # contributors y: 686 lines of code common/src/api/models/dead_drops/journalist_to_user/unverified_journalist_to_user_dead_drop_list.rs x: 1 # contributors y: 18 lines of code common/src/client/mailbox/user_mailbox/mod.rs x: 1 # contributors y: 298 lines of code common/src/protocol/covernode.rs x: 1 # contributors y: 215 lines of code covernode/src/services/dead_drop_publishing/to_journalist_publishing_service.rs x: 1 # contributors y: 102 lines of code journalist-services/coverdrop-service/src/coverdrop_service.rs x: 1 # contributors y: 529 lines of code journalist-vault/src/info_queries.rs x: 1 # contributors y: 150 lines of code journalist-vault/src/lib.rs x: 1 # contributors y: 1118 lines of code tools/message-canary/message-canary-database/src/database.rs x: 1 # contributors y: 318 lines of code covernode/covernode-database/src/database.rs x: 1 # contributors y: 708 lines of code covernode/src/main.rs x: 1 # contributors y: 183 lines of code covernode/src/mixing/mixing_strategy.rs x: 1 # contributors y: 440 lines of code admin/src/ceremony/state_machine.rs x: 1 # contributors y: 612 lines of code admin/src/main.rs x: 1 # contributors y: 539 lines of code api/src/controllers/keys.rs x: 1 # contributors y: 736 lines of code api/src/services/queries/hierarchy_queries.rs x: 1 # contributors y: 591 lines of code common/src/crypto/keys/serde.rs x: 1 # contributors y: 339 lines of code common/src/protocol/backup.rs x: 1 # contributors y: 833 lines of code common/src/protocol/keys/loading.rs x: 1 # contributors y: 282 lines of code covernode/src/key_state/inner_key_state.rs x: 1 # contributors y: 351 lines of code supply-chain/audits.toml x: 1 # contributors y: 3032 lines of code android/gradle/verification-metadata.xml x: 1 # contributors y: 4229 lines of code android/ui/src/main/java/com/theguardian/coverdrop/ui/components/PassphraseComponents.kt x: 1 # contributors y: 380 lines of code journalist-services/group-messaging-service/src/group_messaging_service.rs x: 1 # contributors y: 1017 lines of code journalist-client/src/euiIconsWorkAround.ts x: 1 # contributors y: 1035 lines of code tools/coverup/src/main.rs x: 1 # contributors y: 483 lines of code ios/reference/referenceTests/EncryptedStorageTests.swift x: 1 # contributors y: 221 lines of code android/core/src/main/java/com/theguardian/coverdrop/core/crypto/DeadDropProcessor.kt x: 1 # contributors y: 133 lines of code journalist-client/src/App.tsx x: 1 # contributors y: 408 lines of code journalist-client/src/components/GroupChat.tsx x: 1 # contributors y: 393 lines of code ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Styles/Styles.swift x: 1 # contributors y: 506 lines of code
4229.0
lines of code
  min: 1.0
  average: 113.34
  25th percentile: 25.0
  median: 55.0
  75th percentile: 128.0
  max: 4229.0
0 1.0
# contributors
min: 1.0 | average: 1.0 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 1.0

Number of Changes vs. Line Churn: 1372 points

integration-tests/README.md x: 4 # changes y: 11 line churn integration-tests/images/garage.Dockerfile x: 1 # changes y: 17 line churn integration-tests/images/minio.Dockerfile x: 2 # changes y: 10 line churn integration-tests/scripts/build/all.sh x: 3 # changes y: 6 line churn integration-tests/src/containers/api.rs x: 6 # changes y: 53 line churn integration-tests/src/containers/minio.rs x: 5 # changes y: 44 line churn integration-tests/src/images/api.rs x: 6 # changes y: 87 line churn integration-tests/src/images/garage.rs x: 1 # changes y: 86 line churn integration-tests/src/images/minio.rs x: 4 # changes y: 190 line churn integration-tests/src/stack.rs x: 10 # changes y: 652 line churn journalist-client/README.md x: 5 # changes y: 94 line churn Cargo.lock x: 27 # changes y: 10177 line churn journalist-client/package.json x: 15 # changes y: 94 line churn journalist-client/src-tauri/Cargo.toml x: 7 # changes y: 21 line churn android/core/src/androidTest/java/com/theguardian/coverdrop/core/crypto/KeyVerifierTest.kt x: 2 # changes y: 390 line churn android/core/src/androidTest/java/com/theguardian/coverdrop/core/integrationtests/KeyRotationsScenario.kt x: 2 # changes y: 112 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/KeyVerifier.kt x: 2 # changes y: 158 line churn android/gradle/libs.versions.toml x: 26 # changes y: 131 line churn integration-tests/tests/key_consensus.rs x: 5 # changes y: 188 line churn api/src/controllers/dead_drops.rs x: 3 # changes y: 116 line churn api/src/main.rs x: 10 # changes y: 176 line churn common/src/api/api_client.rs x: 8 # changes y: 455 line churn integration-tests/src/api_wrappers.rs x: 7 # changes y: 99 line churn integration-tests/tests/covernode_deduplication_j2u_scenario.rs x: 4 # changes y: 152 line churn integration-tests/tests/covernode_deduplication_u2j_scenario.rs x: 3 # changes y: 184 line churn journalist-services/coverdrop-service/src/coverdrop_service.rs x: 5 # changes y: 1006 line churn journalist-vault/src/lib.rs x: 28 # changes y: 1808 line churn tools/message-canary/message-canary-database/src/database.rs x: 4 # changes y: 69 line churn covernode/covernode-database/src/database.rs x: 3 # changes y: 471 line churn covernode/src/mixing/mixing_strategy.rs x: 4 # changes y: 398 line churn Cargo.toml x: 10 # changes y: 63 line churn supply-chain/config.toml x: 15 # changes y: 3478 line churn supply-chain/imports.lock x: 16 # changes y: 15071 line churn admin/src/backups.rs x: 9 # changes y: 472 line churn admin/src/ceremony/state_machine.rs x: 7 # changes y: 717 line churn admin/src/cli.rs x: 15 # changes y: 305 line churn admin/src/generate_keys.rs x: 3 # changes y: 147 line churn admin/src/main.rs x: 15 # changes y: 535 line churn api/src/controllers/keys.rs x: 6 # changes y: 469 line churn api/src/services/queries/hierarchy_queries.rs x: 3 # changes y: 319 line churn common/src/protocol/backup.rs x: 13 # changes y: 1486 line churn common/src/protocol/backup_data.rs x: 5 # changes y: 481 line churn common/src/protocol/keys/generation.rs x: 5 # changes y: 147 line churn common/src/protocol/keys/hierarchy/organization/organization_public_key_family_list.rs x: 6 # changes y: 251 line churn common/src/protocol/roles.rs x: 7 # changes y: 206 line churn integration-tests/tests/covernode_key_rotations.rs x: 10 # changes y: 447 line churn integration-tests/tests/journalist_key_rotation.rs x: 10 # changes y: 381 line churn journalist-services/coverdrop-service/src/rotatable_id_key_pair.rs x: 2 # changes y: 226 line churn journalist-client/package-lock.json x: 11 # changes y: 10532 line churn supply-chain/audits.toml x: 13 # changes y: 2385 line churn common/src/padded_byte_vector.rs x: 4 # changes y: 293 line churn integration-tests/tests/backup_key_counting.rs x: 7 # changes y: 161 line churn journalist-client/src-tauri/src/lib.rs x: 21 # changes y: 402 line churn android/gradle/verification-metadata.xml x: 18 # changes y: 474 line churn journalist-services/group-messaging-service/src/group_messaging_service.rs x: 3 # changes y: 1313 line churn tools/coverup/src/cli.rs x: 8 # changes y: 85 line churn tools/coverup/src/main.rs x: 12 # changes y: 209 line churn journalist-client/src/components/ChatsSideBar.tsx x: 18 # changes y: 1089 line churn journalist-vault/src/message_queries.rs x: 8 # changes y: 551 line churn journalist-vault/tests/migrations/u2j_message_deduplication.rs x: 1 # changes y: 226 line churn android/core/build.gradle.kts x: 6 # changes y: 168 line churn api/.sqlx/query-37ba5ae51beb9cf78c23230027edbeb5dc23c864c1011fdc358f5c44f572f3bd.json x: 2 # changes y: 284 line churn api/.sqlx/query-89fa28daf8c9f02800a49cdaf45e6232b4c2be8570cadb0d82ee662468bb83d2.json x: 1 # changes y: 160 line churn api/src/services/queries/sentinel_queries.rs x: 1 # changes y: 319 line churn integration-tests/src/group_messaging_utils.rs x: 2 # changes y: 1188 line churn integration-tests/tests/backup.rs x: 9 # changes y: 683 line churn integration-tests/tests/group_messaging.rs x: 2 # changes y: 648 line churn integration-tests/tests/group_messaging_basic.rs x: 1 # changes y: 296 line churn journalist-client/src-tauri/src/app_state.rs x: 10 # changes y: 290 line churn journalist-client/src-tauri/src/commands/admin.rs x: 8 # changes y: 190 line churn journalist-client/src-tauri/src/commands/backup.rs x: 7 # changes y: 288 line churn journalist-client/src-tauri/src/tasks/automated_backups.rs x: 7 # changes y: 419 line churn journalist-client/src/App.tsx x: 19 # changes y: 594 line churn journalist-client/src/components/Chat.tsx x: 13 # changes y: 725 line churn journalist-client/src/components/ChatsSideBar.stories.tsx x: 5 # changes y: 305 line churn journalist-client/src/components/ChooseBackupContactModal.tsx x: 6 # changes y: 233 line churn journalist-client/src/components/GroupChat.tsx x: 1 # changes y: 422 line churn journalist-client/src/components/SettingsPopover.tsx x: 18 # changes y: 513 line churn journalist-client/src/components/UserChat.tsx x: 1 # changes y: 392 line churn journalist-vault/src/id_key_queries.rs x: 3 # changes y: 281 line churn admin/src/lib.rs x: 8 # changes y: 29 line churn admin/src/ceremony/tests.rs x: 3 # changes y: 375 line churn common/src/crypto/secret_sharing.rs x: 2 # changes y: 473 line churn integration-tests/tests/backups.rs x: 6 # changes y: 968 line churn
15071.0
line churn
  min: 1.0
  average: 82.6
  25th percentile: 5.0
  median: 15.0
  75th percentile: 47.0
  max: 15071.0
0 28.0
# changes
min: 1.0 | average: 2.04 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 2.0 | max: 28.0

Number of Contributors vs. Line Churn: 647 points

android/core/src/main/java/com/theguardian/coverdrop/core/api/models/PublishedKeysAndProfiles.kt x: 1 # contributors y: 6 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/CertificateData.kt x: 1 # contributors y: 75 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/KeyVerifier.kt x: 1 # contributors y: 158 line churn android/testutils/src/main/java/com/theguardian/coverdrop/testutils/IntegrationTestKeys.kt x: 1 # contributors y: 16 line churn android/gradle/libs.versions.toml x: 1 # contributors y: 131 line churn api/src/controllers/dead_drops.rs x: 1 # contributors y: 116 line churn api/src/controllers/dead_drops_legacy.rs x: 1 # contributors y: 91 line churn api/src/main.rs x: 1 # contributors y: 176 line churn api/src/services/queries/dead_drop_queries.rs x: 1 # contributors y: 103 line churn client/src/commands/user/dead_drops.rs x: 1 # contributors y: 31 line churn common/src/api/api_client.rs x: 1 # contributors y: 455 line churn covernode/src/services/dead_drop_publishing/to_journalist_publishing_service.rs x: 1 # contributors y: 60 line churn covernode/src/services/dead_drop_publishing/to_user_publishing_service.rs x: 1 # contributors y: 53 line churn journalist-services/coverdrop-service/src/coverdrop_service.rs x: 1 # contributors y: 1006 line churn journalist-vault/src/lib.rs x: 1 # contributors y: 1808 line churn journalist-vault/src/logging.rs x: 1 # contributors y: 225 line churn covernode/covernode-database/src/database.rs x: 1 # contributors y: 471 line churn covernode/src/mixing/mixing_strategy.rs x: 1 # contributors y: 398 line churn supply-chain/config.toml x: 1 # contributors y: 3478 line churn admin/src/ceremony/state_machine.rs x: 1 # contributors y: 717 line churn admin/src/cli.rs x: 1 # contributors y: 305 line churn admin/src/generate_keys.rs x: 1 # contributors y: 147 line churn admin/src/main.rs x: 1 # contributors y: 535 line churn api/src/services/queries/hierarchy_queries.rs x: 1 # contributors y: 319 line churn common/src/protocol/backup.rs x: 1 # contributors y: 1486 line churn common/src/protocol/backup_data.rs x: 1 # contributors y: 481 line churn common/src/protocol/keys/hierarchy/organization/organization_public_key_family_list.rs x: 1 # contributors y: 251 line churn common/src/protocol/roles.rs x: 1 # contributors y: 206 line churn covernode/src/services/tasks/create_keys_task.rs x: 1 # contributors y: 396 line churn journalist-vault/src/promotable_id_key_pair.rs x: 1 # contributors y: 377 line churn supply-chain/audits.toml x: 1 # contributors y: 2385 line churn common/src/padded_byte_vector.rs x: 1 # contributors y: 293 line churn journalist-services/group-messaging-service/src/group_messaging_service.rs x: 1 # contributors y: 1313 line churn journalist-client/src/components/ChatsSideBar.tsx x: 1 # contributors y: 1089 line churn journalist-vault/src/message_queries.rs x: 1 # contributors y: 551 line churn api/src/controllers/backups.rs x: 1 # contributors y: 435 line churn group-messaging/delivery-service/src/controllers/clients.rs x: 1 # contributors y: 181 line churn group-messaging/delivery-service/src/services/queries/message_queries.rs x: 1 # contributors y: 267 line churn journalist-client/src-tauri/src/tasks/automated_backups.rs x: 1 # contributors y: 419 line churn journalist-client/src/App.tsx x: 1 # contributors y: 594 line churn journalist-client/src/components/ChooseBackupContactModal.tsx x: 1 # contributors y: 233 line churn journalist-client/src/components/SettingsPopover.tsx x: 1 # contributors y: 513 line churn journalist-services/group-messaging-service/src/models.rs x: 1 # contributors y: 194 line churn
3478.0
line churn
  min: 1.0
  average: 77.25
  25th percentile: 6.0
  median: 18.0
  75th percentile: 66.0
  max: 3478.0
0 1.0
# contributors
min: 1.0 | average: 1.0 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 1.0

File Size vs. Line Churn: 647 points

android/core/src/main/java/com/theguardian/coverdrop/core/api/models/PublishedKeysAndProfiles.kt x: 98 lines of code y: 6 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/CertificateData.kt x: 90 lines of code y: 75 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/KeyVerifier.kt x: 313 lines of code y: 158 line churn android/testutils/src/main/java/com/theguardian/coverdrop/testutils/IntegrationTestKeys.kt x: 49 lines of code y: 16 line churn android/testutils/src/main/java/com/theguardian/coverdrop/testutils/IntegrationTestVectors.kt x: 40 lines of code y: 13 line churn android/gradle/libs.versions.toml x: 84 lines of code y: 131 line churn api/migrations/20260722162726_add_dead_drop_created_at_index.down.sql x: 4 lines of code y: 5 line churn api/scripts/db/wipe_all_tables.sql x: 13 lines of code y: 4 line churn api/src/controllers/dead_drops.rs x: 195 lines of code y: 116 line churn api/src/controllers/dead_drops_legacy.rs x: 75 lines of code y: 91 line churn api/src/main.rs x: 248 lines of code y: 176 line churn api/src/services/queries/dead_drop_queries.rs x: 250 lines of code y: 103 line churn client/src/commands/dead_drops.rs x: 42 lines of code y: 17 line churn client/src/commands/journalist/auto_reply.rs x: 57 lines of code y: 5 line churn client/src/commands/journalist/dead_drops.rs x: 57 lines of code y: 23 line churn client/src/commands/journalist/mod.rs x: 137 lines of code y: 18 line churn client/src/commands/user/dead_drops.rs x: 39 lines of code y: 31 line churn client/src/commands/user/mod.rs x: 84 lines of code y: 17 line churn common/src/api/api_client.rs x: 686 lines of code y: 455 line churn common/src/api/models/dead_drops/journalist_to_user/unverified_journalist_to_user_dead_drop_list.rs x: 18 lines of code y: 6 line churn common/src/client/mailbox/user_mailbox/mod.rs x: 298 lines of code y: 28 line churn common/src/client/mailbox/user_mailbox/secret_mailbox_data.rs x: 86 lines of code y: 29 line churn common/src/lib.rs x: 33 lines of code y: 4 line churn common/src/protocol/covernode.rs x: 215 lines of code y: 113 line churn covernode/src/services/dead_drop_publishing/to_journalist_publishing_service.rs x: 102 lines of code y: 60 line churn covernode/src/services/dead_drop_publishing/to_user_publishing_service.rs x: 99 lines of code y: 53 line churn journalist-services/coverdrop-service/src/coverdrop_service.rs x: 529 lines of code y: 1006 line churn journalist-vault/src/info_queries.rs x: 150 lines of code y: 133 line churn journalist-vault/src/lib.rs x: 1118 lines of code y: 1808 line churn journalist-vault/src/logging.rs x: 250 lines of code y: 225 line churn tools/message-canary/message-canary-database/src/database.rs x: 318 lines of code y: 69 line churn tools/message-canary/src/services/receive_j2u.rs x: 102 lines of code y: 92 line churn covernode/covernode-database/src/database.rs x: 708 lines of code y: 471 line churn covernode/covernode-database/src/message_hashes.rs x: 41 lines of code y: 76 line churn covernode/src/cli.rs x: 73 lines of code y: 22 line churn covernode/src/lib.rs x: 94 lines of code y: 158 line churn covernode/src/main.rs x: 183 lines of code y: 81 line churn covernode/src/mixing/mixing_message_types.rs x: 65 lines of code y: 46 line churn covernode/src/mixing/mixing_strategy.rs x: 440 lines of code y: 398 line churn covernode/src/services/decrypt_and_threshold/user_to_journalist_decrypt_and_threshold_service.rs x: 139 lines of code y: 92 line churn covernode/src/services/journalist_to_user_covernode_service.rs x: 73 lines of code y: 9 line churn covernode/src/services/tasks/delete_expired_message_hashes_task.rs x: 16 lines of code y: 34 line churn supply-chain/config.toml x: 78 lines of code y: 3478 line churn admin/src/backups.rs x: 239 lines of code y: 472 line churn admin/src/ceremony/state_machine.rs x: 612 lines of code y: 717 line churn admin/src/cli.rs x: 306 lines of code y: 305 line churn admin/src/generate_covernode_database.rs x: 51 lines of code y: 4 line churn admin/src/generate_journalists.rs x: 159 lines of code y: 90 line churn admin/src/generate_keys.rs x: 254 lines of code y: 147 line churn admin/src/integration_tests/generate_journalist_messaging_keys.rs x: 28 lines of code y: 42 line churn admin/src/main.rs x: 539 lines of code y: 535 line churn admin/src/reseed_journalist_vault_id_key_pair.rs x: 47 lines of code y: 55 line churn api/src/controllers/keys.rs x: 736 lines of code y: 469 line churn api/src/services/queries/hierarchy_queries.rs x: 591 lines of code y: 319 line churn common/src/api/models/sentinel_id.rs x: 55 lines of code y: 79 line churn common/src/backup/constants.rs x: 8 lines of code y: 27 line churn common/src/backup/keys.rs x: 83 lines of code y: 118 line churn common/src/client/mailbox/user_mailbox/plain_mailbox_data.rs x: 65 lines of code y: 7 line churn common/src/crypto/keys/encryption.rs x: 46 lines of code y: 52 line churn common/src/crypto/keys/id_key_certificate_data.rs x: 37 lines of code y: 62 line churn common/src/crypto/keys/role.rs x: 48 lines of code y: 89 line churn common/src/crypto/keys/serde.rs x: 339 lines of code y: 52 line churn common/src/crypto/keys/signing.rs x: 325 lines of code y: 83 line churn common/src/crypto/keys/untrusted/encryption/signed_public_encryption_key.rs x: 81 lines of code y: 38 line churn common/src/crypto/keys/untrusted/signing/signed_public_signing_key.rs x: 115 lines of code y: 76 line churn common/src/protocol/backup.rs x: 833 lines of code y: 1486 line churn common/src/protocol/backup_data.rs x: 291 lines of code y: 481 line churn common/src/protocol/constants.rs x: 65 lines of code y: 112 line churn common/src/protocol/keys/generation.rs x: 334 lines of code y: 147 line churn common/src/protocol/keys/hierarchy/identity_public_key_family.rs x: 66 lines of code y: 24 line churn common/src/protocol/keys/hierarchy/identity_public_key_family_list.rs x: 108 lines of code y: 29 line churn common/src/protocol/keys/hierarchy/journalist/journalist_provisioning_public_key_family.rs x: 99 lines of code y: 33 line churn common/src/protocol/keys/hierarchy/organization/organization_public_key_family_list.rs x: 583 lines of code y: 251 line churn common/src/protocol/keys/hierarchy/sentinel/sentinel_id_public_key_list.rs x: 39 lines of code y: 57 line churn common/src/protocol/keys/loading.rs x: 282 lines of code y: 96 line churn common/src/protocol/keys/mod.rs x: 168 lines of code y: 95 line churn common/src/protocol/keys/sign.rs x: 93 lines of code y: 113 line churn common/src/protocol/keys/verification.rs x: 314 lines of code y: 303 line churn common/src/protocol/roles.rs x: 106 lines of code y: 206 line churn covernode/src/key_state/inner_key_state.rs x: 351 lines of code y: 34 line churn covernode/src/services/tasks/create_keys_task.rs x: 84 lines of code y: 396 line churn covernode/src/services/tasks/publish_keys_task.rs x: 244 lines of code y: 45 line churn identity-api/src/tasks/journalist_id_key_rotation.rs x: 93 lines of code y: 125 line churn journalist-services/coverdrop-service/src/rotatable_id_key_pair.rs x: 161 lines of code y: 226 line churn journalist-vault/src/journalist_id_key_queries.rs x: 195 lines of code y: 226 line churn journalist-vault/src/msg_key_queries.rs x: 208 lines of code y: 83 line churn journalist-vault/src/promotable_id_key_pair.rs x: 310 lines of code y: 377 line churn journalist-vault/src/provisioning_key_queries.rs x: 102 lines of code y: 76 line churn journalist-vault/src/sentinel_id_key_queries.rs x: 187 lines of code y: 216 line churn journalist-vault/src/vault_setup_bundle.rs x: 174 lines of code y: 126 line churn supply-chain/audits.toml x: 3032 lines of code y: 2385 line churn .devcontainer/devenv.yaml x: 12 lines of code y: 60 line churn admin/src/generate_test_vectors.rs x: 234 lines of code y: 12 line churn client/src/main.rs x: 86 lines of code y: 6 line churn common/src/padded_byte_vector.rs x: 211 lines of code y: 293 line churn journalist-client/src-tauri/src/lib.rs x: 246 lines of code y: 402 line churn tools/coverup/src/aws/secrets.rs x: 79 lines of code y: 2 line churn tools/coverup/src/data_copier_pod.rs x: 359 lines of code y: 2 line churn u2j-appender/src/controllers.rs x: 146 lines of code y: 5 line churn android/gradle/verification-metadata.xml x: 4229 lines of code y: 474 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/activities/CoverDropActivity.kt x: 150 lines of code y: 43 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/components/PassphraseComponents.kt x: 380 lines of code y: 14 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Components/PassphraseForm.swift x: 101 lines of code y: 2 line churn journalist-services/group-messaging-service/src/group_messaging_service.rs x: 1017 lines of code y: 1313 line churn journalist-client/src/euiIconsWorkAround.ts x: 1035 lines of code y: 4 line churn tasks/key-expiry/src/cli.rs x: 16 lines of code y: 25 line churn tools/coverup/src/cli.rs x: 300 lines of code y: 85 line churn tools/coverup/src/main.rs x: 483 lines of code y: 209 line churn common/src/aws/kinesis/client.rs x: 360 lines of code y: 28 line churn common/src/aws/kinesis/models/checkpoint.rs x: 31 lines of code y: 14 line churn common/src/protocol/journalist.rs x: 159 lines of code y: 13 line churn covernode/src/services/mod.rs x: 24 lines of code y: 4 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/DeadDrops/DeadDropMessageParser.swift x: 38 lines of code y: 37 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/DeadDrops/VerifiedDeadDrops.swift x: 76 lines of code y: 53 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Models/MessageData.swift x: 116 lines of code y: 51 line churn ios/reference/referenceTests/EncryptedStorageTests.swift x: 221 lines of code y: 150 line churn journalist-client/src/components/ChatsSideBar.tsx x: 748 lines of code y: 1089 line churn journalist-vault/migrations/20260810115135_u2j_deduplication.up.sql x: 26 lines of code y: 32 line churn journalist-vault/src/message_queries.rs x: 602 lines of code y: 551 line churn tools/message-canary/src/services/receive_u2j.rs x: 62 lines of code y: 165 line churn admin/src/generate_constants_files.rs x: 303 lines of code y: 135 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/DeadDropProcessor.kt x: 133 lines of code y: 5 line churn common/src/api/models/messages/journalist_to_user_message.rs x: 126 lines of code y: 46 line churn android/app/build.gradle.kts x: 143 lines of code y: 222 line churn android/core/src/main/java/com/theguardian/coverdrop/core/persistence/MailboxContent.kt x: 104 lines of code y: 125 line churn android/core/build.gradle.kts x: 107 lines of code y: 168 line churn api/src/controllers/backups.rs x: 114 lines of code y: 435 line churn api/src/controllers/journalist_message.rs x: 81 lines of code y: 71 line churn api/src/services/queries/journalist_queries.rs x: 498 lines of code y: 32 line churn api/src/services/queries/sentinel_queries.rs x: 279 lines of code y: 319 line churn common/src/api/forms/post_sentinel_id_pk.rs x: 34 lines of code y: 42 line churn common/src/clients.rs x: 57 lines of code y: 42 line churn common/src/error.rs x: 81 lines of code y: 18 line churn common/src/protocol/keys/hierarchy/organization/untrusted_organization_public_key_family.rs x: 24 lines of code y: 20 line churn common/src/task/runner.rs x: 176 lines of code y: 33 line churn group-messaging/delivery-service-lib/src/client.rs x: 101 lines of code y: 151 line churn group-messaging/delivery-service/src/controllers/clients.rs x: 130 lines of code y: 181 line churn group-messaging/delivery-service/src/controllers/messages.rs x: 149 lines of code y: 217 line churn group-messaging/delivery-service/src/error.rs x: 147 lines of code y: 156 line churn group-messaging/delivery-service/src/helpers.rs x: 57 lines of code y: 96 line churn group-messaging/delivery-service/src/main.rs x: 88 lines of code y: 118 line churn group-messaging/delivery-service/src/services/queries/client_queries.rs x: 55 lines of code y: 187 line churn group-messaging/delivery-service/src/services/queries/message_queries.rs x: 144 lines of code y: 267 line churn identity-api/src/main.rs x: 109 lines of code y: 44 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/EncryptedStorage.swift x: 138 lines of code y: 53 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/ContentView.swift x: 165 lines of code y: 16 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/JournalistMessageView.swift x: 235 lines of code y: 64 line churn journalist-client/src-tauri/src/app_state.rs x: 299 lines of code y: 290 line churn journalist-client/src-tauri/src/commands/admin.rs x: 178 lines of code y: 190 line churn journalist-client/src-tauri/src/commands/backup.rs x: 146 lines of code y: 288 line churn journalist-client/src-tauri/src/commands/chats.rs x: 222 lines of code y: 188 line churn journalist-client/src-tauri/src/commands/vaults.rs x: 118 lines of code y: 162 line churn journalist-client/src-tauri/src/model/backend_to_frontend_events.rs x: 18 lines of code y: 129 line churn journalist-client/src-tauri/src/notifications.rs x: 59 lines of code y: 28 line churn journalist-client/src-tauri/src/tasks/automated_backups.rs x: 241 lines of code y: 419 line churn journalist-client/src-tauri/src/tasks/group_messaging.rs x: 34 lines of code y: 80 line churn journalist-client/src/App.tsx x: 408 lines of code y: 594 line churn journalist-client/src/ErrorBoundary.tsx x: 62 lines of code y: 75 line churn journalist-client/src/commands/admin.ts x: 63 lines of code y: 65 line churn journalist-client/src/commands/groups.ts x: 61 lines of code y: 68 line churn journalist-client/src/components/ChatsSideBar.stories.tsx x: 242 lines of code y: 305 line churn journalist-client/src/components/ChooseBackupContactModal.tsx x: 162 lines of code y: 233 line churn journalist-client/src/components/CreateOrEditGroupModal.tsx x: 145 lines of code y: 153 line churn journalist-client/src/components/CustomExpiryModal.tsx x: 215 lines of code y: 270 line churn journalist-client/src/components/ForceRotateKeyModal.tsx x: 50 lines of code y: 69 line churn journalist-client/src/components/GroupChangeMessages.stories.tsx x: 90 lines of code y: 105 line churn journalist-client/src/components/GroupChat.stories.tsx x: 122 lines of code y: 132 line churn journalist-client/src/components/GroupChat.tsx x: 393 lines of code y: 422 line churn journalist-client/src/components/GroupMessageDisplay.tsx x: 195 lines of code y: 206 line churn journalist-client/src/components/IdleTimeoutMonitor.tsx x: 213 lines of code y: 260 line churn journalist-client/src/components/SentinelProfileDisplay.tsx x: 41 lines of code y: 46 line churn journalist-client/src/components/SettingsPopover.tsx x: 385 lines of code y: 513 line churn journalist-client/src/components/UserChat.stories.tsx x: 126 lines of code y: 142 line churn journalist-client/src/components/UserChat.tsx x: 324 lines of code y: 392 line churn journalist-client/src/hooks/useTrayIcon.ts x: 299 lines of code y: 423 line churn journalist-client/src/state/groups.ts x: 95 lines of code y: 106 line churn journalist-client/src/views/OpenVault.tsx x: 215 lines of code y: 64 line churn journalist-services/group-messaging-service/src/models.rs x: 157 lines of code y: 194 line churn journalist-vault/src/group_messaging_queries.rs x: 271 lines of code y: 301 line churn journalist-vault/src/key_rows.rs x: 166 lines of code y: 72 line churn tools/message-canary/src/services/send_j2u.rs x: 73 lines of code y: 56 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/Keys/VerifiedKeys.swift x: 341 lines of code y: 41 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/PrivateSendingQueue/PrivateSendingQueue.swift x: 243 lines of code y: 9 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Models/PublicKeysData.swift x: 121 lines of code y: 34 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Repositories/PublicDataRepository.swift x: 189 lines of code y: 32 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Services/BackgroundTaskService.swift x: 144 lines of code y: 168 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Utilities/TestOnlyUtils/CoverDropServiceHelper.swift x: 209 lines of code y: 108 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Utilities/TestOnlyUtils/IntegrationTestScenarioContext.swift x: 106 lines of code y: 14 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Utilities/TestOnlyUtils/PublicKeysHelper.swift x: 185 lines of code y: 104 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/AboutCoverDropView.swift x: 178 lines of code y: 2 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Components/MessageView.swift x: 118 lines of code y: 5 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/InboxView.swift x: 222 lines of code y: 6 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/InboxViewModel.swift x: 127 lines of code y: 14 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/OnboardingView.swift x: 138 lines of code y: 9 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Styles/Styles.swift x: 506 lines of code y: 4 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/UserContinueSessionView.swift x: 163 lines of code y: 7 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/UserNewSessionView.swift x: 336 lines of code y: 6 line churn ios/reference/referenceTests/BackgroundMessagesScheduleServiceTests.swift x: 155 lines of code y: 110 line churn ios/reference/referenceTests/Repositories/SecretDataRepositoryTests.swift x: 311 lines of code y: 62 line churn ios/reference/referenceUITests/NavigationUITests.swift x: 108 lines of code y: 86 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Crypto/FixedSizePadding.swift x: 89 lines of code y: 140 line churn journalist-client/src-tauri/src/tasks/pull_dead_drops.rs x: 35 lines of code y: 202 line churn ios/reference/CoverDropUserInterface/Sources/CoverDropUserInterface/Resources/HelpScreenMarkupStrings.swift x: 240 lines of code y: 16 line churn common/src/aws/s3/client.rs x: 82 lines of code y: 109 line churn common/src/backup/get_backup_data_s3.rs x: 60 lines of code y: 87 line churn admin/src/ceremony/mod.rs x: 229 lines of code y: 155 line churn admin/src/ceremony/public_key_forms_bundle.rs x: 70 lines of code y: 69 line churn journalist-client/src/components/BackgroundTaskTrackerWithLoadingBarIfApplicable.tsx x: 113 lines of code y: 130 line churn journalist-client/src/commands/vaults.ts x: 44 lines of code y: 101 line churn tools/message-canary/src/main.rs x: 176 lines of code y: 90 line churn journalist-vault/migrations/20260129145341_remove_anchor_organization_pks_table.sql x: 63 lines of code y: 88 line churn common/src/clap.rs x: 209 lines of code y: 16 line churn common/src/crypto/keys/signed.rs x: 92 lines of code y: 67 line churn journalist-client/src-tauri/src/tasks/sync_public_keys.rs x: 20 lines of code y: 55 line churn journalist-vault/src/vault_message.rs x: 83 lines of code y: 87 line churn tools/cover-traffic/src/continuous/mod.rs x: 176 lines of code y: 14 line churn journalist-client/src/components/ManualBackupModal.tsx x: 225 lines of code y: 256 line churn android/core/src/main/java/com/theguardian/coverdrop/core/CoverDropLib.kt x: 329 lines of code y: 5 line churn android/core/src/main/java/com/theguardian/coverdrop/core/CoverDropPrivateDataRepository.kt x: 200 lines of code y: 9 line churn android/core/src/main/java/com/theguardian/coverdrop/core/CoverDropPublicDataRepository.kt x: 219 lines of code y: 20 line churn android/core/src/main/java/com/theguardian/coverdrop/core/api/models/VerifiedKeys.kt x: 111 lines of code y: 12 line churn journalist-client/src/components/BackupReminderToastBody.tsx x: 42 lines of code y: 92 line churn journalist-client/src/components/CopyToClipboardModal.tsx x: 117 lines of code y: 139 line churn common/src/argon2_sqlcipher.rs x: 312 lines of code y: 13 line churn journalist-client/src/constants.ts x: 5 lines of code y: 16 line churn api/src/error.rs x: 49 lines of code y: 31 line churn journalist-vault/src/backup_queries.rs x: 125 lines of code y: 193 line churn common/src/crypto/secret_sharing.rs x: 333 lines of code y: 473 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/PrivateSendingQueue.kt x: 254 lines of code y: 1 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/components/HelpScreenContent.kt x: 284 lines of code y: 11 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/ContinueSessionScreen.kt x: 327 lines of code y: 10 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/ConversationScreen.kt x: 303 lines of code y: 100 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/EntryScreen.kt x: 235 lines of code y: 17 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/InboxScreen.kt x: 407 lines of code y: 20 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/NewSessionScreen.kt x: 412 lines of code y: 10 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/screens/RecipientSelectionScreen.kt x: 396 lines of code y: 27 line churn journalist-client/src/components/Logs.tsx x: 359 lines of code y: 390 line churn journalist-client/src-tauri/src/logging/mod.rs x: 116 lines of code y: 63 line churn ios/reference/CoverDropCore/Sources/CoverDropCore/Services/CoverDropService.swift x: 191 lines of code y: 65 line churn api/src/services/queries/backup_key_queries.rs x: 151 lines of code y: 174 line churn journalist-vault/src/user_queries.rs x: 142 lines of code y: 40 line churn android/core/src/main/java/com/theguardian/coverdrop/core/crypto/DeadDropParser.kt x: 95 lines of code y: 26 line churn ios/reference/referenceUITests/LifecycleTest.swift x: 75 lines of code y: 105 line churn tools/coverup/src/multipass/mod.rs x: 129 lines of code y: 6 line churn journalist-client/src/components/EditUserModal.tsx x: 110 lines of code y: 98 line churn android/core/src/main/java/com/theguardian/coverdrop/core/persistence/PublicStorage.kt x: 190 lines of code y: 4 line churn android/ui/src/main/java/com/theguardian/coverdrop/ui/components/ChatBubble.kt x: 271 lines of code y: 164 line churn tools/coverup/src/admin/generate_identity_api_db.rs x: 143 lines of code y: 181 line churn common/src/client/mailbox/mailbox_message.rs x: 220 lines of code y: 1 line churn identity-api/identity-api-database/src/database.rs x: 268 lines of code y: 57 line churn
3478.0
line churn
  min: 1.0
  average: 77.25
  25th percentile: 6.0
  median: 18.0
  75th percentile: 66.0
  max: 3478.0
0 4229.0
lines of code
min: 1.0 | average: 113.34 | 25th percentile: 25.0 | median: 55.0 | 75th percentile: 128.0 | max: 4229.0