Update to 26.6.27 and add some features#1
Conversation
|
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 (19)
💤 Files with no reviewable changes (1)
✅ Files skipped from review due to trivial changes (4)
🚧 Files skipped from review as they are similar to previous changes (13)
WalkthroughThis PR adds Xray v26.6.22/v26.6.27 release metadata and parity wiring, introduces xhttp/splithttp sessionID* fields across schema, types, compiler, importer, and tests, updates inbound security-field capability filtering, and bumps the package version. ChangesXray v26.6.x Release Support
XHTTP sessionID Fields
Inbound Security Field Capability Tracking
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Importer as importXrayConfig
participant Schema as xhttpTransportSchema
participant Profile as Profile.extra
participant Compiler as buildXrayConfig
participant Output as streamSettings.xhttpSettings
Importer->>Schema: validate raw xhttpSettings
Schema-->>Importer: sessionIDPlacement, sessionIDKey, sessionIDTable, sessionIDLength
Importer->>Profile: backfill sessionID* into transport.extra
Compiler->>Profile: read transport.extra.sessionID*
Compiler->>Output: emit sessionID* fields in JSON
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/core/compiler.ts (1)
177-178: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDuplicate field-set literals for xhttpSettings/splithttpSettings.
Both Sets are near-identical (differ only by nothing here—both lists are byte-for-byte the same), and every new XHTTP field addition (including this PR's 4 sessionID* fields) must be duplicated in two places, risking drift between the two entries over time.
♻️ Suggested refactor to share the field list
+const xhttpSharedFields = new Set(["host", "path", "mode", "headers", "scMaxBufferedPosts", "scMaxEachPostBytes", "scMinPostsIntervalMs", "scStreamUpServerSecs", "noSSEHeader", "xPaddingBytes", "xPaddingObfsMode", "xPaddingKey", "xPaddingHeader", "xPaddingPlacement", "xPaddingMethod", "uplinkHTTPMethod", "sessionPlacement", "sessionKey", "sessionIDPlacement", "sessionIDKey", "sessionIDTable", "sessionIDLength", "seqPlacement", "seqKey", "uplinkDataPlacement", "uplinkDataKey", "uplinkChunkSize", "noGRPCHeader", "xmux"]); - ["xhttpSettings", new Set([...])], - ["splithttpSettings", new Set([...])], + ["xhttpSettings", xhttpSharedFields], + ["splithttpSettings", xhttpSharedFields],🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/core/compiler.ts` around lines 177 - 178, The xhttpSettings and splithttpSettings entries in compiler.ts are duplicated with the same field list, which creates drift risk for future additions like the sessionID* fields. Refactor the shared field names into a single reusable constant or helper near the existing settings map, then have both xhttpSettings and splithttpSettings reference that shared list instead of repeating the Set literal.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/core/compiler.ts`:
- Around line 177-178: The xhttpSettings and splithttpSettings entries in
compiler.ts are duplicated with the same field list, which creates drift risk
for future additions like the sessionID* fields. Refactor the shared field names
into a single reusable constant or helper near the existing settings map, then
have both xhttpSettings and splithttpSettings reference that shared list instead
of repeating the Set literal.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 54f3b06e-640e-44f1-a323-f7396d26af89
📒 Files selected for processing (19)
.github/xray-ci-matrix.jsonpackage.jsonsrc/adapters/xray/generated-capabilities.tssrc/core/compiler.tssrc/core/form.tssrc/core/types.tssrc/importers/index.tssrc/schemas/profile.tssrc/xray-json/parity-manifest.tstests/core.test.tstests/helpers/xray-releases.tstests/parity/generator-config.test.tstests/parity/json-loader-manifest.test.tstests/parity/manifest.test.tstests/security/security-field-capabilities.test.tstests/security/stream-security-settings.test.tstests/transports/stream-settings.test.tstests/transports/xhttp-session-id.test.tsxray-parity.config.ts
💤 Files with no reviewable changes (1)
- tests/security/stream-security-settings.test.ts
- add XHTTP sessionID support and related schema/import updates - pin v26.6.22 as an explicit xray-core parity release - stop generating version-gated security fields that are unavailable on a release - share duplicate field-set literals for tcp/raw and xhttp/splithttp (CodeRabbit feedback on PR PasarGuard#1)
This PR adds the XHTTP
sessionID*fields needed for Xray 26.6.22+ and refreshes the package's version-aware parity data accordingly.sessionIDPlacement,sessionIDKey,sessionIDTable, andsessionIDLengthto XHTTP transport types, schemas, importers, and compiler outputv26.6.22, refresh generated capabilities/manifest data, and advance the latest generated release data tov26.6.27echForceQuerydisappear automatically on releases where they no longer existsessionID*fields and for per-release TLS security-field capabilities0.3.5Notes
After this PR is merged,
PasarGuard/core-kitshould be updated to the newly published@pasarguard/xray-config-kitversion.Summary by CodeRabbit
xhttp/splithttpsession ID settings: placement, key, table, and length.v26.6.22andv26.6.27.0.3.5.