Add honeycomb completion heatmap and dev API environment

- Add HoneycombSummaryView component with colored hexagon grid
- Display completion summary on residence detail screen
- Add CompletionSummary model to KMP shared layer
- Add DEV/PROD environment split in ApiConfig
- Fix ResidenceResponse initializers for completionSummary parameter

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-03-12 00:05:11 -05:00
parent b8360a2e86
commit 7689027bdd
9 changed files with 280 additions and 11 deletions

View File

@@ -84,7 +84,7 @@
1C87A0C42EDB8ED40081E450 /* HoneyDueUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = HoneyDueUITests.xctestplan; sourceTree = "<group>"; };
1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HoneyDueUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
4B07E04F794A4C1CAA8CCD5D /* PhotoViewerSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoViewerSheet.swift; sourceTree = "<group>"; };
96A3DDC05E14B3F83E56282F /* HoneyDue.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HoneyDue.app; sourceTree = BUILT_PRODUCTS_DIR; };
96A3DDC05E14B3F83E56282F /* honeyDue.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = honeyDue.app; sourceTree = BUILT_PRODUCTS_DIR; };
AD6CD907CA1045CBBC845D91 /* CompletionCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompletionCardView.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -308,7 +308,7 @@
FA6022B7B844191C54E57EB4 /* Products */ = {
isa = PBXGroup;
children = (
96A3DDC05E14B3F83E56282F /* HoneyDue.app */,
96A3DDC05E14B3F83E56282F /* honeyDue.app */,
1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */,
1C685CD22EC5539000A9669B /* HoneyDueTests.xctest */,
1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */,
@@ -458,7 +458,7 @@
1C81F38F2EE69AF1000739EA /* PostHog */,
);
productName = honeyDue;
productReference = 96A3DDC05E14B3F83E56282F /* HoneyDue.app */;
productReference = 96A3DDC05E14B3F83E56282F /* honeyDue.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
@@ -699,6 +699,7 @@
1C0789552EBC218D00392B46 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
APP_GROUP_IDENTIFIER = group.com.tt.honeyDue.dev;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements;
@@ -719,7 +720,6 @@
);
MARKETING_VERSION = 1.0;
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
APP_GROUP_IDENTIFIER = group.com.tt.honeyDue.dev;
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.dev.HoneyDueExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -735,6 +735,7 @@
1C0789562EBC218D00392B46 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
APP_GROUP_IDENTIFIER = group.com.tt.honeyDue;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements;
@@ -755,7 +756,6 @@
);
MARKETING_VERSION = 1.0;
OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION";
APP_GROUP_IDENTIFIER = group.com.tt.honeyDue;
PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueExtension;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;