@ekkos/cli 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ekkos/cli",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Setup ekkOS memory for AI coding assistants (Claude Code, Cursor, Windsurf)",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -110,6 +110,41 @@ if ($rawSessionId -eq "unknown" -and (Test-Path $sessionFile)) {
110
110
 
111
111
  $sessionName = Convert-UuidToWords $rawSessionId
112
112
 
113
+ # ═══════════════════════════════════════════════════════════════════════════
114
+ # SESSION BINDING: Bridge _pending → real session name for proxy eviction
115
+ # Windows has no PTY so run.ts can't detect the session name. The stop hook
116
+ # is the first place we have a confirmed session name, so we bind here.
117
+ # Mac does this in stop.sh (lines 171-179). Logic is identical.
118
+ # ═══════════════════════════════════════════════════════════════════════════
119
+ $configFile = Join-Path $EkkosConfigDir "config.json"
120
+ if ((Test-Path $configFile) -and $sessionName -ne "unknown-session") {
121
+ try {
122
+ $config = Get-Content $configFile -Raw | ConvertFrom-Json
123
+ $userId = $config.userId
124
+ $authToken = if ($config.hookApiKey) { $config.hookApiKey } else { $config.apiKey }
125
+
126
+ if ($userId -and $authToken) {
127
+ $projectPath = (Get-Location).Path
128
+ $pendingSession = if ($env:EKKOS_PENDING_SESSION) { $env:EKKOS_PENDING_SESSION } else { "_pending" }
129
+
130
+ $bindBody = @{
131
+ userId = $userId
132
+ realSession = $sessionName
133
+ projectPath = $projectPath
134
+ pendingSession = $pendingSession
135
+ } | ConvertTo-Json
136
+
137
+ Start-Job -ScriptBlock {
138
+ param($body, $token)
139
+ Invoke-RestMethod -Uri "https://proxy.ekkos.dev/proxy/session/bind" `
140
+ -Method POST `
141
+ -Headers @{ "Content-Type" = "application/json" } `
142
+ -Body $body -ErrorAction SilentlyContinue | Out-Null
143
+ } -ArgumentList $bindBody, $authToken | Out-Null
144
+ }
145
+ } catch {}
146
+ }
147
+
113
148
  # ═══════════════════════════════════════════════════════════════════════════
114
149
  # LOCAL CACHE: ACK turn to mark as synced
115
150
  # Per v1.2 ADDENDUM: Pass instanceId for namespacing