[EUX-1843] Document chat lifecycle hub, matrix, samples, and gateway/API touchpoints#29
Conversation
- README: clarify sample app for SDK testing; Chat Lifecycle + See also; typo Made-with: Cursor
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
💤 Files with no reviewable changes (1)
📜 Recent review details⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
📝 WalkthroughWalkthroughREADME updates clarify repo purpose and add cross-referenced "Chat Lifecycle" documentation; Changes
🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@README.md`:
- Around line 11-13: The README links to pubnub.md, CHAT_CONNECTIONS.md and the
chat-api README (and the customer-android-kotlin repo) are broken; update the
URLs in README.md so they point to the correct existing locations (replace the
current kustomer/chat-api links with the correct repository and file paths for
pubnub.md and docs/CHAT_CONNECTIONS.md, and ensure the Chat Lifecycle README and
customer-android-kotlin link target valid repo/branch names). Locate the
references to "pubnub.md", "CHAT_CONNECTIONS.md", "chat-api — Chat Lifecycle",
and "customer-android-kotlin" in the README and replace each URL with the
verified working URL for that file/repo.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 78775554-14eb-4df8-9bca-04738bc59e02
📒 Files selected for processing (1)
README.md
📜 Review details
🔇 Additional comments (1)
README.md (1)
3-13: Strong documentation improvement for scope and lifecycle mapping.Clearer repo intent, explicit non-production caveat, and the new Chat Lifecycle + “See also” cross-links make onboarding and repo boundaries much easier to understand.
Resolves vulnerable io.netty:netty-codec-http (e.g. 4.1.34) from AGP/grpc classpath via resolutionStrategy on buildscript + subprojects. Made-with: Cursor
There was a problem hiding this comment.
🧹 Nitpick comments (2)
kotlin_chat_v2_sample/build.gradle (2)
5-14: Unify Netty version into a single source of truth to avoid driftThe version is hardcoded in two places: line 10 (
'4.1.118.Final') and line 28 (ext.nettyAlignVersion). The line 9 comment ("keep in sync") shows this duplication is already a known maintenance burden. On future version bumps, you must edit both locations; missing one reintroduces mixed Netty versions.Extract the version to a single declaration used by both buildscript (line 10) and subprojects (line 35):
♻️ Proposed refactor
+def nettyAlignVersion = '4.1.118.Final' + buildscript { ext.kotlin_version = "1.9.24" configurations.classpath { resolutionStrategy { eachDependency { details -> if (details.requested.group == 'io.netty') { - // buildscript runs before root `ext`; keep in sync with ext.nettyAlignVersion below - details.useVersion('4.1.118.Final') + details.useVersion(nettyAlignVersion) } } } } @@ -ext.nettyAlignVersion = '4.1.118.Final' +ext.nettyAlignVersion = nettyAlignVersion🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@kotlin_chat_v2_sample/build.gradle` around lines 5 - 14, The Netty version is duplicated between the buildscript dependency resolution and the ext property; unify them by declaring a single variable (e.g., ext.nettyAlignVersion) before the buildscript/configuration blocks and reference that variable in the configurations.classpath resolutionStrategy (replace the hardcoded '4.1.118.Final' used in details.useVersion) and keep subprojects referencing ext.nettyAlignVersion so both buildscript and subprojects consume the same source of truth (update any buildscript or resolutionStrategy references to use the ext property).
31-33: ScoperesolutionStrategyto resolvable configurations only
configuration.resolutionStrategy.eachDependencyonly executes when a configuration is resolved. Guard withconfiguration.canBeResolvedto avoid registering rules on non-resolvable configurations and reduce configuration-time overhead:subproject.configurations.configureEach { configuration -> if (configuration.canBeResolved) { configuration.resolutionStrategy { eachDependency { details -> if (details.requested.group == 'io.netty') { details.useVersion(rootProject.ext.nettyAlignVersion) } } } } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@kotlin_chat_v2_sample/build.gradle` around lines 31 - 33, The resolution rules are being registered for every configuration which can be unnecessary or invalid; update the subproject.configurations.configureEach block to only register configuration.resolutionStrategy.eachDependency for resolvable configurations by checking configuration.canBeResolved first (i.e., wrap the resolutionStrategy/eachDependency registration inside an if (configuration.canBeResolved) guard) so you only call configuration.resolutionStrategy.eachDependency for configurations that can be resolved.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@kotlin_chat_v2_sample/build.gradle`:
- Around line 5-14: The Netty version is duplicated between the buildscript
dependency resolution and the ext property; unify them by declaring a single
variable (e.g., ext.nettyAlignVersion) before the buildscript/configuration
blocks and reference that variable in the configurations.classpath
resolutionStrategy (replace the hardcoded '4.1.118.Final' used in
details.useVersion) and keep subprojects referencing ext.nettyAlignVersion so
both buildscript and subprojects consume the same source of truth (update any
buildscript or resolutionStrategy references to use the ext property).
- Around line 31-33: The resolution rules are being registered for every
configuration which can be unnecessary or invalid; update the
subproject.configurations.configureEach block to only register
configuration.resolutionStrategy.eachDependency for resolvable configurations by
checking configuration.canBeResolved first (i.e., wrap the
resolutionStrategy/eachDependency registration inside an if
(configuration.canBeResolved) guard) so you only call
configuration.resolutionStrategy.eachDependency for configurations that can be
resolved.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0abd4526-e103-429b-9598-e9bdf1488227
📒 Files selected for processing (1)
kotlin_chat_v2_sample/build.gradle
| eachDependency { details -> | ||
| if (details.requested.group == 'io.netty') { | ||
| // buildscript runs before root `ext`; keep in sync with ext.nettyAlignVersion below | ||
| details.useVersion('4.1.118.Final') |
There was a problem hiding this comment.
@raymondjoneskustomer Sure you don't want details.require so that it's just enforcing a minimum version?
|
|
||
| Sample apps exercise the **Android chat SDK** end-to-end (HTTP + **PubNub**). Behavior and channel naming follow **chat-api**; see [pubnub.md](https://github.com/kustomer/chat-api/blob/master/pubnub.md). | ||
|
|
||
| **See also:** [Chat ecosystem map — `CHAT_CONNECTIONS.md`](https://github.com/kustomer/chat-api/blob/master/docs/CHAT_CONNECTIONS.md) · [chat-api — Chat Lifecycle](https://github.com/kustomer/chat-api/blob/master/README.md#chat-lifecycle) · [customer-android-kotlin](https://github.com/kustomer/customer-android-kotlin) |
There was a problem hiding this comment.
https://github.com/kustomer/chat-api/blob/master/docs/CHAT_CONNECTIONS.md doesn't exist.
There was a problem hiding this comment.
Not yet @bhutzel-kustomer , because that is also part of the MASS PR
eachDependency has no details.require; only useVersion when requested version is missing or below 4.1.118.Final (CVE floor). Addresses PR feedback from eng-mobile-team. Made-with: Cursor
User description
[EUX-1843] Chat Lifecycle documentation: CHAT_CONNECTIONS hub updates, cross-platform matrix sample-app links, sample READMEs, and related repo docs. Tracked in Linear.
Generated description
Below is a concise technical summary of the changes proposed in this PR:
Document the Chat Lifecycle by expanding the sample README to explain the Android chat SDK flow and link to the
CHAT_CONNECTIONS.mdhub, lifecycle matrix, and repo docs. Align the Kotlin sample's Gradle dependency resolution so everyio.nettyartifact uses4.1.118.Finalvia shared resolution strategies.CHAT_CONNECTIONS.mdhub, lifecycle matrix, and related repo documents.Modified files (1)
Latest Contributors(2)
io.nettydependency resolution to enforce version4.1.118.Finalin both the buildscript and subproject configurations.Modified files (1)
Latest Contributors(2)