ask-app-server 0.4.21 → 0.4.22

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5aa5a8d4066e4582abb3085f5463ffe4495e6755cde3bacc8c1543b15c5503f
4
- data.tar.gz: 59b2257fafea93b38d646c8db0868c0346318821058be1a4c2bc1157b33812b6
3
+ metadata.gz: a798da52caa5bd806b1b44c6ffc698f3f8c6eda35b46c8106a47ca5858c3dc96
4
+ data.tar.gz: 8dfaa77e96b1b3e181010cfa691b347ef04f1ff77ae4f8975e769f9d269e3a90
5
5
  SHA512:
6
- metadata.gz: c3a3498c2d2f6b97598d4bbc5dcf031c350472401d4dbf9706a3e373fbbfcb2c178ca83ac191dac3fa9a61e952fbb3115b3e8178a36f099bb6f91dd7ba7aa714
7
- data.tar.gz: 0023d21c1861439f8908c788d50f888fae64c3706663cd95bef6f11ed0209e6636b71d5940721eb8c86b35bd8fa66ef26e6129dd36871b3094f1d3367e053ae3
6
+ metadata.gz: ec63de1fa030729903f69f0cabfb975a7aa8046fa73edf86a6161ff2cf7b2bae4ec07a59a1547c1278150c62196af7c7a2b914c9d12d79ceb1f93145831f1e1d
7
+ data.tar.gz: ee5bf7058adf48edf457e6689155a4f5f23d6b6450373bd7c08faa73deee9e98619f56ecb4417e76a364a43850c17d00c6488f677f488c7eaf70d324fbf6f85c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### Fixed
6
+
7
+ - **Durable session listings survive restart.** When `state_adapter:` is
8
+ configured, the app-server session registry now uses the same persistent
9
+ adapter as the ask-session Host, so SQLite and PostgreSQL sessions remain
10
+ discoverable through `session/list` after restart. Reattaching a durable
11
+ session no longer reports it as a duplicate live session.
12
+
5
13
  ## [0.4.21] - 2026-09-22
6
14
 
7
15
  ### Added
@@ -33,7 +33,7 @@ module Ask
33
33
  attr_reader :permission_timeout
34
34
 
35
35
  def initialize(store: nil, host: nil, state_adapter: nil, permission_mode: :on_request, blocked_tools: nil, permission_timeout: 300)
36
- @store = store || SessionStore.new
36
+ @store = store || SessionStore.new(state: state_adapter)
37
37
  @host = host || build_host(state_adapter)
38
38
  @permission_mode = permission_mode
39
39
  @blocked_tools = (blocked_tools || DEFAULT_REQUIRE_APPROVAL).map(&:to_s)
@@ -40,10 +40,12 @@ module Ask
40
40
 
41
41
  @mutex.synchronize do
42
42
  existing = @state.get("#{SESSION_PREFIX}#{session_id}")
43
- raise Ask::AppServer::SessionAlreadyExists, "Session #{session_id} already exists" if existing
43
+ if existing && @adapters.key?(session_id)
44
+ raise Ask::AppServer::SessionAlreadyExists, "Session #{session_id} already exists"
45
+ end
44
46
 
45
47
  @state.set("#{SESSION_PREFIX}#{session_id}", metadata)
46
- @state.list_append(SESSION_LIST_KEY, session_id, max_length: 200)
48
+ @state.list_append(SESSION_LIST_KEY, session_id, max_length: 200) unless existing
47
49
  @adapters[session_id] = adapter
48
50
  end
49
51
  end
@@ -75,7 +77,7 @@ module Ask
75
77
  metadata = @state.get("#{SESSION_PREFIX}#{sid}")
76
78
  if metadata
77
79
  adapter = @adapters[sid]
78
- metadata.merge(
80
+ metadata.transform_keys(&:to_sym).merge(
79
81
  running: adapter&.running || false,
80
82
  idle: adapter&.idle? || true
81
83
  )
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ask
4
4
  module AppServer
5
- VERSION = "0.4.21"
5
+ VERSION = "0.4.22"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ask-app-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.21
4
+ version: 0.4.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaka Ruto
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.40.19
18
+ version: 0.40.22
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 0.40.19
25
+ version: 0.40.22
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: ask-core
28
28
  requirement: !ruby/object:Gem::Requirement