chore: rename to Scout f7d28656
Steve · 2026-04-21 09:04 38 file(s) · +109 −109
README.md +2 −2
1 -
# Titan II
1 +
# Scout
2 2
3 3
![cover](https://files.stevedylan.dev/titan.png)
4 4
27 27
28 28
## Build & Run
29 29
30 -
Open `Titan.xcodeproj` in Xcode and run with `Cmd+R`.
30 +
Open `Scout.xcodeproj` in Xcode and run with `Cmd+R`.
31 31
32 32
## License 
33 33
Titan.xcodeproj/project.pbxproj → Scout.xcodeproj/project.pbxproj +66 −66
12 12
			containerPortal = 0C5424842EF79292001BB2ED /* Project object */;
13 13
			proxyType = 1;
14 14
			remoteGlobalIDString = 0C54248B2EF79292001BB2ED;
15 -
			remoteInfo = Titan;
15 +
			remoteInfo = Scout;
16 16
		};
17 17
		0C5424A42EF79293001BB2ED /* PBXContainerItemProxy */ = {
18 18
			isa = PBXContainerItemProxy;
19 19
			containerPortal = 0C5424842EF79292001BB2ED /* Project object */;
20 20
			proxyType = 1;
21 21
			remoteGlobalIDString = 0C54248B2EF79292001BB2ED;
22 -
			remoteInfo = Titan;
22 +
			remoteInfo = Scout;
23 23
		};
24 24
/* End PBXContainerItemProxy section */
25 25
26 26
/* Begin PBXFileReference section */
27 -
		0C54248C2EF79292001BB2ED /* Titan.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Titan.app; sourceTree = BUILT_PRODUCTS_DIR; };
28 -
		0C5424992EF79293001BB2ED /* TitanTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TitanTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
29 -
		0C5424A32EF79293001BB2ED /* TitanUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TitanUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
27 +
		0C54248C2EF79292001BB2ED /* Scout.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Scout.app; sourceTree = BUILT_PRODUCTS_DIR; };
28 +
		0C5424992EF79293001BB2ED /* ScoutTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ScoutTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
29 +
		0C5424A32EF79293001BB2ED /* ScoutUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ScoutUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
30 30
/* End PBXFileReference section */
31 31
32 32
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
33 -
		0C10957F2F04AB0D00120458 /* Exceptions for "Titan" folder in "Titan" target */ = {
33 +
		0C10957F2F04AB0D00120458 /* Exceptions for "Scout" folder in "Scout" target */ = {
34 34
			isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
35 35
			membershipExceptions = (
36 36
				Info.plist,
37 37
			);
38 -
			target = 0C54248B2EF79292001BB2ED /* Titan */;
38 +
			target = 0C54248B2EF79292001BB2ED /* Scout */;
39 39
		};
40 40
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
41 41
42 42
/* Begin PBXFileSystemSynchronizedRootGroup section */
43 -
		0C54248E2EF79292001BB2ED /* Titan */ = {
43 +
		0C54248E2EF79292001BB2ED /* Scout */ = {
44 44
			isa = PBXFileSystemSynchronizedRootGroup;
45 45
			exceptions = (
46 -
				0C10957F2F04AB0D00120458 /* Exceptions for "Titan" folder in "Titan" target */,
46 +
				0C10957F2F04AB0D00120458 /* Exceptions for "Scout" folder in "Scout" target */,
47 47
			);
48 -
			path = Titan;
48 +
			path = Scout;
49 49
			sourceTree = "<group>";
50 50
		};
51 -
		0C54249C2EF79293001BB2ED /* TitanTests */ = {
51 +
		0C54249C2EF79293001BB2ED /* ScoutTests */ = {
52 52
			isa = PBXFileSystemSynchronizedRootGroup;
53 -
			path = TitanTests;
53 +
			path = ScoutTests;
54 54
			sourceTree = "<group>";
55 55
		};
56 -
		0C5424A62EF79293001BB2ED /* TitanUITests */ = {
56 +
		0C5424A62EF79293001BB2ED /* ScoutUITests */ = {
57 57
			isa = PBXFileSystemSynchronizedRootGroup;
58 -
			path = TitanUITests;
58 +
			path = ScoutUITests;
59 59
			sourceTree = "<group>";
60 60
		};
61 61
/* End PBXFileSystemSynchronizedRootGroup section */
88 88
		0C5424832EF79292001BB2ED = {
89 89
			isa = PBXGroup;
90 90
			children = (
91 -
				0C54248E2EF79292001BB2ED /* Titan */,
92 -
				0C54249C2EF79293001BB2ED /* TitanTests */,
93 -
				0C5424A62EF79293001BB2ED /* TitanUITests */,
91 +
				0C54248E2EF79292001BB2ED /* Scout */,
92 +
				0C54249C2EF79293001BB2ED /* ScoutTests */,
93 +
				0C5424A62EF79293001BB2ED /* ScoutUITests */,
94 94
				0C54248D2EF79292001BB2ED /* Products */,
95 95
			);
96 96
			sourceTree = "<group>";
98 98
		0C54248D2EF79292001BB2ED /* Products */ = {
99 99
			isa = PBXGroup;
100 100
			children = (
101 -
				0C54248C2EF79292001BB2ED /* Titan.app */,
102 -
				0C5424992EF79293001BB2ED /* TitanTests.xctest */,
103 -
				0C5424A32EF79293001BB2ED /* TitanUITests.xctest */,
101 +
				0C54248C2EF79292001BB2ED /* Scout.app */,
102 +
				0C5424992EF79293001BB2ED /* ScoutTests.xctest */,
103 +
				0C5424A32EF79293001BB2ED /* ScoutUITests.xctest */,
104 104
			);
105 105
			name = Products;
106 106
			sourceTree = "<group>";
108 108
/* End PBXGroup section */
109 109
110 110
/* Begin PBXNativeTarget section */
111 -
		0C54248B2EF79292001BB2ED /* Titan */ = {
111 +
		0C54248B2EF79292001BB2ED /* Scout */ = {
112 112
			isa = PBXNativeTarget;
113 -
			buildConfigurationList = 0C5424AD2EF79293001BB2ED /* Build configuration list for PBXNativeTarget "Titan" */;
113 +
			buildConfigurationList = 0C5424AD2EF79293001BB2ED /* Build configuration list for PBXNativeTarget "Scout" */;
114 114
			buildPhases = (
115 115
				0C5424882EF79292001BB2ED /* Sources */,
116 116
				0C5424892EF79292001BB2ED /* Frameworks */,
121 121
			dependencies = (
122 122
			);
123 123
			fileSystemSynchronizedGroups = (
124 -
				0C54248E2EF79292001BB2ED /* Titan */,
124 +
				0C54248E2EF79292001BB2ED /* Scout */,
125 125
			);
126 -
			name = Titan;
126 +
			name = Scout;
127 127
			packageProductDependencies = (
128 128
			);
129 -
			productName = Titan;
130 -
			productReference = 0C54248C2EF79292001BB2ED /* Titan.app */;
129 +
			productName = Scout;
130 +
			productReference = 0C54248C2EF79292001BB2ED /* Scout.app */;
131 131
			productType = "com.apple.product-type.application";
132 132
		};
133 -
		0C5424982EF79293001BB2ED /* TitanTests */ = {
133 +
		0C5424982EF79293001BB2ED /* ScoutTests */ = {
134 134
			isa = PBXNativeTarget;
135 -
			buildConfigurationList = 0C5424B02EF79293001BB2ED /* Build configuration list for PBXNativeTarget "TitanTests" */;
135 +
			buildConfigurationList = 0C5424B02EF79293001BB2ED /* Build configuration list for PBXNativeTarget "ScoutTests" */;
136 136
			buildPhases = (
137 137
				0C5424952EF79293001BB2ED /* Sources */,
138 138
				0C5424962EF79293001BB2ED /* Frameworks */,
144 144
				0C54249B2EF79293001BB2ED /* PBXTargetDependency */,
145 145
			);
146 146
			fileSystemSynchronizedGroups = (
147 -
				0C54249C2EF79293001BB2ED /* TitanTests */,
147 +
				0C54249C2EF79293001BB2ED /* ScoutTests */,
148 148
			);
149 -
			name = TitanTests;
149 +
			name = ScoutTests;
150 150
			packageProductDependencies = (
151 151
			);
152 -
			productName = TitanTests;
153 -
			productReference = 0C5424992EF79293001BB2ED /* TitanTests.xctest */;
152 +
			productName = ScoutTests;
153 +
			productReference = 0C5424992EF79293001BB2ED /* ScoutTests.xctest */;
154 154
			productType = "com.apple.product-type.bundle.unit-test";
155 155
		};
156 -
		0C5424A22EF79293001BB2ED /* TitanUITests */ = {
156 +
		0C5424A22EF79293001BB2ED /* ScoutUITests */ = {
157 157
			isa = PBXNativeTarget;
158 -
			buildConfigurationList = 0C5424B32EF79293001BB2ED /* Build configuration list for PBXNativeTarget "TitanUITests" */;
158 +
			buildConfigurationList = 0C5424B32EF79293001BB2ED /* Build configuration list for PBXNativeTarget "ScoutUITests" */;
159 159
			buildPhases = (
160 160
				0C54249F2EF79293001BB2ED /* Sources */,
161 161
				0C5424A02EF79293001BB2ED /* Frameworks */,
167 167
				0C5424A52EF79293001BB2ED /* PBXTargetDependency */,
168 168
			);
169 169
			fileSystemSynchronizedGroups = (
170 -
				0C5424A62EF79293001BB2ED /* TitanUITests */,
170 +
				0C5424A62EF79293001BB2ED /* ScoutUITests */,
171 171
			);
172 -
			name = TitanUITests;
172 +
			name = ScoutUITests;
173 173
			packageProductDependencies = (
174 174
			);
175 -
			productName = TitanUITests;
176 -
			productReference = 0C5424A32EF79293001BB2ED /* TitanUITests.xctest */;
175 +
			productName = ScoutUITests;
176 +
			productReference = 0C5424A32EF79293001BB2ED /* ScoutUITests.xctest */;
177 177
			productType = "com.apple.product-type.bundle.ui-testing";
178 178
		};
179 179
/* End PBXNativeTarget section */
199 199
					};
200 200
				};
201 201
			};
202 -
			buildConfigurationList = 0C5424872EF79292001BB2ED /* Build configuration list for PBXProject "Titan" */;
202 +
			buildConfigurationList = 0C5424872EF79292001BB2ED /* Build configuration list for PBXProject "Scout" */;
203 203
			developmentRegion = en;
204 204
			hasScannedForEncodings = 0;
205 205
			knownRegions = (
213 213
			projectDirPath = "";
214 214
			projectRoot = "";
215 215
			targets = (
216 -
				0C54248B2EF79292001BB2ED /* Titan */,
217 -
				0C5424982EF79293001BB2ED /* TitanTests */,
218 -
				0C5424A22EF79293001BB2ED /* TitanUITests */,
216 +
				0C54248B2EF79292001BB2ED /* Scout */,
217 +
				0C5424982EF79293001BB2ED /* ScoutTests */,
218 +
				0C5424A22EF79293001BB2ED /* ScoutUITests */,
219 219
			);
220 220
		};
221 221
/* End PBXProject section */
271 271
/* Begin PBXTargetDependency section */
272 272
		0C54249B2EF79293001BB2ED /* PBXTargetDependency */ = {
273 273
			isa = PBXTargetDependency;
274 -
			target = 0C54248B2EF79292001BB2ED /* Titan */;
274 +
			target = 0C54248B2EF79292001BB2ED /* Scout */;
275 275
			targetProxy = 0C54249A2EF79293001BB2ED /* PBXContainerItemProxy */;
276 276
		};
277 277
		0C5424A52EF79293001BB2ED /* PBXTargetDependency */ = {
278 278
			isa = PBXTargetDependency;
279 -
			target = 0C54248B2EF79292001BB2ED /* Titan */;
279 +
			target = 0C54248B2EF79292001BB2ED /* Scout */;
280 280
			targetProxy = 0C5424A42EF79293001BB2ED /* PBXContainerItemProxy */;
281 281
		};
282 282
/* End PBXTargetDependency section */
413 413
				DEVELOPMENT_TEAM = W8QNM2N67P;
414 414
				ENABLE_PREVIEWS = YES;
415 415
				GENERATE_INFOPLIST_FILE = YES;
416 -
				INFOPLIST_FILE = Titan/Info.plist;
417 -
				INFOPLIST_KEY_CFBundleDisplayName = "Titan II";
416 +
				INFOPLIST_FILE = Scout/Info.plist;
417 +
				INFOPLIST_KEY_CFBundleDisplayName = Scout;
418 418
				INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
419 -
				INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Titan needs access to save images from Gemini pages";
419 +
				INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Scout needs access to save images from Gemini pages";
420 420
				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
421 421
				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
422 422
				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
426 426
					"$(inherited)",
427 427
					"@executable_path/Frameworks",
428 428
				);
429 -
				MARKETING_VERSION = 0.4;
430 -
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.TitanII;
429 +
				MARKETING_VERSION = 0.1.0;
430 +
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.Scout;
431 431
				PRODUCT_NAME = "$(TARGET_NAME)";
432 432
				STRING_CATALOG_GENERATE_SYMBOLS = YES;
433 433
				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
453 453
				DEVELOPMENT_TEAM = W8QNM2N67P;
454 454
				ENABLE_PREVIEWS = YES;
455 455
				GENERATE_INFOPLIST_FILE = YES;
456 -
				INFOPLIST_FILE = Titan/Info.plist;
457 -
				INFOPLIST_KEY_CFBundleDisplayName = "Titan II";
456 +
				INFOPLIST_FILE = Scout/Info.plist;
457 +
				INFOPLIST_KEY_CFBundleDisplayName = Scout;
458 458
				INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.education";
459 -
				INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Titan needs access to save images from Gemini pages";
459 +
				INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "Scout needs access to save images from Gemini pages";
460 460
				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
461 461
				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
462 462
				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
466 466
					"$(inherited)",
467 467
					"@executable_path/Frameworks",
468 468
				);
469 -
				MARKETING_VERSION = 0.4;
470 -
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.TitanII;
469 +
				MARKETING_VERSION = 0.1.0;
470 +
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.Scout;
471 471
				PRODUCT_NAME = "$(TARGET_NAME)";
472 472
				STRING_CATALOG_GENERATE_SYMBOLS = YES;
473 473
				SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
493 493
				GENERATE_INFOPLIST_FILE = YES;
494 494
				IPHONEOS_DEPLOYMENT_TARGET = 26.1;
495 495
				MARKETING_VERSION = 1.0;
496 -
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.TitanTests;
496 +
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.ScoutTests;
497 497
				PRODUCT_NAME = "$(TARGET_NAME)";
498 498
				STRING_CATALOG_GENERATE_SYMBOLS = NO;
499 499
				SWIFT_APPROACHABLE_CONCURRENCY = YES;
501 501
				SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
502 502
				SWIFT_VERSION = 5.0;
503 503
				TARGETED_DEVICE_FAMILY = "1,2";
504 -
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Titan.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Titan";
504 +
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Scout.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Scout";
505 505
			};
506 506
			name = Debug;
507 507
		};
515 515
				GENERATE_INFOPLIST_FILE = YES;
516 516
				IPHONEOS_DEPLOYMENT_TARGET = 26.1;
517 517
				MARKETING_VERSION = 1.0;
518 -
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.TitanTests;
518 +
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.ScoutTests;
519 519
				PRODUCT_NAME = "$(TARGET_NAME)";
520 520
				STRING_CATALOG_GENERATE_SYMBOLS = NO;
521 521
				SWIFT_APPROACHABLE_CONCURRENCY = YES;
523 523
				SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
524 524
				SWIFT_VERSION = 5.0;
525 525
				TARGETED_DEVICE_FAMILY = "1,2";
526 -
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Titan.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Titan";
526 +
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Scout.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Scout";
527 527
			};
528 528
			name = Release;
529 529
		};
535 535
				DEVELOPMENT_TEAM = W8QNM2N67P;
536 536
				GENERATE_INFOPLIST_FILE = YES;
537 537
				MARKETING_VERSION = 1.0;
538 -
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.TitanUITests;
538 +
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.ScoutUITests;
539 539
				PRODUCT_NAME = "$(TARGET_NAME)";
540 540
				STRING_CATALOG_GENERATE_SYMBOLS = NO;
541 541
				SWIFT_APPROACHABLE_CONCURRENCY = YES;
543 543
				SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
544 544
				SWIFT_VERSION = 5.0;
545 545
				TARGETED_DEVICE_FAMILY = "1,2";
546 -
				TEST_TARGET_NAME = Titan;
546 +
				TEST_TARGET_NAME = Scout;
547 547
			};
548 548
			name = Debug;
549 549
		};
555 555
				DEVELOPMENT_TEAM = W8QNM2N67P;
556 556
				GENERATE_INFOPLIST_FILE = YES;
557 557
				MARKETING_VERSION = 1.0;
558 -
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.TitanUITests;
558 +
				PRODUCT_BUNDLE_IDENTIFIER = com.stevedylandev.ScoutUITests;
559 559
				PRODUCT_NAME = "$(TARGET_NAME)";
560 560
				STRING_CATALOG_GENERATE_SYMBOLS = NO;
561 561
				SWIFT_APPROACHABLE_CONCURRENCY = YES;
563 563
				SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
564 564
				SWIFT_VERSION = 5.0;
565 565
				TARGETED_DEVICE_FAMILY = "1,2";
566 -
				TEST_TARGET_NAME = Titan;
566 +
				TEST_TARGET_NAME = Scout;
567 567
			};
568 568
			name = Release;
569 569
		};
570 570
/* End XCBuildConfiguration section */
571 571
572 572
/* Begin XCConfigurationList section */
573 -
		0C5424872EF79292001BB2ED /* Build configuration list for PBXProject "Titan" */ = {
573 +
		0C5424872EF79292001BB2ED /* Build configuration list for PBXProject "Scout" */ = {
574 574
			isa = XCConfigurationList;
575 575
			buildConfigurations = (
576 576
				0C5424AB2EF79293001BB2ED /* Debug */,
579 579
			defaultConfigurationIsVisible = 0;
580 580
			defaultConfigurationName = Release;
581 581
		};
582 -
		0C5424AD2EF79293001BB2ED /* Build configuration list for PBXNativeTarget "Titan" */ = {
582 +
		0C5424AD2EF79293001BB2ED /* Build configuration list for PBXNativeTarget "Scout" */ = {
583 583
			isa = XCConfigurationList;
584 584
			buildConfigurations = (
585 585
				0C5424AE2EF79293001BB2ED /* Debug */,
588 588
			defaultConfigurationIsVisible = 0;
589 589
			defaultConfigurationName = Release;
590 590
		};
591 -
		0C5424B02EF79293001BB2ED /* Build configuration list for PBXNativeTarget "TitanTests" */ = {
591 +
		0C5424B02EF79293001BB2ED /* Build configuration list for PBXNativeTarget "ScoutTests" */ = {
592 592
			isa = XCConfigurationList;
593 593
			buildConfigurations = (
594 594
				0C5424B12EF79293001BB2ED /* Debug */,
597 597
			defaultConfigurationIsVisible = 0;
598 598
			defaultConfigurationName = Release;
599 599
		};
600 -
		0C5424B32EF79293001BB2ED /* Build configuration list for PBXNativeTarget "TitanUITests" */ = {
600 +
		0C5424B32EF79293001BB2ED /* Build configuration list for PBXNativeTarget "ScoutUITests" */ = {
601 601
			isa = XCConfigurationList;
602 602
			buildConfigurations = (
603 603
				0C5424B42EF79293001BB2ED /* Debug */,
Titan.xcodeproj/project.xcworkspace/contents.xcworkspacedata → Scout.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 −0
Titan.xcodeproj/xcuserdata/stevedylandev.xcuserdatad/xcschemes/xcschememanagement.plist → Scout.xcodeproj/xcuserdata/stevedylandev.xcuserdatad/xcschemes/xcschememanagement.plist +1 −1
4 4
<dict>
5 5
	<key>SchemeUserState</key>
6 6
	<dict>
7 -
		<key>Titan.xcscheme_^#shared#^_</key>
7 +
		<key>Scout.xcscheme_^#shared#^_</key>
8 8
		<dict>
9 9
			<key>orderHint</key>
10 10
			<integer>0</integer>
Titan/Assets.xcassets/AccentColor.colorset/Contents.json → Scout/Assets.xcassets/AccentColor.colorset/Contents.json +0 −0
Titan/Assets.xcassets/AppIcon.appiconset/Contents.json → Scout/Assets.xcassets/AppIcon.appiconset/Contents.json +0 −0
Titan/Assets.xcassets/AppIcon.appiconset/Frame 50288.png → Scout/Assets.xcassets/AppIcon.appiconset/Frame 50288.png +0 −0

Binary file — no preview.

Titan/Assets.xcassets/AppIcon.appiconset/Frame 50289.png → Scout/Assets.xcassets/AppIcon.appiconset/Frame 50289.png +0 −0

Binary file — no preview.

Titan/Assets.xcassets/AppIcon.appiconset/Frame 50290.png → Scout/Assets.xcassets/AppIcon.appiconset/Frame 50290.png +0 −0

Binary file — no preview.

Titan/Assets.xcassets/Contents.json → Scout/Assets.xcassets/Contents.json +0 −0
Titan/Components/IndeterminateProgressBar.swift → Scout/Components/IndeterminateProgressBar.swift +1 −1
1 1
//
2 2
//  IndeterminateProgressBar.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Info.plist → Scout/Info.plist +1 −1
8 8
			<key>CFBundleTypeRole</key>
9 9
			<string>Viewer</string>
10 10
			<key>CFBundleURLName</key>
11 -
			<string>com.stevedylandev.Titan</string>
11 +
			<string>com.stevedylandev.Scout</string>
12 12
			<key>CFBundleURLSchemes</key>
13 13
			<array>
14 14
				<string>gemini</string>
Titan/Models/GeminiLine.swift → Scout/Models/GeminiLine.swift +1 −1
1 1
//
2 2
//  GeminiLine.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Models/MediaType.swift → Scout/Models/MediaType.swift +1 −1
1 1
//
2 2
//  MediaType.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Models/Tab.swift → Scout/Models/Tab.swift +1 −1
1 1
//
2 2
//  Tab.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Services/BookmarkManager.swift → Scout/Services/BookmarkManager.swift +1 −1
1 1
//
2 2
//  BookmarkManager.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Services/CertificateManager.swift → Scout/Services/CertificateManager.swift +1 −1
1 1
//
2 2
//  CertificateManager.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Services/ClientCertificateManager.swift → Scout/Services/ClientCertificateManager.swift +1 −1
1 1
//
2 2
//  ClientCertificateManager.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
//  Manages client certificates for Gemini authentication
6 6
//
Titan/Services/GeminiClient.swift → Scout/Services/GeminiClient.swift +1 −1
1 1
//
2 2
//  GeminiClient.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
//  Created by Steve Simkins on 12/20/25.
6 6
//
Titan/Services/GeminiParser.swift → Scout/Services/GeminiParser.swift +1 −1
1 1
//
2 2
//  GeminiParser.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Services/HistoryManager.swift → Scout/Services/HistoryManager.swift +1 −1
1 1
//
2 2
//  HistoryManager.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Services/TabManager.swift → Scout/Services/TabManager.swift +1 −1
1 1
//
2 2
//  TabManager.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import Foundation
Titan/Services/X509Generator.swift → Scout/Services/X509Generator.swift +1 −1
1 1
//
2 2
//  X509Generator.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
//  Self-signed X.509 certificate generation using Security framework
6 6
//
Titan/Settings/ThemeSettings.swift → Scout/Settings/ThemeSettings.swift +1 −1
1 1
//
2 2
//  ThemeSettings.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/TitanApp.swift → Scout/ScoutApp.swift +3 −3
1 1
//
2 -
//  TitanApp.swift
3 -
//  Titan
2 +
//  ScoutApp.swift
3 +
//  Scout
4 4
//
5 5
//  Created by Steve Simkins on 12/20/25.
6 6
//
8 8
import SwiftUI
9 9
10 10
@main
11 -
struct TitanApp: App {
11 +
struct ScoutApp: App {
12 12
    @StateObject private var themeSettings = ThemeSettings()
13 13
    @State private var pendingDeepLinkURL: URL?
14 14
Titan/Views/BookmarksListView.swift → Scout/Views/BookmarksListView.swift +1 −1
1 1
//
2 2
//  BookmarksListView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Views/BrowserToolbar.swift → Scout/Views/BrowserToolbar.swift +1 −1
1 1
//
2 2
//  BrowserToolbar.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Views/ClientCertificatesView.swift → Scout/Views/ClientCertificatesView.swift +1 −1
1 1
//
2 2
//  ClientCertificatesView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
//  UI for managing client certificates
6 6
//
Titan/Views/ContentView.swift → Scout/Views/ContentView.swift +2 −2
1 1
//
2 2
//  ContentView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
74 74
                    })
75 75
                    .id("top")
76 76
                } else {
77 -
                    TitanContentView(content: responseText, baseURL: urlText, onLinkTap: { url in
77 +
                    ScoutContentView(content: responseText, baseURL: urlText, onLinkTap: { url in
78 78
                        navigateTo(url)
79 79
                    })
80 80
                    .frame(maxWidth: .infinity, alignment: .leading)
Titan/Views/ErrorPageView.swift → Scout/Views/ErrorPageView.swift +1 −1
1 1
//
2 2
//  ErrorPageView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Views/HistoryListView.swift → Scout/Views/HistoryListView.swift +1 −1
1 1
//
2 2
//  HistoryListView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Views/MediaPreviewView.swift → Scout/Views/MediaPreviewView.swift +1 −1
1 1
//
2 2
//  MediaPreviewView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Views/SettingsView.swift → Scout/Views/SettingsView.swift +1 −1
1 1
//
2 2
//  SettingsView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Views/TabsListView.swift → Scout/Views/TabsListView.swift +1 −1
1 1
//
2 2
//  TabsListView.swift
3 -
//  Titan
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
Titan/Views/TitanContentView.swift → Scout/Views/ScoutContentView.swift +3 −3
1 1
//
2 -
//  TitanContentView.swift
3 -
//  Titan
2 +
//  ScoutContentView.swift
3 +
//  Scout
4 4
//
5 5
6 6
import SwiftUI
47 47
    }
48 48
}
49 49
50 -
struct TitanContentView: View {
50 +
struct ScoutContentView: View {
51 51
    let content: String
52 52
    let baseURL: String
53 53
    let onLinkTap: (String) -> Void
TitanTests/TitanTests.swift → ScoutTests/ScoutTests.swift +4 −4
1 1
//
2 -
//  TitanTests.swift
3 -
//  TitanTests
2 +
//  ScoutTests.swift
3 +
//  ScoutTests
4 4
//
5 5
//  Created by Steve Simkins on 12/20/25.
6 6
//
7 7
8 8
import Testing
9 -
@testable import Titan
9 +
@testable import Scout
10 10
11 -
struct TitanTests {
11 +
struct ScoutTests {
12 12
13 13
    @Test func example() async throws {
14 14
        // Write your test here and use APIs like `#expect(...)` to check expected conditions.
TitanUITests/TitanUITests.swift → ScoutUITests/ScoutUITests.swift +3 −3
1 1
//
2 -
//  TitanUITests.swift
3 -
//  TitanUITests
2 +
//  ScoutUITests.swift
3 +
//  ScoutUITests
4 4
//
5 5
//  Created by Steve Simkins on 12/20/25.
6 6
//
7 7
8 8
import XCTest
9 9
10 -
final class TitanUITests: XCTestCase {
10 +
final class ScoutUITests: XCTestCase {
11 11
12 12
    override func setUpWithError() throws {
13 13
        // Put setup code here. This method is called before the invocation of each test method in the class.
TitanUITests/TitanUITestsLaunchTests.swift → ScoutUITests/ScoutUITestsLaunchTests.swift +3 −3
1 1
//
2 -
//  TitanUITestsLaunchTests.swift
3 -
//  TitanUITests
2 +
//  ScoutUITestsLaunchTests.swift
3 +
//  ScoutUITests
4 4
//
5 5
//  Created by Steve Simkins on 12/20/25.
6 6
//
7 7
8 8
import XCTest
9 9
10 -
final class TitanUITestsLaunchTests: XCTestCase {
10 +
final class ScoutUITestsLaunchTests: XCTestCase {
11 11
12 12
    override class var runsForEachTargetApplicationUIConfiguration: Bool {
13 13
        true