Compare commits

..

139 Commits

Author SHA1 Message Date
m 20d361a886 рабочий вариант, но скороть 10 МБит
build / backend (push) Has been cancelled
build / node-agent (push) Has been cancelled
build / worker (push) Has been cancelled
2026-05-22 21:46:49 +03:00
m 469fa0e860 3 2026-05-18 21:33:39 +03:00
m 5096155d83 2 2026-05-17 20:39:30 +03:00
m d551e57fd5 Refactor RDP proxy handling and update related tests 2026-05-17 20:38:35 +03:00
m 8e9402580f Track VPN pressure history 2026-05-16 13:47:42 +03:00
m 6a46063565 Assert nominal VPN pressure action 2026-05-16 13:42:56 +03:00
m 5e4c0d596b Promote VPN pressure action to snapshot 2026-05-16 13:39:09 +03:00
m 0715d98c44 Assert VPN pressure action report 2026-05-16 13:36:03 +03:00
m ca923a4445 Report VPN pressure action in smoke 2026-05-16 13:35:11 +03:00
m 2cc4bba81d Recommend VPN pressure actions 2026-05-16 13:34:04 +03:00
m 3c139d307c Stabilize VPN flow pressure heartbeat 2026-05-16 13:31:31 +03:00
m c1f8840235 Advertise VPN flow pressure capability 2026-05-16 13:30:39 +03:00
m 2bad0e2240 Report VPN flow pressure in heartbeat 2026-05-16 13:29:33 +03:00
m ba67b6e712 Report VPN pressure score in smoke 2026-05-16 13:27:10 +03:00
m f9ff0a4631 Score VPN scheduler pressure 2026-05-16 13:26:07 +03:00
m db75e1baed Report VPN scheduler pressure in smoke 2026-05-16 13:23:31 +03:00
m 1687277688 Classify VPN scheduler pressure 2026-05-16 13:22:23 +03:00
m 5c3b19cff7 Bucket VPN route switch reasons 2026-05-16 13:19:33 +03:00
m c97044cd34 Report route recovery reason in smoke 2026-05-16 13:18:26 +03:00
m 9ea49c8338 Track VPN route switch reasons 2026-05-16 13:17:35 +03:00
m f23e11a8fd Report aggregate route recovery in smoke 2026-05-16 13:14:44 +03:00
m aac224af9e Aggregate VPN route recovery timing 2026-05-16 13:13:49 +03:00
m 0363bb8c9c Report VPN route recovery time in smoke 2026-05-16 13:12:40 +03:00
m c8e7bd3717 Measure VPN route recovery time 2026-05-16 13:11:09 +03:00
m d43910d2c0 Smoke test VPN route recovery 2026-05-16 13:09:08 +03:00
m d5c089d120 Expose VPN route recovery telemetry 2026-05-16 13:07:42 +03:00
m 21fe965553 Smoke test VPN fabric bulk pressure 2026-05-16 13:04:08 +03:00
m f1cd43e6f2 Expose VPN fabric bulk pressure telemetry 2026-05-16 13:02:31 +03:00
m ebdae833fc Summarize QUIC pressure in heartbeat 2026-05-16 13:00:24 +03:00
m 66597a5b15 Keep strongest fabric pressure signal 2026-05-16 12:56:59 +03:00
m 83a1bb67e2 Stabilize QUIC pressure snapshots 2026-05-16 12:55:48 +03:00
m c64531d70c Use live QUIC pressure for endpoint ranking 2026-05-16 12:54:51 +03:00
m 8feb6d58fe Report QUIC capacity in smoke 2026-05-16 12:50:51 +03:00
m 49bc003193 Persist QUIC fabric closed evictions 2026-05-16 12:48:32 +03:00
m 28c26a5103 Expose QUIC fabric capacity pressure 2026-05-16 12:46:36 +03:00
m 5c02667398 Assert VPN fabric shard heartbeat 2026-05-16 12:44:38 +03:00
m a73591d917 Verify bounded VPN fabric fanout 2026-05-16 12:43:17 +03:00
m a6ee9ba26f Expose VPN fabric smoke fanout 2026-05-16 12:41:53 +03:00
m db9ea53e6c Report VPN fabric receive distribution 2026-05-16 12:40:31 +03:00
m 611de5471c Report VPN fabric batch fanout 2026-05-16 12:37:06 +03:00
m 09fc6ac659 Smoke test mixed VPN fabric batches 2026-05-16 12:34:36 +03:00
m bd70ca6342 Split VPN fabric batches by stream 2026-05-16 12:33:27 +03:00
m bbd9f8c257 Report VPN fabric stream cleanup 2026-05-16 12:30:49 +03:00
m da59de7042 Cancel VPN gateway loops together 2026-05-16 12:29:12 +03:00
m d170820445 Close VPN fabric session stream shards 2026-05-16 12:26:51 +03:00
m a5b91113bf Summarize VPN fabric stream sharding health 2026-05-16 12:24:44 +03:00
m 9c702613de Expose VPN fabric stream shard install flags 2026-05-16 12:22:34 +03:00
m a614029d4a Verify sharded VPN fabric session smoke 2026-05-16 12:18:52 +03:00
m c5e7fe8a31 Report VPN fabric session stream usage 2026-05-16 12:16:42 +03:00
m e50070c005 Shard VPN fabric session streams 2026-05-16 12:13:59 +03:00
m 9a170c83c2 Use capacity pressure in endpoint ranking 2026-05-16 12:06:05 +03:00
m 90fe4b6872 Report capacity pressure by endpoint 2026-05-16 12:02:46 +03:00
m 9e964e28cb Emit capacity endpoint observations 2026-05-16 11:59:27 +03:00
m a02f4fa8aa Score capacity pressure softly 2026-05-16 11:55:38 +03:00
m d67b80a7aa Report QUIC fabric capacity pressure 2026-05-16 11:54:05 +03:00
m 6dc7a61c9d Configure QUIC fabric idle TTL 2026-05-16 11:51:32 +03:00
m 8622ee71d7 Classify QUIC stream saturation 2026-05-16 11:48:12 +03:00
m 0f7caf5bb4 Configure QUIC fabric stream limits 2026-05-16 11:44:13 +03:00
m ef458330aa Track QUIC fabric stream capacity 2026-05-16 11:38:09 +03:00
m 650b309686 Prune idle QUIC fabric connections 2026-05-16 11:33:48 +03:00
m 39a5e01a7b Reuse QUIC fabric connections 2026-05-16 11:32:06 +03:00
m dbbdaa63f3 Advertise health-aware peer cache ranking 2026-05-16 11:29:12 +03:00
m 6817d150f8 Expose peer cache endpoint score reasons 2026-05-16 11:27:18 +03:00
m 831701003c Apply endpoint health in peer cache 2026-05-16 11:26:06 +03:00
m 9c99899322 Include reporter in endpoint health report 2026-05-16 11:23:48 +03:00
m 0124913919 Tag VPN fabric endpoint health sources 2026-05-16 11:19:36 +03:00
m 4516046a20 Accept endpoint health from mesh config 2026-05-16 11:17:07 +03:00
m 53a5a457e3 Prune VPN fabric endpoint observations 2026-05-16 11:11:37 +03:00
m 6a6ecb67cb Make VPN fabric telemetry carrier neutral 2026-05-16 11:09:27 +03:00
m 68bce01c6f Report VPN fabric endpoint health 2026-05-16 11:08:22 +03:00
m 396d36d5a9 Feed VPN fabric endpoint health into ranking 2026-05-16 11:04:56 +03:00
m e185e1f142 Report VPN fabric dial metrics 2026-05-16 11:00:05 +03:00
m 53c99cedd8 Log selected VPN fabric endpoint candidate 2026-05-16 10:55:01 +03:00
m 850bd67b6a Fallback across VPN fabric endpoint candidates 2026-05-16 10:54:11 +03:00
m 4ebc6629e6 Pin QUIC fabric endpoint certificates 2026-05-16 10:51:06 +03:00
m 3386a5e9b2 Route VPN fabric sessions by endpoint candidates 2026-05-16 10:45:31 +03:00
m efce41f458 Prefer QUIC fabric endpoints 2026-05-16 10:40:41 +03:00
m 562ccfdbc1 Cover QUIC carrier in mesh live smoke 2026-05-16 10:36:14 +03:00
m 6c62c14e2c Wire gated QUIC fabric listener 2026-05-16 10:34:28 +03:00
m f84b088580 Add QUIC fabric listener 2026-05-16 10:24:37 +03:00
m d3e5d540bb Select fabric carrier by endpoint 2026-05-16 10:22:44 +03:00
m 130ff117f3 Add QUIC fabric transport adapter 2026-05-16 10:19:16 +03:00
m ba3522d966 Introduce fabric transport abstraction 2026-05-16 10:14:07 +03:00
m 58c810d2e8 Report fabric peer session telemetry 2026-05-16 09:57:06 +03:00
m 057e3b65a7 Reopen closed fabric peer sessions 2026-05-16 09:54:02 +03:00
m 03efff6770 Use gated fabric sessions for VPN transport 2026-05-16 01:03:01 +03:00
m e16f456fe8 Gate VPN fabric session transport config 2026-05-16 00:56:11 +03:00
m 9cd0cb5ea9 Add fabric peer session manager 2026-05-16 00:51:39 +03:00
m 0a15617c52 Cover VPN packets in fabric session smoke 2026-05-16 00:49:18 +03:00
m 88db12617b Add fabric session packet transport 2026-05-16 00:47:07 +03:00
m 5d1523ec4e Map VPN packet batches to fabric frames 2026-05-16 00:44:30 +03:00
m aa09c10252 Add async fabric session pump 2026-05-16 00:40:59 +03:00
m ce6b9beb6b Add persistent fabric session client 2026-05-16 00:38:28 +03:00
m b5a29d692e Cover fabric session in mesh live smoke 2026-05-16 00:34:15 +03:00
m f9a8054dd8 Support signed fabric session smoke headers 2026-05-16 00:32:16 +03:00
m c2418e5ff2 Gate fabric session endpoint through node config 2026-05-16 00:29:54 +03:00
m 85c61a474f Add fabric session smoke CLI 2026-05-16 00:24:21 +03:00
m 4881b5e702 Add fabric session websocket client smoke API 2026-05-16 00:22:01 +03:00
m be31798d7c Require auth for fabric session websocket 2026-05-16 00:19:38 +03:00
m 8a972ea68f Add gated fabric session websocket endpoint 2026-05-16 00:16:13 +03:00
m 01f28693f5 Add fabric websocket transport adapter 2026-05-16 00:12:42 +03:00
m f82e6990f2 Add fabric binary transport loop 2026-05-16 00:10:04 +03:00
m 6ac41052e6 Handle fabric session protocol frames 2026-05-16 00:07:57 +03:00
m c711bdc67c Add fabric session stream runtime skeleton 2026-05-16 00:02:05 +03:00
m 2cedc2e2f3 Define distributed fabric node protocol plan 2026-05-15 23:55:21 +03:00
m bf78af07a6 Tune VPN fabric batching and flow windows 2026-05-15 23:19:15 +03:00
m fdf176bc5d Recover Android VPN faster on RDP stalls 2026-05-15 23:04:14 +03:00
m d2cd83a2be Improve Android VPN mixed-load QoS 2026-05-15 21:28:56 +03:00
m 54ce203c67 Allow clean route feedback to clear stale fences 2026-05-15 20:49:24 +03:00
m 3344fe5020 Keep Android diagnostic device id stable 2026-05-15 19:55:53 +03:00
m baf6d74bec Stabilize Android VPN upgrade restart 2026-05-15 19:22:33 +03:00
m 1dfeb79d53 Prioritize Android VPN control packets 2026-05-15 19:12:33 +03:00
m be25ff5725 Recover VPN fabric lease expiry 2026-05-15 18:52:37 +03:00
m 52dfce316d Reduce VPN control packet latency 2026-05-15 18:19:55 +03:00
m ceda460d09 Prioritize Android WebSocket downlink packets 2026-05-15 17:09:35 +03:00
m af85f6e309 Infer VPN packet traffic class 2026-05-15 16:38:00 +03:00
m 50db5e7a0d Prioritize VPN gateway control packets 2026-05-15 16:19:24 +03:00
m 59afc6bcc7 Guard Android VPN runtime generations 2026-05-15 15:13:37 +03:00
m 769bb3176c Prioritize Android VPN TCP handshakes 2026-05-15 14:57:37 +03:00
m d43d7b6589 Stabilize Android VPN watchdog telemetry 2026-05-15 14:43:55 +03:00
m 94eae6f9f0 Restore ordered Android VPN uplink sender 2026-05-15 14:29:00 +03:00
m 2eee9f9eb6 Tune Android VPN uplink workers 2026-05-15 14:23:32 +03:00
m 7b80dd020c Add explicit Android VPN LAN routes 2026-05-15 14:14:33 +03:00
m 64c795f233 Make Android VPN watchdog conservative under load 2026-05-15 13:34:54 +03:00
m e4a3e08876 Keep VPN diagnostics from restarting runtime by default 2026-05-15 13:07:15 +03:00
m d8c1632631 Reconnect Android VPN WebSocket after send rejection 2026-05-15 12:43:26 +03:00
m 5b9bdc2003 Avoid VPN watchdog recovery after TCP SYN ACK 2026-05-15 12:31:41 +03:00
m e3f21d591f Stabilize VPN farm startup path 2026-05-15 10:31:29 +03:00
m 96566cbe55 Retry stale Android VPN WebSocket connects 2026-05-15 09:51:30 +03:00
m 2cb6005cd3 Stabilize VPN farm WebSocket dataplane 2026-05-15 09:33:31 +03:00
m 5f4ac89767 Use fabric WebSocket dataplane for Android VPN 2026-05-15 08:50:26 +03:00
m 8558b210c3 Wait for Android VPN runtime before recovery probes 2026-05-15 08:26:21 +03:00
m 620d5a97c9 Recover Android VPN probes after first stall 2026-05-15 07:58:36 +03:00
m d2746cac68 Speed up Android VPN stall recovery 2026-05-15 01:09:07 +03:00
m 495059b92e Harden Android VPN uplink transient retries 2026-05-15 00:49:28 +03:00
m 4e694dc903 Fix Android VPN traffic from external apps 2026-05-14 23:35:43 +03:00
m 04c46042d9 1 2026-05-14 23:30:34 +03:00
m 26cb65e936 Fix VPN fabric-only routing guard 2026-05-14 23:26:19 +03:00
m 8f69d53193 Record project continuation changes 2026-05-12 21:02:29 +03:00
719 changed files with 1108854 additions and 8245 deletions
BIN
View File
Binary file not shown.
@@ -0,0 +1,36 @@
# Working Baseline: VPN/Fabric 2026-05-22 21:43 MSK
Purpose: known working reference after Android IPv4 ingress traffic started opening sites and the throughput baseline fixes were applied.
Repository base:
- branch: main
- HEAD: 469fa0e86032d3de152227c3999532cc33860429
Captured files:
- tracked-working-tree.patch: binary git patch for tracked modifications and deletions.
- untracked-files.zip: archive of untracked files present at the baseline time.
- untracked-files.txt: relative list of untracked files included in the archive.
- status-short.txt: git short status at capture time.
Runtime baseline:
- Android APK: 0.2.270 debug
- APK path: dist/downloads/rap-android-vpn-latest-debug.apk
- APK SHA256: 2ed0ace422bb7a11d90d6660ad080d4116025483e023b848c0650bdd75d2edaa
- home-1 agent image: rap-node-agent:0.2.378-vpn-throughput-quiet2
- home-1 rapvpn0 MTU: 1280
- home-1 RAP_VPN_FABRIC_SESSION_STREAM_SHARDS: 8
- home-1 RAP_VPN_FABRIC_QUIC_MAX_STREAMS_PER_CONN: 256
Validation already done:
- go test ./cmd/rap-node-agent ./internal/vpnruntime ./mobile/fabricvpn ./internal/mesh
- Android debug APK build/publish succeeded
- fabric-loadtest local all-mode: 256 streams, 268 MB, ~1.65 Gbit/s, verdict pass
- home-1 direct cachefly 100MB: ~84 MB/s (~674 Mbit/s)
Restore/use as reference:
1. Start from HEAD above.
2. Apply tracked-working-tree.patch with `git apply --index` or `git apply` depending on whether the index should be restored.
3. Extract untracked-files.zip into the repository root if untracked files are needed.
4. Rebuild/redeploy APK and home-1 agent from this state.
Note: this is intentionally a working-tree baseline, not only a git tag, because the working state contains many uncommitted tracked and untracked files.
@@ -0,0 +1 @@
main
@@ -0,0 +1 @@
469fa0e86032d3de152227c3999532cc33860429
@@ -0,0 +1,259 @@
M CODEX_CONTEXT.md
M README.md
D _tmp_android_build/.gradle/9.5.0/checksums/checksums.lock
D _tmp_android_build/.gradle/9.5.0/checksums/md5-checksums.bin
D _tmp_android_build/.gradle/9.5.0/checksums/sha1-checksums.bin
D _tmp_android_build/.gradle/9.5.0/executionHistory/executionHistory.bin
D _tmp_android_build/.gradle/9.5.0/executionHistory/executionHistory.lock
D _tmp_android_build/.gradle/9.5.0/fileChanges/last-build.bin
D _tmp_android_build/.gradle/9.5.0/fileHashes/fileHashes.bin
D _tmp_android_build/.gradle/9.5.0/fileHashes/fileHashes.lock
D _tmp_android_build/.gradle/9.5.0/fileHashes/resourceHashesCache.bin
D _tmp_android_build/.gradle/9.5.0/gc.properties
D _tmp_android_build/.gradle/buildOutputCleanup/buildOutputCleanup.lock
D _tmp_android_build/.gradle/buildOutputCleanup/cache.properties
D _tmp_android_build/.gradle/buildOutputCleanup/outputFiles.bin
D _tmp_android_build/.gradle/vcs-1/gc.properties
D _tmp_android_build/README.md
D _tmp_android_build/app/build.gradle
D _tmp_android_build/app/src/main/AndroidManifest.xml
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/MainActivity.java
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/RapApiClient.java
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/RapDiagnosticService.java
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/RapVpnService.java
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/RdpActivity.java
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/SecureTokenStore.java
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/TestTrafficActivity.java
D _tmp_android_build/app/src/main/java/su/cin/rapvpn/TestVpnActivity.java
D _tmp_android_build/app/src/main/res/values/styles.xml
D _tmp_android_build/build.gradle
D _tmp_android_build/local.properties
D _tmp_android_build/settings.gradle
M agents/rap-node-agent/README.md
M agents/rap-node-agent/cmd/fabric-loadtest/main.go
M agents/rap-node-agent/cmd/fabric-loadtest/main_test.go
M agents/rap-node-agent/cmd/mesh-live-smoke/main.go
M agents/rap-node-agent/cmd/rap-host-agent/main.go
M agents/rap-node-agent/cmd/rap-node-agent/main.go
M agents/rap-node-agent/cmd/rap-node-agent/main_test.go
M agents/rap-node-agent/internal/agent/payload.go
M agents/rap-node-agent/internal/client/client.go
M agents/rap-node-agent/internal/config/config.go
M agents/rap-node-agent/internal/config/config_test.go
M agents/rap-node-agent/internal/fabricproto/frame.go
M agents/rap-node-agent/internal/fabricproto/frame_test.go
M agents/rap-node-agent/internal/fabricproto/session.go
M agents/rap-node-agent/internal/fabricproto/session_test.go
M agents/rap-node-agent/internal/hostagent/config.go
M agents/rap-node-agent/internal/hostagent/docker.go
M agents/rap-node-agent/internal/hostagent/docker_test.go
M agents/rap-node-agent/internal/hostagent/linux.go
M agents/rap-node-agent/internal/hostagent/monitor.go
M agents/rap-node-agent/internal/hostagent/profile.go
M agents/rap-node-agent/internal/hostagent/self_update.go
M agents/rap-node-agent/internal/hostagent/service.go
M agents/rap-node-agent/internal/hostagent/service_test.go
M agents/rap-node-agent/internal/hostagent/update.go
M agents/rap-node-agent/internal/hostagent/update_test.go
M agents/rap-node-agent/internal/hostagent/windows.go
M agents/rap-node-agent/internal/hostagent/windows_update.go
D agents/rap-node-agent/internal/mesh/client.go
M agents/rap-node-agent/internal/mesh/contracts.go
M agents/rap-node-agent/internal/mesh/endpoint_candidate_scoring.go
M agents/rap-node-agent/internal/mesh/endpoint_candidate_scoring_test.go
M agents/rap-node-agent/internal/mesh/fabric_control_transport.go
M agents/rap-node-agent/internal/mesh/fabric_core.go
M agents/rap-node-agent/internal/mesh/fabric_quic_server.go
M agents/rap-node-agent/internal/mesh/fabric_quic_transport.go
M agents/rap-node-agent/internal/mesh/fabric_route_planner.go
M agents/rap-node-agent/internal/mesh/fabric_route_planner_test.go
M agents/rap-node-agent/internal/mesh/fabric_transport.go
M agents/rap-node-agent/internal/mesh/peer_cache.go
M agents/rap-node-agent/internal/mesh/peer_cache_test.go
M agents/rap-node-agent/internal/mesh/peer_connection_intent.go
M agents/rap-node-agent/internal/mesh/peer_connection_intent_test.go
M agents/rap-node-agent/internal/mesh/peer_connection_manager.go
M agents/rap-node-agent/internal/mesh/peer_connection_manager_test.go
M agents/rap-node-agent/internal/mesh/peer_connection_state.go
M agents/rap-node-agent/internal/mesh/peer_recovery_plan.go
M agents/rap-node-agent/internal/mesh/peer_recovery_plan_test.go
M agents/rap-node-agent/internal/mesh/production_transport.go
M agents/rap-node-agent/internal/mesh/registry_gossip.go
M agents/rap-node-agent/internal/mesh/registry_gossip_test.go
M agents/rap-node-agent/internal/mesh/remote_workspace_sink.go
M agents/rap-node-agent/internal/mesh/scoped_config.go
M agents/rap-node-agent/internal/mesh/scoped_config_test.go
M agents/rap-node-agent/internal/mesh/server.go
D agents/rap-node-agent/internal/mesh/server_test.go
M agents/rap-node-agent/internal/mesh/vpn_packet.go
M agents/rap-node-agent/internal/supervisor/supervisor.go
M agents/rap-node-agent/internal/supervisor/supervisor_test.go
M agents/rap-node-agent/internal/vpnruntime/fabric_session_packet.go
M agents/rap-node-agent/internal/vpnruntime/fabric_session_registry.go
M agents/rap-node-agent/internal/vpnruntime/fabric_session_transport.go
M agents/rap-node-agent/internal/vpnruntime/fabric_transport.go
M agents/rap-node-agent/internal/vpnruntime/fabric_transport_test.go
M agents/rap-node-agent/internal/vpnruntime/gateway.go
M agents/rap-node-agent/internal/vpnruntime/gateway_test.go
M agents/rap-node-agent/internal/vpnruntime/tun_linux.go
M agents/rap-node-agent/internal/webingress/admin_runtime.go
M agents/rap-node-agent/internal/webingress/admin_runtime_test.go
M agents/rap-node-agent/internal/webingress/manager.go
M agents/rap-node-agent/internal/webingress/manager_test.go
M agents/rap-node-agent/internal/webingress/runtime.go
M agents/rap-node-agent/internal/webingress/runtime_test.go
M agents/rap-node-agent/mobile/fabricvpn/fabricvpn.go
M agents/rap-node-agent/mobile/fabricvpn/fabricvpn_test.go
M backend/README.md
M backend/cmd/ws-smoke-client/main.go
M backend/go.mod
M backend/go.sum
M backend/internal/modules/auth/module.go
M backend/internal/modules/auth/service.go
M backend/internal/modules/cluster/models.go
M backend/internal/modules/cluster/module.go
M backend/internal/modules/cluster/module_admin_runtime_test.go
M backend/internal/modules/cluster/module_error_test.go
M backend/internal/modules/cluster/postgres_store.go
M backend/internal/modules/cluster/postgres_store_test.go
M backend/internal/modules/cluster/repository.go
M backend/internal/modules/cluster/service.go
M backend/internal/modules/cluster/service_test.go
M backend/internal/modules/nodeagent/module.go
M backend/internal/platform/authority/authority.go
M backend/internal/platform/config/config.go
M backend/internal/platform/runtime/app.go
M clients/android/.gradle/9.5.0/executionHistory/executionHistory.bin
M clients/android/.gradle/9.5.0/executionHistory/executionHistory.lock
M clients/android/.gradle/9.5.0/fileHashes/fileHashes.bin
M clients/android/.gradle/9.5.0/fileHashes/fileHashes.lock
M clients/android/.gradle/9.5.0/fileHashes/resourceHashesCache.bin
M clients/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock
M clients/android/README.md
M clients/android/app/build.gradle
M clients/android/app/libs/rap-fabricvpn-sources.jar
M clients/android/app/libs/rap-fabricvpn.aar
M clients/android/app/src/main/java/su/cin/rapvpn/MainActivity.java
M clients/android/app/src/main/java/su/cin/rapvpn/RapApiClient.java
M clients/android/app/src/main/java/su/cin/rapvpn/RapAutostartReceiver.java
M clients/android/app/src/main/java/su/cin/rapvpn/RapVpnService.java
M clients/android/app/src/main/java/su/cin/rapvpn/TestVpnActivity.java
M clients/windows/README.md
M clients/windows/src/RemoteAccessPlatform.Windows.Application/ViewModels/SessionWindowViewModel.cs
M clients/windows/src/RemoteAccessPlatform.Windows.Transport/BackendApiClient.cs
M clients/windows/src/RemoteAccessPlatform.Windows.Transport/SessionGatewayClient.cs
D docs/_legacy_v1/02_specs/technical_specification.md
D docs/_legacy_v1/03_codex_prompts/00_master_prompt.md
D docs/_legacy_v1/04_repo_bootstrap/what_to_do_in_codex_project_folder.md
D docs/_legacy_v1/05_decisions/technology_stack_review_2026.md
D docs/_legacy_v1/README_START_HERE.md
M docs/architecture/ARCHITECTURE_GUARDRAILS.md
M docs/architecture/CLUSTER_NODE_ADMIN_FOUNDATION.md
M docs/architecture/DATA_PLANE_V1.md
M docs/architecture/DISTRIBUTED_FABRIC_NODE_PROTOCOL_PLAN.md
M docs/architecture/FABRIC_AREA_AND_PEER_STABILITY_MODEL.md
M docs/architecture/FABRIC_FIRST_TRANSPORT_AND_STRESS_PLAN.md
M docs/architecture/FABRIC_LIVE_AUDIT_2026-05-18.md
M docs/architecture/FABRIC_NODE_SURVIVAL_AND_RECOVERY_POLICY.md
M docs/architecture/FABRIC_SERVICE_CHANNEL_RUNTIME.md
M docs/architecture/MESH_ROUTING_RUNTIME_IMPLEMENTATION_PLAN.md
M docs/architecture/RDP_ADAPTER_RUNTIME.md
M docs/architecture/RDP_SERVICE_CSHARP_TARGET.md
M docs/architecture/SECURE_ACCESS_FABRIC_TARGET.md
M docs/architecture/SECURE_NODE_TO_NODE_CHANNEL_LIFECYCLE.md
M docs/architecture/SECURITY_SECRETS_READINESS.md
M docs/architecture/SERVICE_ADAPTER_PROTOCOL.md
M docs/architecture/SIGNED_SCOPED_CLUSTER_SNAPSHOT_MODEL.md
M docs/architecture/VPN_IP_TUNNEL_SERVICE_TARGET.md
M docs/architecture/WEB_INGRESS_AND_ADMIN_UI_MODEL.md
M docs/audits/CURRENT_BASELINE_MATRIX.md
M docs/audits/PROJECT_AUDIT_2026-04-26.md
M docs/codex/CURRENT_STATUS.md
M docs/codex/NEXT_STEP_PROMPT.md
M docs/operations/VPN_BASELINE_0.2.87.md
M docs/ops/RAP_HOST_AGENT_MONITOR.md
M scripts/android/build-android-apk.ps1
M scripts/android/fast-release-android-apk.ps1
M scripts/android/rebuild-and-publish-android-apk.ps1
M scripts/android/release-android-apk.ps1
D scripts/fabric/c17h-multi-agent-synthetic-smoke-ssh.ps1
D scripts/fabric/c17h-multi-agent-synthetic-smoke.ps1
D scripts/fabric/c17z12-rendezvous-relay-smoke-ssh.ps1
M scripts/fabric/c17z19-route-health-feedback-smoke-ssh.ps1
M scripts/fabric/c18z1-live-service-channel-ingress-smoke.ps1
M scripts/fabric/c18z10-live-service-channel-exit-pool-smoke.ps1
M scripts/fabric/c18z100-rebuild-health-feedback-breakdown-smoke.ps1
M scripts/fabric/c18z102-rebuild-health-feedback-drilldown-audit-smoke.ps1
M scripts/fabric/c18z104-focused-fabric-audit-smoke.ps1
M scripts/fabric/c18z11-live-service-channel-entry-pool-smoke.ps1
M scripts/fabric/c18z13-live-service-channel-route-quality-smoke.ps1
M scripts/fabric/c18z14-live-service-channel-active-quality-shift-smoke.ps1
M scripts/fabric/c18z17-live-service-channel-quality-cleanup-smoke.ps1
M scripts/fabric/c18z18-service-channel-session-scoped-fairness-smoke.ps1
M scripts/fabric/c18z19-service-channel-parallel-flow-window-smoke.ps1
M scripts/fabric/c18z2-live-service-channel-soak-smoke.ps1
M scripts/fabric/c18z20-service-channel-adaptive-window-telemetry-smoke.ps1
M scripts/fabric/c18z21-service-channel-rolling-quality-window-smoke.ps1
M scripts/fabric/c18z23-service-channel-recovery-hysteresis-smoke.ps1
M scripts/fabric/c18z3-live-service-channel-entry-ws-fallback-smoke.ps1
M scripts/fabric/c18z4-live-service-channel-session-pressure-smoke.ps1
M scripts/fabric/c18z5-live-service-channel-exit-restart-smoke.ps1
M scripts/fabric/c18z52-service-channel-access-telemetry-smoke.ps1
M scripts/fabric/c18z54-service-channel-normal-route-access-smoke.ps1
M scripts/fabric/c18z55-service-channel-degraded-route-access-smoke.ps1
M scripts/fabric/c18z56-service-channel-alternate-remediation-smoke.ps1
M scripts/fabric/c18z57-service-channel-remediation-command-smoke.ps1
M scripts/fabric/c18z58-service-channel-remediation-apply-smoke.ps1
M scripts/fabric/c18z59-service-channel-remediation-traffic-smoke.ps1
M scripts/fabric/c18z6-live-service-channel-active-rebuild-smoke.ps1
M scripts/fabric/c18z60-service-channel-remediation-multiflow-smoke.ps1
M scripts/fabric/c18z61-service-channel-remediation-pressure-smoke.ps1
M scripts/fabric/c18z62-service-channel-remediation-qos-smoke.ps1
M scripts/fabric/c18z67-service-channel-concurrent-qos-live-smoke.ps1
M scripts/fabric/c18z7-live-service-channel-concurrent-isolation-smoke.ps1
M scripts/fabric/c18z72-service-channel-pool-policy-smoke.ps1
M scripts/fabric/c18z73-service-channel-pool-policy-remediation-guard-smoke.ps1
M scripts/fabric/c18z8-live-service-channel-backpressure-isolation-smoke.ps1
M scripts/fabric/c18z9-live-service-channel-route-pool-smoke.ps1
M scripts/fabric/c18z91-node-agent-data-plane-contract-enforcement-smoke.ps1
D scripts/fabric/c18z92-node-agent-disabled-backend-fallback-smoke.ps1
M scripts/fabric/c18z93-access-telemetry-data-plane-contract-smoke.ps1
M scripts/fabric/c18z94-data-plane-contract-incident-smoke.ps1
M scripts/fabric/c18z95-node-agent-blocked-fallback-telemetry-smoke.ps1
M scripts/fabric/c18z96-blocked-fallback-rebuild-feedback-smoke.ps1
M scripts/fabric/c18z97-blocked-fallback-feedback-dedup-smoke.ps1
M scripts/fabric/c18z98-blocked-fallback-rebuild-correlation-smoke.ps1
M scripts/fabric/c18z99-rebuild-correlation-filter-smoke.ps1
M scripts/fabric/c19a-service-workload-supervision-smoke.ps1
D scripts/fabric/deploy-test-nodes.ps1
D scripts/fabric/dev-cluster-enrollment-bootstrap-smoke-ssh.ps1
M web-admin/README.md
D web-admin/deploy/html/assets/index-CiNvRobk.js
D web-admin/deploy/html/assets/index-Cur_BAkX.css
M web-admin/deploy/html/index.html
M web-admin/index.html
M web-admin/src/App.tsx
M web-admin/src/api/client.ts
M web-admin/src/styles.css
M web-admin/src/types.ts
M workers/rdp-worker/src/dataplane/direct_wss_server.cpp
?? .codex-baselines/
?? _tmp_release_0.2.355-rescue-hold/
?? agents/rap-node-agent/$tmp/
?? agents/rap-node-agent/internal/mesh/fabric_live_probe.go
?? agents/rap-node-agent/internal/vpnruntime/service_stream_registry.go
?? agents/rap-node-agent/internal/vpnruntime/service_stream_registry_test.go
?? agents/rap-node-agent/internal/vpnruntime/service_tunnel.go
?? agents/rap-node-agent/internal/vpnruntime/service_tunnel_test.go
?? agents/rap-node-agent/rap-node-agent-linux-test
?? backend/internal/modules/auth/module_html.go
?? backend/internal/modules/cluster/module_console_html.go
?? backend/internal/modules/cluster/module_nodes_html.go
?? backend/internal/platform/fabriccontrol/
?? docs/_archive_v1/
?? docs/architecture/FABRIC_EXECUTION_PLAN_2026-05-19.md
?? docs/architecture/FABRIC_SERVICE_OVER_TRANSPORT_MODEL.md
?? docs/architecture/FABRIC_TRANSPORT_SCALE_PLAN.md
?? scripts/check-fabric-standard-boundary.ps1
?? scripts/check-live-farm-fabric-standard.ps1
?? scripts/fabric/c18z92-node-agent-disabled-compat-fallback-smoke.ps1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,43 @@
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\.codex-baselines\vpn-working-20260522-214333\branch.txt
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\.codex-baselines\vpn-working-20260522-214333\head.txt
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\.codex-baselines\vpn-working-20260522-214333\status-short.txt
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\.codex-baselines\vpn-working-20260522-214333\tracked-working-tree.patch
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\_tmp_release_0.2.355-rescue-hold\rap-host-agent-0.2.355-rescue-hold-linux-amd64
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\_tmp_release_0.2.355-rescue-hold\rap-host-agent-0.2.355-rescue-hold-linux-amd64-fixed
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\_tmp_release_0.2.355-rescue-hold\rap-node-agent-0.2.355-rescue-hold-docker-amd64.tar
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\_tmp_release_0.2.355-rescue-hold\rap-node-agent-0.2.355-rescue-hold-linux-amd64
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\java\go\Seq.java
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\java\go\Universe.java
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\java\go\error.java
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\java\su\cin\rapvpn\fabric\fabricvpn\Fabricvpn.java
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\java\su\cin\rapvpn\fabric\fabricvpn\Manager.java
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\java\su\cin\rapvpn\fabric\fabricvpn\SocketProtector.java
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\src\gobind\fabricvpn_android.c
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\src\gobind\fabricvpn_android.h
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\src\gobind\seq_android.c
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\src\gobind\seq_android.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\src\gobind\seq_android.h
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\src\gobind\universe_android.c
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\$tmp\src\gobind\universe_android.h
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\internal\mesh\fabric_live_probe.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\internal\vpnruntime\service_stream_registry.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\internal\vpnruntime\service_stream_registry_test.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\internal\vpnruntime\service_tunnel.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\internal\vpnruntime\service_tunnel_test.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\agents\rap-node-agent\rap-node-agent-linux-test
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\backend\internal\modules\auth\module_html.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\backend\internal\modules\cluster\module_console_html.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\backend\internal\modules\cluster\module_nodes_html.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\backend\internal\platform\fabriccontrol\frame.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\backend\internal\platform\fabriccontrol\server.go
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\_archive_v1\02_specs\technical_specification.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\_archive_v1\03_codex_prompts\00_master_prompt.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\_archive_v1\04_repo_bootstrap\what_to_do_in_codex_project_folder.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\_archive_v1\05_decisions\technology_stack_review_2026.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\_archive_v1\README_START_HERE.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\architecture\FABRIC_EXECUTION_PLAN_2026-05-19.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\architecture\FABRIC_SERVICE_OVER_TRANSPORT_MODEL.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\docs\architecture\FABRIC_TRANSPORT_SCALE_PLAN.md
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\scripts\check-fabric-standard-boundary.ps1
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\scripts\check-live-farm-fabric-standard.ps1
Microsoft.PowerShell.Core\FileSystem::\\nas\MST\codex\rdp-proxy\scripts\fabric\c18z92-node-agent-disabled-compat-fallback-smoke.ps1
@@ -0,0 +1,43 @@
.codex-baselines/vpn-working-20260522-214333/branch.txt
.codex-baselines/vpn-working-20260522-214333/head.txt
.codex-baselines/vpn-working-20260522-214333/status-short.txt
.codex-baselines/vpn-working-20260522-214333/tracked-working-tree.patch
_tmp_release_0.2.355-rescue-hold/rap-host-agent-0.2.355-rescue-hold-linux-amd64
_tmp_release_0.2.355-rescue-hold/rap-host-agent-0.2.355-rescue-hold-linux-amd64-fixed
_tmp_release_0.2.355-rescue-hold/rap-node-agent-0.2.355-rescue-hold-docker-amd64.tar
_tmp_release_0.2.355-rescue-hold/rap-node-agent-0.2.355-rescue-hold-linux-amd64
agents/rap-node-agent/$tmp/java/go/Seq.java
agents/rap-node-agent/$tmp/java/go/Universe.java
agents/rap-node-agent/$tmp/java/go/error.java
agents/rap-node-agent/$tmp/java/su/cin/rapvpn/fabric/fabricvpn/Fabricvpn.java
agents/rap-node-agent/$tmp/java/su/cin/rapvpn/fabric/fabricvpn/Manager.java
agents/rap-node-agent/$tmp/java/su/cin/rapvpn/fabric/fabricvpn/SocketProtector.java
agents/rap-node-agent/$tmp/src/gobind/fabricvpn_android.c
agents/rap-node-agent/$tmp/src/gobind/fabricvpn_android.h
agents/rap-node-agent/$tmp/src/gobind/seq_android.c
agents/rap-node-agent/$tmp/src/gobind/seq_android.go
agents/rap-node-agent/$tmp/src/gobind/seq_android.h
agents/rap-node-agent/$tmp/src/gobind/universe_android.c
agents/rap-node-agent/$tmp/src/gobind/universe_android.h
agents/rap-node-agent/internal/mesh/fabric_live_probe.go
agents/rap-node-agent/internal/vpnruntime/service_stream_registry.go
agents/rap-node-agent/internal/vpnruntime/service_stream_registry_test.go
agents/rap-node-agent/internal/vpnruntime/service_tunnel.go
agents/rap-node-agent/internal/vpnruntime/service_tunnel_test.go
agents/rap-node-agent/rap-node-agent-linux-test
backend/internal/modules/auth/module_html.go
backend/internal/modules/cluster/module_console_html.go
backend/internal/modules/cluster/module_nodes_html.go
backend/internal/platform/fabriccontrol/frame.go
backend/internal/platform/fabriccontrol/server.go
docs/_archive_v1/02_specs/technical_specification.md
docs/_archive_v1/03_codex_prompts/00_master_prompt.md
docs/_archive_v1/04_repo_bootstrap/what_to_do_in_codex_project_folder.md
docs/_archive_v1/05_decisions/technology_stack_review_2026.md
docs/_archive_v1/README_START_HERE.md
docs/architecture/FABRIC_EXECUTION_PLAN_2026-05-19.md
docs/architecture/FABRIC_SERVICE_OVER_TRANSPORT_MODEL.md
docs/architecture/FABRIC_TRANSPORT_SCALE_PLAN.md
scripts/check-fabric-standard-boundary.ps1
scripts/check-live-farm-fabric-standard.ps1
scripts/fabric/c18z92-node-agent-disabled-compat-fallback-smoke.ps1
+63 -62
View File
@@ -1,64 +1,65 @@
# OS
.DS_Store
Thumbs.db
# IDE
.idea/
.vscode/
*.swp
*.swo
# Logs
*.log
logs/
tmp/
temp/
# Env
.env
.env.*
!.env.example
# Go
backend/bin/
backend/.cache/
backend/vendor/
*.test
coverage.out
# C/C++
build/
cmake-build-*/
CMakeFiles/
CMakeCache.txt
compile_commands.json
*.o
*.obj
*.so
*.a
*.dll
*.exe
# .NET / WPF
bin/
obj/
*.user
*.suo
# Node / React
node_modules/
dist/
build/
.next/
coverage/
# Python (if scripts appear later)
__pycache__/
*.pyc
# Docker
*.local.yml
# OS
.DS_Store
Thumbs.db
# IDE
.idea/
.vscode/
*.swp
*.swo
# Logs
*.log
logs/
tmp/
temp/
# Env
.env
.env.*
!.env.example
# Go
backend/bin/
backend/.cache/
backend/vendor/
*.test
coverage.out
# C/C++
build/
cmake-build-*/
CMakeFiles/
CMakeCache.txt
compile_commands.json
*.o
*.obj
*.so
*.a
*.dll
*.exe
# .NET / WPF
bin/
obj/
*.user
*.suo
# Node / React
node_modules/
dist/
build/
.next/
coverage/
# Python (if scripts appear later)
__pycache__/
*.pyc
# Docker
*.local.yml
# Generated artifacts
artifacts/
out/
out/
web-admin/deploy/html/downloads/
+11
View File
@@ -0,0 +1,11 @@
## Shared Test Docker Host
- Do not use local Docker Desktop for this project. This Windows workstation runs inside a VM, so nested virtualization / local Docker is not a supported path.
- Use the shared test Docker host for all Docker builds, compose runs, container tests, and image checks.
- Use SSH alias `test-docker` / `docker-test`.
- Host: `docker-test.cin.su` (`192.168.200.61`)
- SSH user: `test`
- Preferred Docker endpoint when Docker CLI is available: `ssh://test-docker`
- Current working Docker context may be `test-ubuntu`; it points to the shared test Docker host.
- Portainer: `http://docker-test.cin.su:9000/`, user `admin`
- Do not store the password in repositories or project files; use an SSH key for persistent access.
+5402 -616
View File
File diff suppressed because it is too large Load Diff
+63 -3
View File
@@ -9,6 +9,9 @@ The project started as an RDP proxy, but the target architecture is broader:
- service adapters for RDP now and VNC/SSH/VPN/file/video later
- native Access Clients
- future secure mesh / node-agent / updater / connector model
- shared Fabric Service Channel runtime for working service data so VPN,
Remote Workspace, video, file, and future services request a common channel
instead of reimplementing transport, routing, and failover
RDP is the first proven service baseline. RDP work is currently paused by
product decision while the project moves to the Secure Access Fabric
@@ -57,6 +60,7 @@ See the current audit and baseline matrix before starting new work:
- `workers/rdp-worker/` - active C++ RDP Adapter worker
- `workers/rdp-service-csharp/` - inactive research scaffold, not current runtime
- `clients/windows/` - Windows native Access Client
- `clients/android/` - Android VPN client
- `docs/architecture/` - target and staged architecture documents
- `docs/codex/` - current Codex status and next-step prompts
- `docs/audits/` - current audits and baseline matrices
@@ -64,6 +68,49 @@ See the current audit and baseline matrix before starting new work:
- `deploy/` - deployment assets
- `web-admin/` - future/admin UI area
### Быстрый локальный билд Android APK после апдейта
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\prepare-local-build-workstation.ps1 -SetEnvironment
pwsh -ExecutionPolicy Bypass -File scripts\android\prepare-android-build-environment.ps1 -SetEnvironment
pwsh -ExecutionPolicy Bypass -File scripts\android\rebuild-and-publish-android-apk.ps1
```
Для быстрого release (сборка + публикация + опциональная проверка манифеста):
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\release-android-apk.ps1 `
-InstallMissing `
-PublishToTestDockerDownloads
```
Для одного шага «всё-в-одном»:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\fast-release-android-apk.ps1
```
Или через `.cmd` (Windows, двойной клик/ссылкой):
```text
scripts\android\fast-release-android-apk.cmd
```
После обновления Android-клиента выполните на машине сборки:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\rebuild-and-publish-android-apk.ps1 -InstallMissing -BuildType release
```
Скрипт сам проверит окружение, при необходимости поставит недостающие компоненты
SDK (флаг `-InstallMissing`) и соберет APK. После этого артефакт сразу окажется в
`web-admin/deploy/html/downloads` для скачивания из панели.
Важно по процессу релиза: каждый новый номер версии должен проходить полный цикл
`сборка → публикация → проверка manifest` и всегда попадать в `latest-release` +
`releases/<version>` на стороне дистрибутива, чтобы узлы и пользователи всегда
обновлялись с актуального билда.
## Read Order
1. `CODEX_CONTEXT.md`
@@ -73,12 +120,25 @@ See the current audit and baseline matrix before starting new work:
5. `docs/codex/ARCHITECTURE_GUARDRAILS.md`
6. `docs/architecture/RDP_ADAPTER_RUNTIME.md`
7. `docs/architecture/DATA_PLANE_V1.md`
8. `docs/architecture/CLUSTER_NODE_ADMIN_FOUNDATION.md`
9. `docs/codex/NEXT_STEP_PROMPT.md`
8. `docs/architecture/FABRIC_SERVICE_CHANNEL_RUNTIME.md`
9. `docs/architecture/CLUSTER_NODE_ADMIN_FOUNDATION.md`
10. `docs/codex/NEXT_STEP_PROMPT.md`
Do not use `docs/_legacy_v1` for implementation decisions. Legacy files are
Do not use `docs/_archive_v1` for implementation decisions. Archived files are
historical reference only.
## Fabric Standard Boundary Check
When changing farm/runtime/update code, run the fabric standard audit before
finishing:
```powershell
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts\check-fabric-standard-boundary.ps1
```
It verifies that removed pre-fabric keys and updater flags do not leak back
into the repository.
## Current Next Step
RDP work is paused. Platform-core stages C1-C9 are implemented and verified:
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-host-agent","version":"0.2.176","channel":"dev","status":"active","compatibility":{"min_version":"0.0.0"},"changelog":"C18U host-agent companion release for node-agent 0.2.176 route-manager runtime rollout.","artifacts":[{"os":"linux","arch":"amd64","install_type":"linux_binary","kind":"binary","url":"/downloads/rap-host-agent-0.2.176-linux-amd64","sha256":"88b34dcd5f9ae83519d478b66d2695db6f46e5b76c9a14142f95b56f3babe2fe","size_bytes":9625505,"metadata":{}},{"os":"windows","arch":"amd64","install_type":"windows_binary","kind":"binary","url":"/downloads/rap-host-agent-0.2.176-windows-amd64.exe","sha256":"b6333e57efedd45af23c94863f432477eb54f0e77fe1c05a18492c2caa1d7344","size_bytes":9651712,"metadata":{}}]}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","version":"0.2.176","channel":"dev","status":"active","compatibility":{"min_version":"0.0.0","signed_synthetic_config":"c18u_route_manager_rebuild_fields"},"changelog":"C18U node-agent service-channel route-manager consumes backend rebuild decisions and withdraws fenced routes at runtime.","artifacts":[{"os":"linux","arch":"amd64","install_type":"docker","kind":"docker_image_tar","url":"/downloads/rap-node-agent-0.2.176-docker-amd64.tar","sha256":"cdb69ea16de30f79be345e397f24a3dbbafb7fe5fd74bb203ba310c55c698037","size_bytes":41406976,"metadata":{"image":"rap-node-agent:0.2.176"}},{"os":"linux","arch":"amd64","install_type":"linux_binary","kind":"binary","url":"/downloads/rap-node-agent-0.2.176-linux-amd64","sha256":"09c76f40fc94d405c5f99c196e3a88a0f426b581617bbde316ce9cf0d2cccf0c","size_bytes":11345378,"metadata":{}},{"os":"linux","arch":"amd64","install_type":"linux_service","kind":"binary","url":"/downloads/rap-node-agent-0.2.176-linux-amd64","sha256":"09c76f40fc94d405c5f99c196e3a88a0f426b581617bbde316ce9cf0d2cccf0c","size_bytes":11345378,"metadata":{}},{"os":"windows","arch":"amd64","install_type":"windows_service","kind":"binary","url":"/downloads/rap-node-agent-0.2.176-windows-amd64.exe","sha256":"1199da0d86435331de9143f52495149e301da32edbc7ad2db6f9f771a0e609f4","size_bytes":12167168,"metadata":{}}]}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.176","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.176","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.176","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.176","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.176","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.176","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-host-agent","version":"0.2.177","channel":"dev","status":"active","compatibility":{"min_version":"0.0.0"},"changelog":"C18V host-agent companion release for node-agent 0.2.177 route-manager transition telemetry rollout.","artifacts":[{"os":"linux","arch":"amd64","install_type":"linux_binary","kind":"binary","url":"/downloads/rap-host-agent-0.2.177-linux-amd64","sha256":"babb74419a9c414caa9ba8612a9a8a745c1b2dc40bd4d83456cc84bdaf6c1fab","size_bytes":9625505,"metadata":{}},{"os":"windows","arch":"amd64","install_type":"windows_binary","kind":"binary","url":"/downloads/rap-host-agent-0.2.177-windows-amd64.exe","sha256":"eba255f8685c3141f8cb80be345d007aad4873d7445ab474424b673e715f0c6b","size_bytes":9651712,"metadata":{}}]}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","version":"0.2.177","channel":"dev","status":"active","compatibility":{"min_version":"0.0.0","service_channel_route_manager":"c18v_transition_telemetry"},"changelog":"C18V node-agent service-channel route-manager transition telemetry and lifecycle coverage for rebuild apply, pending degraded fallback, and restore by fresh config.","artifacts":[{"os":"linux","arch":"amd64","install_type":"docker","kind":"docker_image_tar","url":"/downloads/rap-node-agent-0.2.177-docker-amd64.tar","sha256":"17f6448c3ed8939643fddf5180375a43a66d28604d85573806522fa1180180bc","size_bytes":41411072,"metadata":{"image":"rap-node-agent:0.2.177"}},{"os":"linux","arch":"amd64","install_type":"linux_binary","kind":"binary","url":"/downloads/rap-node-agent-0.2.177-linux-amd64","sha256":"a7d077818c49a942d091d65ec6887ca435077b2bfcbfa95fa696b5fca301e143","size_bytes":11350475,"metadata":{}},{"os":"linux","arch":"amd64","install_type":"linux_service","kind":"binary","url":"/downloads/rap-node-agent-0.2.177-linux-amd64","sha256":"a7d077818c49a942d091d65ec6887ca435077b2bfcbfa95fa696b5fca301e143","size_bytes":11350475,"metadata":{}},{"os":"windows","arch":"amd64","install_type":"windows_service","kind":"binary","url":"/downloads/rap-node-agent-0.2.177-windows-amd64.exe","sha256":"e4a25be5b413742bdb0dd6c544f500300b6ebeb6873eaa979f6d780cab861f1b","size_bytes":12173824,"metadata":{}}]}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.177","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.177","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.177","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.177","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.177","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.177","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-host-agent","version":"0.2.180","channel":"dev","status":"active","compatibility":{"min_version":"0.0.0"},"changelog":"C18X host-agent companion release for node-agent 0.2.180 service-channel scheduler rollout.","artifacts":[{"os":"linux","arch":"amd64","install_type":"linux_binary","kind":"binary","url":"/downloads/rap-host-agent-0.2.180-linux-amd64","sha256":"7dbaabebfa26c97cef443eb1e79729c758453e05ecb0218470d6e4cbcade7a38","size_bytes":9625505,"metadata":{}},{"os":"windows","arch":"amd64","install_type":"windows_binary","kind":"binary","url":"/downloads/rap-host-agent-0.2.180-windows-amd64.exe","sha256":"4e5391b3f3770d6dd00a8c66977a933fb1a610de750c3194fb9a6e37d92e8d74","size_bytes":9651712,"metadata":{}}]}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","version":"0.2.180","channel":"dev","status":"active","compatibility":{"min_version":"0.0.0","service_channel_scheduler":"c18x_per_logical_channel_failover"},"changelog":"C18X service-channel scheduler fix: per-logical-channel failed route avoidance no longer falls back to global last route; adds bounded backpressure coverage.","artifacts":[{"os":"linux","arch":"amd64","install_type":"docker","kind":"docker_image_tar","url":"/downloads/rap-node-agent-0.2.180-docker-amd64.tar","sha256":"a393ad343a58bf606dab9246e2f2adefa1be5ae49c15305d5af033c937f4cac1","size_bytes":41411072,"metadata":{"image":"rap-node-agent:0.2.180"}},{"os":"linux","arch":"amd64","install_type":"linux_binary","kind":"binary","url":"/downloads/rap-node-agent-0.2.180-linux-amd64","sha256":"ebddd7f0e8dec761f1a8c397cfb56552fd995e6c182b1d6c88df6f7806f03600","size_bytes":11350467,"metadata":{}},{"os":"linux","arch":"amd64","install_type":"linux_service","kind":"binary","url":"/downloads/rap-node-agent-0.2.180-linux-amd64","sha256":"ebddd7f0e8dec761f1a8c397cfb56552fd995e6c182b1d6c88df6f7806f03600","size_bytes":11350467,"metadata":{}},{"os":"windows","arch":"amd64","install_type":"windows_service","kind":"binary","url":"/downloads/rap-node-agent-0.2.180-windows-amd64.exe","sha256":"8218497fb1b150f74478d2041973de93f303ca72a99702a0f8f347125877a000","size_bytes":12173824,"metadata":{}}]}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.180","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.180","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.180","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.180","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.180","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}
@@ -0,0 +1 @@
{"actor_user_id":"f67d943f-5397-4b3a-a229-695fe67ad700","product":"rap-node-agent","channel":"dev","target_version":"0.2.180","strategy":"rolling","enabled":true,"rollback_allowed":true,"health_window_seconds":90}

Some files were not shown because too many files have changed in this diff Show More