Peter Steinberger
312443235d
fix(ios): unblock device builds
2025-12-30 11:16:15 +01:00
Peter Steinberger
0d95d63258
fix(macos): await-safe session key selection
2025-12-30 11:07:34 +01:00
Peter Steinberger
f86772f26c
fix(talk): harden TTS + add system fallback
2025-12-30 07:40:02 +01:00
Peter Steinberger
a7617e4d79
fix(ui): refine talk overlays
2025-12-30 06:47:35 +01:00
Peter Steinberger
7612a83fa2
fix(talk): align sessions and chat UI
2025-12-30 06:47:19 +01:00
Peter Steinberger
afbd18e8df
fix(talk): harden playback, interrupts, and timeouts
2025-12-30 06:05:43 +01:00
Peter Steinberger
be2bc61d38
fix(talk): hard-timeout ElevenLabs synthesis
2025-12-30 05:46:47 +01:00
Peter Steinberger
fb8f72d5a9
feat(ui): add centered talk orb
2025-12-30 05:27:29 +01:00
Peter Steinberger
b5ae2ccc3c
fix(voice): sync talk mode chat events
2025-12-30 05:27:11 +01:00
Peter Steinberger
05efc3eace
fix: avoid iOS talk mode audio tap crash
2025-12-30 04:52:57 +01:00
Peter Steinberger
24f8ff7548
chore(protocol): regenerate Swift gateway models
2025-12-30 04:42:08 +01:00
Peter Steinberger
c0c6782a17
fix(android): stabilize BridgeSession shutdown
2025-12-30 04:42:02 +01:00
Peter Steinberger
d2ac672f47
feat: add ui.seamColor accent
2025-12-30 04:14:36 +01:00
Peter Steinberger
e3d8d5f300
fix(macos): prevent Talk Mode audio hang
2025-12-30 04:14:16 +01:00
Peter Steinberger
c5d5c9fcb5
fix: make android canvas background visible
2025-12-30 04:02:52 +01:00
Peter Steinberger
2e040ee07a
fix: brighten android canvas
2025-12-30 03:58:18 +01:00
Peter Steinberger
9846c46434
fix: tag A2UI platform and boost Android canvas
2025-12-30 03:49:24 +01:00
Peter Steinberger
5c7c1af44e
fix: android talk timestamp parsing
2025-12-30 02:05:14 +01:00
Peter Steinberger
e119a82334
feat: talk mode key distribution and tts polling
2025-12-30 01:57:58 +01:00
Peter Steinberger
02db68aa67
fix(macos): hide Restart Gateway when remote
2025-12-30 01:57:58 +01:00
Peter Steinberger
7aabe73521
chore: sync pending changes
2025-12-30 00:59:30 +01:00
Peter Steinberger
37f85bb2d1
fix: expand talk overlay bounds
2025-12-30 00:58:58 +01:00
Peter Steinberger
39fccc3699
fix: talk overlay + elevenlabs defaults
2025-12-30 00:51:17 +01:00
Peter Steinberger
53eccc1c1e
fix: wire talk menu + mac build
2025-12-30 00:17:10 +01:00
Peter Steinberger
c56292a6ec
feat: move talk mode to overlay button
2025-12-30 00:01:21 +01:00
Peter Steinberger
857cd6a28a
fix: align ios lint and android build
2025-12-29 23:45:58 +01:00
Peter Steinberger
303954ae8c
feat: extend status activity indicators
2025-12-29 23:42:22 +01:00
Peter Steinberger
3c338d1858
fix: adjust android talk parser for kotlin json
2025-12-29 23:26:38 +01:00
Peter Steinberger
20d7882033
feat: add talk mode across nodes
2025-12-29 23:21:05 +01:00
Peter Steinberger
6927b0fb8d
fix: align camera payload caps
2025-12-29 23:20:55 +01:00
Peter Steinberger
8f0c8a6561
fix: cap camera snap payload size
2025-12-29 23:12:20 +01:00
Peter Steinberger
a61b7056d5
feat: surface camera activity in status pill
2025-12-29 23:12:03 +01:00
Peter Steinberger
b0396e196f
fix: refresh bridge tokens and enrich node settings
2025-12-29 22:11:12 +01:00
Peter Steinberger
cf42fabfd8
test: add ios swift testing + android kotest
2025-12-29 21:10:44 +01:00
Peter Steinberger
24151a2028
fix: mark screen recorder sendable
2025-12-29 20:28:06 +01:00
Peter Steinberger
c11e2d9e5e
fix: avoid self capture in ReplayKit start
2025-12-29 20:26:49 +01:00
Peter Steinberger
a8c9b2810b
fix: align ReplayKit stopCapture call
2025-12-29 20:25:44 +01:00
Peter Steinberger
7a849ab7d1
fix: isolate ReplayKit capture state
2025-12-29 20:24:34 +01:00
Peter Steinberger
c14d738d37
fix: avoid screen recorder data races
2025-12-29 20:22:26 +01:00
Peter Steinberger
65478a6ff3
fix: avoid main-actor stopCapture error
2025-12-29 20:20:14 +01:00
Peter Steinberger
41be9232fe
fix: prevent iOS screen capture crash
2025-12-29 20:10:36 +01:00
Peter Steinberger
653932e50d
fix: show connected nodes only
2025-12-29 18:35:52 +01:00
Josh Palmer
0f7029583c
macOS: load device models from bundle resources
2025-12-29 17:49:13 +01:00
Josh Palmer
1d8b47785c
feat(macos): add current TeamID to Peekaboo allowlist
...
Problem: The bridge only accepts the upstream TeamID, so packaged builds signed locally (Nix/CI) can’t use the bridge even though they are the same app.
Fix: Include the running app’s TeamID (from its code signature) in the allowlist.
Safety: TeamID gating remains; this just adds the app’s own TeamID to preserve permissions/automation in reproducible installs.
2025-12-29 17:49:13 +01:00
Josh Palmer
5d19afd422
feat: improve health checks (telegram tokenFile + hints)
2025-12-29 17:49:13 +01:00
Josh Palmer
b7363f7c18
feat: Nix mode config, UX, onboarding, SwiftPM plist, docs
2025-12-29 17:49:13 +01:00
Peter Steinberger
aa2700ffa7
chore: set ios signing team for device builds
2025-12-29 17:38:21 +01:00
Peter Steinberger
510e2a1d17
fix: menu devices list
2025-12-29 17:31:23 +01:00
Peter Steinberger
ebfe55f909
fix: enable canvas webview scrolling on mobile nodes
2025-12-29 17:13:31 +01:00
Peter Steinberger
d529736597
fix(macos): fully stop Voice Wake runtime when disabled
2025-12-28 10:17:30 +00:00
Peter Steinberger
8dfc031c4d
fix: start gateway before control channel
2025-12-28 09:24:43 +00:00
Peter Steinberger
91c9859000
fix: harden heartbeat acks + gateway reconnect
2025-12-27 20:02:27 +00:00
Peter Steinberger
907371453d
fix(macos): soften light mode usage bar track
2025-12-27 14:05:36 +01:00
Peter Steinberger
81abffd145
fix(macos): boost light mode usage bar contrast
2025-12-27 14:03:45 +01:00
Peter Steinberger
44ef8fe5c8
fix(macos): refresh sessions on menu open
2025-12-27 13:49:03 +01:00
Peter Steinberger
ec482ac867
fix(macos): tighten chat window chrome
2025-12-27 03:21:14 +01:00
Peter Steinberger
ae52fb7a01
fix(macos): relax chat window min size
2025-12-27 02:55:24 +01:00
Peter Steinberger
e8ff08e121
fix(macos): round chat window chrome
2025-12-27 02:51:59 +01:00
Peter Steinberger
cc8e104cd6
fix(macos): enforce chat window default size
2025-12-27 02:43:50 +01:00
Peter Steinberger
5919a277bb
fix(macos): stabilize menu width tracking
2025-12-27 02:43:50 +01:00
Peter Steinberger
acd3f7dba7
fix(macos): lock menu width on hover
2025-12-27 01:50:25 +01:00
Peter Steinberger
eafcd862be
chore: update protocol models
2025-12-27 01:45:58 +01:00
Peter Steinberger
8826170635
fix: resolve CI lint and android build
2025-12-27 01:41:43 +01:00
Peter Steinberger
c54e4d0900
refactor: node tools and canvas host url
2025-12-27 01:36:29 +01:00
Peter Steinberger
4daf75a469
fix(macos): enforce node bridge timeouts
2025-12-27 00:02:41 +01:00
Peter Steinberger
d0293649cd
fix(macos): refresh menu sessions without resizing
2025-12-26 22:48:58 +01:00
Peter Steinberger
353366ac54
fix(macos): expand highlighted menu rows to full width
2025-12-26 22:41:29 +01:00
Peter Steinberger
1a8ffebb00
fix(macos): stabilize menu row width
2025-12-26 22:34:18 +01:00
Peter Steinberger
5ffbddcc57
feat(mac): add allow camera toggle
2025-12-26 21:33:22 +00:00
Peter Steinberger
5fbcbe7e52
feat(mac): add discord connections UI
2025-12-26 21:33:22 +00:00
Peter Steinberger
7daa93cf5a
fix(macos): expand menu hover highlight width
2025-12-26 22:30:29 +01:00
Peter Steinberger
1f25e38c2d
fix(macos): keep menu width stable while open
2025-12-26 22:27:24 +01:00
Peter Steinberger
c10a386d17
fix(macos): detect and reset stale SSH tunnels
2025-12-26 22:12:33 +01:00
Peter Steinberger
a13db82d28
fix(nodes): improve version reporting
2025-12-26 21:45:00 +01:00
Peter Steinberger
ec392dc870
feat(mac): add node ssh and compact versions
2025-12-26 20:42:49 +00:00
Peter Steinberger
90d00fb095
fix(mac): reorder menu toggles
2025-12-26 20:42:45 +00:00
Peter Steinberger
7f4c992dd7
fix(mac): move action group below toggles
2025-12-26 20:31:37 +00:00
Peter Steinberger
ba1626a5b9
fix(ios): accept truthy A2UI ready check
2025-12-26 21:17:37 +01:00
Peter Steinberger
ab73c40bfe
fix(mac): refine node submenu copy behavior
2025-12-26 20:05:23 +00:00
Peter Steinberger
4016bc2416
fix(a2ui): center empty canvas text
2025-12-26 20:43:45 +01:00
Peter Steinberger
9302daadc1
fix(mac): align node details
2025-12-26 19:32:48 +00:00
Peter Steinberger
de7429e148
fix(mac): show node versions in menu
2025-12-26 19:25:28 +00:00
Peter Steinberger
5892bd45d8
fix(mac): tweak menu icons
2025-12-26 19:23:53 +00:00
Peter Steinberger
9317eccfc8
fix(mac): regroup menubar sections
2025-12-26 19:18:12 +00:00
Peter Steinberger
1236c4dafb
refactor: make browser actions ref-only
2025-12-26 19:02:27 +00:00
Peter Steinberger
f50f18f65a
feat(mac): refine menubar nodes layout
2025-12-26 19:02:27 +00:00
Peter Steinberger
51b6a785e6
fix(canvas): center debug status overlay
2025-12-26 20:01:23 +01:00
Peter Steinberger
f4d41ef254
chore(ios): auto team id fallback
2025-12-26 18:19:48 +01:00
Peter Steinberger
b9d80aa535
chore(ios): add team id helper
2025-12-26 18:16:13 +01:00
Peter Steinberger
541b8cbb6c
fix(ios): silence device build warnings
2025-12-26 18:09:44 +01:00
Shadow
ac659ff5a7
feat(discord): Discord transport
2025-12-26 13:20:30 +01:00
Peter Steinberger
2868dc975c
chore: require node >=22.12 and fix swiftformat lint
2025-12-25 23:02:31 +01:00
Peter Steinberger
1c88d9575e
fix(webchat): refresh bubbles on theme change
2025-12-25 22:35:46 +01:00
Peter Steinberger
57090d4f8d
fix: align chat scroll anchor
2025-12-25 04:10:47 +01:00
Peter Steinberger
2442186a31
fix: silence view warnings
2025-12-25 03:23:31 +01:00
Peter Steinberger
3bb5baa6d2
fix: default tailscale serve in settings
2025-12-24 22:09:23 +00:00
Peter Steinberger
88be2701f4
refactor: split utilities
2025-12-24 22:16:06 +01:00
Peter Steinberger
4d4308af78
fix: resolve coverage profile symbol at runtime
2025-12-24 21:43:46 +01:00
Peter Steinberger
3bc1644f34
refactor: split canvas window
2025-12-24 21:04:52 +01:00
Peter Steinberger
337390b590
fix: allow overlay present access
2025-12-24 20:24:37 +01:00
Peter Steinberger
836d950e05
fix: restore voice wake overlay build
2025-12-24 20:17:01 +01:00
Peter Steinberger
ad096f77fc
refactor: split voice wake overlay
2025-12-24 20:09:56 +01:00
Peter Steinberger
3774494f7e
test: add ios coverage tests
2025-12-24 20:00:51 +01:00
Peter Steinberger
14fae5af9e
test: add ios coverage hooks
2025-12-24 20:00:45 +01:00
Peter Steinberger
65b48561a9
refactor: split critter status label
2025-12-24 19:56:24 +01:00
Peter Steinberger
842dc14c18
style: format port guardian
2025-12-24 19:41:32 +01:00
Peter Steinberger
af1afa7ba6
style: format cron settings
2025-12-24 19:40:11 +01:00
Peter Steinberger
8c4c5e524b
refactor: split cron settings
2025-12-24 19:36:10 +01:00
Peter Steinberger
204bd7d2c4
test: add mac coverage helpers
2025-12-24 19:29:44 +01:00
Peter Steinberger
f44014ff00
refactor: split onboarding view
2025-12-24 19:29:27 +01:00
Peter Steinberger
01719b02e2
test: cover bridge settings discovery
2025-12-24 18:07:41 +01:00
Peter Steinberger
4ba86bbe00
test: cover bridge hello defaults
2025-12-24 18:07:38 +01:00
Peter Steinberger
131a9aa1ac
style: format macos sources
2025-12-24 17:47:35 +01:00
Peter Steinberger
f4fb80e523
test: expand overlay coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
49e466dd40
test: expand menu and node coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
deec315f6a
test: expand settings coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
7fafe54e16
test: expand onboarding coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
bdcbc829a0
test: add coverage flush helper
2025-12-24 17:43:30 +01:00
Peter Steinberger
aa62ac4042
fix: use recognition update segments
2025-12-24 15:27:06 +01:00
Peter Steinberger
e8f24910bd
style: swiftformat chat ui
2025-12-24 15:10:31 +01:00
Peter Steinberger
8d34e54dc5
fix: address swiftlint warnings
2025-12-24 15:10:22 +01:00
Peter Steinberger
8878fd3028
ui: merge tool call results
2025-12-24 14:38:43 +01:00
Peter Steinberger
a22d4e7962
fix: import AnyCodable for tool cards
2025-12-24 14:35:06 +01:00
Peter Steinberger
25d2d7389f
ui: render tool call cards
2025-12-24 14:29:40 +01:00
Peter Steinberger
816b784399
ui: constrain typing indicator width
2025-12-24 14:10:32 +01:00
Peter Steinberger
c250f092bb
test: cover overlay level throttling
2025-12-24 13:54:03 +01:00
Peter Steinberger
5ba90db049
perf: throttle voice overlay updates
2025-12-24 13:51:41 +01:00
Peter Steinberger
88d20c5419
perf: gate idle pulse animations
2025-12-24 13:51:40 +01:00
Peter Steinberger
e158bee95f
perf: reduce chat animation churn
2025-12-24 13:51:40 +01:00
Peter Steinberger
96da2efb13
style: swiftformat gateway process manager
2025-12-24 00:33:40 +00:00
Peter Steinberger
93af424ce5
refactor: move inbound config
2025-12-24 00:22:52 +00:00
Peter Steinberger
5e07400cd1
refactor: update macOS config paths
2025-12-23 23:45:27 +00:00
Peter Steinberger
c8c807adcc
refactor: drop PAM auth and require password for funnel
2025-12-23 13:13:09 +00:00
Peter Steinberger
facfd64787
fix: avoid spawning duplicate gateway when external listener exists
2025-12-23 12:43:51 +00:00
Peter Steinberger
af82224f82
fix: relax Sparkle delegate isolation
2025-12-23 03:36:56 +01:00
Peter Steinberger
a938e9473b
fix: isolate Sparkle delegate conformance
2025-12-23 03:28:39 +01:00
Peter Steinberger
3e88553d52
fix: isolate updater factory on main actor
2025-12-23 03:16:47 +01:00
Peter Steinberger
fc4a395c88
chore: update gateway protocol models
2025-12-23 03:05:04 +01:00
Peter Steinberger
89ace66972
style: format macOS sources
2025-12-23 03:02:09 +01:00
Tu Nombre Real
8431874b15
fix(macOS): remove redundant kickstart -k causing gateway restart loop
...
The launchd bootstrap already starts the gateway job. The subsequent
kickstart -k was killing it immediately after startup, and combined
with KeepAlive=true, this caused a port-conflict restart loop where
launchd would try to restart while the old instance was still
shutting down.
Symptoms: 'Bootstrap failed: 5: Input/output error' and repeated
'Gateway failed to start: another gateway instance is already
listening' messages in the log.
2025-12-23 01:57:54 +01:00
Peter Steinberger
54d2ccda99
feat(mac): surface update-ready state
2025-12-23 01:42:33 +01:00
Peter Steinberger
926b6d9464
chore: format wake gate + chat theme
2025-12-23 01:41:13 +01:00
Peter Steinberger
abfb6832c3
fix(mac): default session menu checks
2025-12-23 01:36:01 +01:00
Peter Steinberger
ceeea359fc
chore: remove shared build artifacts
2025-12-23 01:32:02 +01:00
Peter Steinberger
ef35868bef
feat: share wake gate via SwabbleKit
2025-12-23 01:31:59 +01:00
Peter Steinberger
ce04308c17
refactor: remove session syncing metadata
2025-12-23 00:50:51 +01:00
Peter Steinberger
823195a122
style(mac): increase session row padding
2025-12-23 00:10:38 +01:00
Peter Steinberger
581583abb4
fix(mac): drop syncing menu + show state checks
2025-12-23 00:10:38 +01:00
Peter Steinberger
882fd48408
style: add visual effect host for chat
2025-12-23 00:10:38 +01:00
Peter Steinberger
6205b955da
style(mac): adjust session row padding and menu options
2025-12-22 23:30:25 +01:00
Peter Steinberger
d265a04b19
style(mac): pad session rows + thicken bars
2025-12-22 23:22:36 +01:00
Peter Steinberger
afc09744b4
fix(mac): size highlighted session rows
2025-12-22 22:59:59 +01:00
Peter Steinberger
1e1d76d600
fix(mac): restore sessions bars with injected submenus
2025-12-22 22:49:37 +01:00
Peter Steinberger
0b70aa0c56
fix(mac): hide sessions header when disconnected
2025-12-22 22:09:26 +01:00
Peter Steinberger
4ca6591045
refactor: move OAuth storage and drop legacy sessions
2025-12-22 21:02:48 +00:00
Peter Steinberger
469c8a1a4b
fix(mac): show disconnected sessions + sleeping eyes
2025-12-22 21:13:33 +01:00
Peter Steinberger
9d47b15575
fix(mac): sessions error UI + sleeping icon
2025-12-22 21:02:45 +01:00
Peter Steinberger
f24d8473b1
fix(mac): restore session usage bar
2025-12-22 20:14:54 +01:00
Peter Steinberger
3412ff7003
style: add macos chat glass background
2025-12-22 19:55:17 +01:00
Peter Steinberger
a0dd504991
feat(mac): sessions submenus
2025-12-22 19:29:24 +01:00
Peter Steinberger
19b847b23b
style: tighten macos chat composer
2025-12-22 19:08:23 +01:00
Peter Steinberger
c872f37aae
fix: remove redundant await in CanvasManager
2025-12-22 18:53:14 +01:00
Peter Steinberger
79c0fd27a0
fix: center debug status overlay
2025-12-21 20:43:06 +01:00
Peter Steinberger
f1202ff152
chore: fix lint + build
2025-12-21 15:58:37 +01:00
Peter Steinberger
a808cdce13
fix(android): drop duplicate scaffold asset
2025-12-21 14:50:28 +01:00
Peter Steinberger
bcd3c13e2c
feat(macos): surface canvas debug status
2025-12-21 14:21:06 +01:00
Peter Steinberger
7932e966db
feat(android): toggle debug canvas status
2025-12-21 14:21:06 +01:00
Peter Steinberger
30d84643db
feat(ios): toggle debug canvas status
2025-12-21 14:21:06 +01:00
Peter Steinberger
264c91e620
feat(canvas): gate debug status overlay
2025-12-21 14:21:06 +01:00
Peter Steinberger
20630b8744
chore: bump Peekaboo + menu cleanup
2025-12-21 13:59:41 +01:00
Peter Steinberger
4021da524c
fix(chat-ui): avoid animated initial scroll
2025-12-21 12:33:41 +01:00
Peter Steinberger
5adec0eae0
fix: align canvas defaults and A2UI auto-nav
2025-12-21 12:32:36 +01:00
Peter Steinberger
2a975f751b
refactor(macos): regroup menu sections
2025-12-21 12:29:29 +01:00
Peter Steinberger
80e1934f4e
style: fix tailscale swiftformat
2025-12-21 03:52:28 +01:00
Peter Steinberger
04e3d0c2fe
style: swiftformat cleanup
2025-12-21 03:44:12 +01:00
Peter Steinberger
6496a288b8
fix: add A2UI inset vars
2025-12-21 03:21:49 +01:00
Peter Steinberger
0197fb35fe
fix: clear canvas error banner on load
2025-12-21 03:21:48 +01:00
Peter Steinberger
f90ab3c4c2
fix(mac): trim onboarding checklist
2025-12-21 01:57:18 +00:00
Peter Steinberger
79280f3d93
fix(mac): tighten onboarding layout
2025-12-21 01:57:18 +00:00
Peter Steinberger
a5b4a01594
fix(mac): shrink onboarding + respect existing workspace
2025-12-21 01:51:48 +00:00
Peter Steinberger
5b25eeb449
refactor(macos): remove manual identity onboarding
2025-12-21 01:39:50 +00:00
Peter Steinberger
fb259e8a50
fix(mac): shrink onboarding height
2025-12-21 01:35:27 +00:00
Peter Steinberger
00cdcd4d28
fix(mac): guard onboarding workspace bootstrap
2025-12-21 01:31:31 +00:00
Peter Steinberger
28ad475ab4
feat(mac): add tailscale settings
2025-12-21 01:16:49 +00:00
Peter Steinberger
de2fd659ab
fix(mac): shrink onboarding height
2025-12-21 00:57:11 +00:00
Peter Steinberger
aa198594fd
fix(mac): avoid buttonStyle ternary
2025-12-21 00:49:07 +00:00
Peter Steinberger
406a94bf76
fix: use A2UI message context
2025-12-21 01:48:21 +01:00
Peter Steinberger
fef1841fee
build: update iOS lint scripts
2025-12-21 01:48:21 +01:00
Peter Steinberger
1cb85fdea8
fix(mac): disambiguate skills install ForEach
2025-12-21 00:47:49 +00:00
Peter Steinberger
78263e81f1
fix(mac): restore skills install ForEach
2025-12-21 00:46:38 +00:00
Peter Steinberger
e94aa296e2
feat: refine skills install actions
2025-12-21 01:07:35 +01:00
Peter Steinberger
98891103d0
fix: streamline WhatsApp login flow
2025-12-21 01:07:35 +01:00
Peter Steinberger
2b2f13ca79
fix: restore canvas action bridge
2025-12-21 01:07:35 +01:00
Peter Steinberger
78159a9435
fix(onboarding): nudge bottom padding
2025-12-20 23:52:45 +00:00
Peter Steinberger
b4af7b919e
fix(macos): simplify skills view and resize onboarding
2025-12-20 23:45:50 +00:00
Peter Steinberger
65056915d3
fix(onboarding): lift bottom bar
2025-12-20 23:36:24 +00:00
Peter Steinberger
62f624b66b
fix(mac): re-ensure remote gateway tunnel
2025-12-21 00:25:56 +01:00
Peter Steinberger
aae68e4f82
style(chatui): fix SwiftFormat warnings
2025-12-21 00:25:56 +01:00
Peter Steinberger
1d715d7b1b
chore(ios): link AppIntents framework
2025-12-21 00:24:24 +01:00
Peter Steinberger
1d7110ea8f
fix(onboarding): fit chat card
2025-12-20 23:15:35 +00:00