ollama_chat 0.0.136 → 0.0.137
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 +4 -4
- data/CHANGES.md +39 -0
- data/Rakefile +2 -2
- data/lib/ollama_chat/database/models/collection.rb +2 -1
- data/lib/ollama_chat/oc.rb +1 -1
- data/lib/ollama_chat/rag_handling.rb +15 -4
- data/lib/ollama_chat/system_prompt_management.rb +3 -3
- data/lib/ollama_chat/version.rb +1 -1
- data/ollama_chat.gemspec +6 -6
- data/spec/ollama_chat/rag_handling_spec.rb +58 -0
- metadata +8 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '00825774cef8e349ad7666a4e3046995bfa4803216d75fe688c8479a3bfce6c2'
|
|
4
|
+
data.tar.gz: 45f95f47c73c711686b479c49ac6fec3309fe3a68c385fb9d780e28f8f10dd13
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 157e6951f84674cae4cc74e3423f9569f6cb30efc92109d7b27538ed7424e4d938e03513b9d3d0044b233be9f74b06572218c4ab128b5881d4361424585bf285
|
|
7
|
+
data.tar.gz: 98eed217eca3fc4e396110ec20729e9e10bad64e5bf40539df1768ccd70c21ede9896855ba94a4b551ab3133c3e6020f45383de2ef59e7e9e75206c168f685d7
|
data/CHANGES.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# Changes
|
|
2
2
|
|
|
3
|
+
## 2026-10-23 v0.0.137
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
|
|
7
|
+
- Fixed a double-scheme bug in `OC::URL` default generation by delegating to
|
|
8
|
+
`Ollama.base_url`, ensuring correct handling of `HOST` values that already
|
|
9
|
+
include `http://` or `https://`.
|
|
10
|
+
- Prevented deletion of the `default` collection in `delete_collection`,
|
|
11
|
+
returning a warning feedback instead.
|
|
12
|
+
- Reset `session.current_collection` to `'default'` when the active collection
|
|
13
|
+
is deleted.
|
|
14
|
+
|
|
15
|
+
### Improvements
|
|
16
|
+
|
|
17
|
+
- Ensured the `default` collection row always exists in the database by
|
|
18
|
+
unioning it with `chat.documents.collections` during `Collection.sync`.
|
|
19
|
+
- Removed four vestigial `refresh_system_prompt` calls from
|
|
20
|
+
`create_collection`, `edit_collection`, `rename_collection`, and
|
|
21
|
+
`delete_collection`, as collection data no longer interpolates into the
|
|
22
|
+
system prompt.
|
|
23
|
+
|
|
24
|
+
### Build & CI
|
|
25
|
+
|
|
26
|
+
- Updated `ollama-ruby` dependency from **1.25** to **1.26**.
|
|
27
|
+
- Updated `kramdown-ansi` dependency from **~> 0.6** to **~> 0.7**.
|
|
28
|
+
- Updated `gem_hadar` development dependency from **2.20.1** to **2.21.0**.
|
|
29
|
+
|
|
30
|
+
### Testing
|
|
31
|
+
|
|
32
|
+
- Added specs for `delete_collection` to verify refusal to delete the `default`
|
|
33
|
+
collection, resetting `current_collection` when the active collection is
|
|
34
|
+
deleted, and leaving `current_collection` unchanged for non-active
|
|
35
|
+
collections.
|
|
36
|
+
|
|
37
|
+
### Documentation
|
|
38
|
+
|
|
39
|
+
- Updated YARD documentation for `refresh_system_prompt` to accurately reflect
|
|
40
|
+
the placeholders used (`persona`, `persona_name`, `runtime_info`).
|
|
41
|
+
|
|
3
42
|
## 2026-10-21 v0.0.136
|
|
4
43
|
|
|
5
44
|
### Features
|
data/Rakefile
CHANGED
|
@@ -39,7 +39,7 @@ GemHadar do
|
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
dependency 'excon', '~> 1.0'
|
|
42
|
-
dependency 'ollama-ruby', '~> 1.
|
|
42
|
+
dependency 'ollama-ruby', '~> 1.26'
|
|
43
43
|
dependency 'documentrix', '>= 0.8.0'
|
|
44
44
|
dependency 'unix_socks', '>= 0.4'
|
|
45
45
|
dependency 'rss', '~> 0.3'
|
|
@@ -47,7 +47,7 @@ GemHadar do
|
|
|
47
47
|
dependency 'redis', '~> 5.0'
|
|
48
48
|
dependency 'mime-types', '~> 3.0'
|
|
49
49
|
dependency 'reverse_markdown', '~> 3.0'
|
|
50
|
-
dependency 'kramdown-ansi', '~> 0.
|
|
50
|
+
dependency 'kramdown-ansi', '~> 0.7'
|
|
51
51
|
dependency 'complex_config', '~> 0.22', '>= 0.22.2'
|
|
52
52
|
dependency 'tins', '~> 1.61'
|
|
53
53
|
dependency 'search_ui', '>= 0.2'
|
|
@@ -51,7 +51,8 @@ class OllamaChat::Database::Models::Collection < Sequel::Model(OllamaChat::DB)
|
|
|
51
51
|
#
|
|
52
52
|
# @param chat [OllamaChat::Chat] the chat instance providing the configuration
|
|
53
53
|
def self.sync(chat)
|
|
54
|
-
chat.documents.collections.
|
|
54
|
+
all_collections = (%w[ default ] + chat.documents.collections).to_set
|
|
55
|
+
all_collections.each do |name|
|
|
55
56
|
where(name: name.to_s).first and next
|
|
56
57
|
create(
|
|
57
58
|
name: name.to_s,
|
data/lib/ollama_chat/oc.rb
CHANGED
|
@@ -114,7 +114,7 @@ module OC
|
|
|
114
114
|
|
|
115
115
|
URL = set do
|
|
116
116
|
description 'Ollama base URL to connect to'
|
|
117
|
-
default {
|
|
117
|
+
default { host = OC::OLLAMA::HOST? and Ollama.base_url(host).to_s }
|
|
118
118
|
sensitive true
|
|
119
119
|
decode { URI.parse(_1) if _1.present? }
|
|
120
120
|
check { value.scheme =~ /\Ahttps?\z/ }
|
|
@@ -480,7 +480,6 @@ module OllamaChat::RAGHandling
|
|
|
480
480
|
col&.update(name: new_collection.to_s)
|
|
481
481
|
log(:info, "Collection renamed", data: { old_name: current_collection, new_name: new_collection })
|
|
482
482
|
feedback("Renamed current collection #{current_collection} to #{new_collection}.", type: :info)
|
|
483
|
-
refresh_system_prompt
|
|
484
483
|
rescue Sequel::UniqueConstraintViolation
|
|
485
484
|
feedback("Renaming to #{new_collection} failed, it already exists in database.", type: :warn)
|
|
486
485
|
rescue => e
|
|
@@ -678,7 +677,6 @@ module OllamaChat::RAGHandling
|
|
|
678
677
|
end
|
|
679
678
|
feedback("Created collection '#{name}'.", type: :success)
|
|
680
679
|
log(:info, "Collection created", data: { name:, description:, patterns: })
|
|
681
|
-
refresh_system_prompt
|
|
682
680
|
rescue Sequel::UniqueConstraintViolation
|
|
683
681
|
feedback("Collection #{name.inspect} already exists.", type: :warn)
|
|
684
682
|
rescue Sequel::Error => e
|
|
@@ -737,7 +735,6 @@ module OllamaChat::RAGHandling
|
|
|
737
735
|
end
|
|
738
736
|
feedback("Updated collection '#{col.name}'.", type: :success)
|
|
739
737
|
log(:info, "Collection updated", data: { name: col.name, enabled: col.enabled })
|
|
740
|
-
refresh_system_prompt
|
|
741
738
|
rescue Sequel::Error => e
|
|
742
739
|
feedback("Database error: #{e.message}", type: :warn)
|
|
743
740
|
end
|
|
@@ -761,17 +758,31 @@ module OllamaChat::RAGHandling
|
|
|
761
758
|
next
|
|
762
759
|
end
|
|
763
760
|
|
|
761
|
+
if target_name.to_s == 'default'
|
|
762
|
+
feedback(
|
|
763
|
+
"Cannot delete #{target_name.inspect}: it is the default collection. " \
|
|
764
|
+
'Switch to another collection first.',
|
|
765
|
+
type: :warn
|
|
766
|
+
)
|
|
767
|
+
next
|
|
768
|
+
end
|
|
769
|
+
|
|
770
|
+
destroyed = false
|
|
764
771
|
if confirm?(prompt: "⚠️ Are you sure you want to permanently delete #{target_name.inspect}? (y/n) ", yes: /\Ay/i)
|
|
765
772
|
begin
|
|
766
773
|
col.chat = self
|
|
767
774
|
col.destroy
|
|
775
|
+
destroyed = true
|
|
768
776
|
feedback("Deleted collection #{target_name.inspect}.", type: :success)
|
|
769
777
|
log(:info, "Collection deleted", data: { name: target_name })
|
|
770
|
-
refresh_system_prompt
|
|
771
778
|
rescue Sequel::Error => e
|
|
772
779
|
feedback("Database error: #{e.message}", type: :warn)
|
|
773
780
|
rescue => e
|
|
774
781
|
feedback("Error removing from Documentrix: #{e.message}", type: :warn)
|
|
782
|
+
ensure
|
|
783
|
+
if destroyed && session.current_collection == target_name
|
|
784
|
+
session.update(current_collection: 'default')
|
|
785
|
+
end
|
|
775
786
|
end
|
|
776
787
|
else
|
|
777
788
|
feedback("Deletion denied.", type: :denied)
|
|
@@ -42,11 +42,11 @@ module OllamaChat::SystemPromptManagement
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
# Re-interpolates the current system prompt with fresh dynamic values
|
|
45
|
-
# (persona content,
|
|
45
|
+
# (persona content, persona name, runtime info).
|
|
46
46
|
#
|
|
47
47
|
# Call this after any operation that mutates the sources baked into
|
|
48
|
-
# the system prompt, such as
|
|
49
|
-
#
|
|
48
|
+
# the system prompt, such as switching personas or toggling runtime
|
|
49
|
+
# info.
|
|
50
50
|
#
|
|
51
51
|
# Safe to call when no system prompt is set; returns immediately.
|
|
52
52
|
def refresh_system_prompt
|
data/lib/ollama_chat/version.rb
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# by hand; it is rewritten on every `rake version` invocation.
|
|
6
6
|
module OllamaChat
|
|
7
7
|
# The current version of the OllamaChat gem as a String.
|
|
8
|
-
VERSION = '0.0.
|
|
8
|
+
VERSION = '0.0.137'
|
|
9
9
|
VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
|
|
10
10
|
VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
|
|
11
11
|
VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
|
data/ollama_chat.gemspec
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: ollama_chat 0.0.
|
|
2
|
+
# stub: ollama_chat 0.0.137 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "ollama_chat".freeze
|
|
6
|
-
s.version = "0.0.
|
|
6
|
+
s.version = "0.0.137".freeze
|
|
7
7
|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
9
9
|
s.require_paths = ["lib".freeze]
|
|
@@ -18,13 +18,13 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.licenses = ["MIT".freeze]
|
|
19
19
|
s.rdoc_options = ["--title".freeze, "OllamaChat - A command-line interface (CLI) for interacting with an Ollama AI model.".freeze, "--main".freeze, "README.md".freeze]
|
|
20
20
|
s.required_ruby_version = Gem::Requirement.new(">= 3.2".freeze)
|
|
21
|
-
s.rubygems_version = "4.0.
|
|
21
|
+
s.rubygems_version = "4.0.23".freeze
|
|
22
22
|
s.summary = "A command-line interface (CLI) for interacting with an Ollama AI model.".freeze
|
|
23
23
|
s.test_files = ["spec/assets/example.rb".freeze, "spec/ollama_chat/asr_spec.rb".freeze, "spec/ollama_chat/chat_spec.rb".freeze, "spec/ollama_chat/clipboard_spec.rb".freeze, "spec/ollama_chat/collection_search_spec.rb".freeze, "spec/ollama_chat/command_concern_spec.rb".freeze, "spec/ollama_chat/commands_spec.rb".freeze, "spec/ollama_chat/compaction_spec.rb".freeze, "spec/ollama_chat/config_handling_spec.rb".freeze, "spec/ollama_chat/context_usage_spec.rb".freeze, "spec/ollama_chat/conversation_spec.rb".freeze, "spec/ollama_chat/database/models/favourite_spec.rb".freeze, "spec/ollama_chat/favourites_management_spec.rb".freeze, "spec/ollama_chat/file_editing_spec.rb".freeze, "spec/ollama_chat/follow_chat_spec.rb".freeze, "spec/ollama_chat/history_spec.rb".freeze, "spec/ollama_chat/http_handling_spec.rb".freeze, "spec/ollama_chat/information_spec.rb".freeze, "spec/ollama_chat/input_content_spec.rb".freeze, "spec/ollama_chat/invidious_spec.rb".freeze, "spec/ollama_chat/kramdown_ansi_spec.rb".freeze, "spec/ollama_chat/message_editing_spec.rb".freeze, "spec/ollama_chat/message_list_spec.rb".freeze, "spec/ollama_chat/message_output_spec.rb".freeze, "spec/ollama_chat/message_spec.rb".freeze, "spec/ollama_chat/model_handling/model_cache_spec.rb".freeze, "spec/ollama_chat/model_handling_spec.rb".freeze, "spec/ollama_chat/parsing_spec.rb".freeze, "spec/ollama_chat/personae_management_spec.rb".freeze, "spec/ollama_chat/prompt_handling_spec.rb".freeze, "spec/ollama_chat/prompt_management_spec.rb".freeze, "spec/ollama_chat/rag_handling_spec.rb".freeze, "spec/ollama_chat/redis_cache_spec.rb".freeze, "spec/ollama_chat/server_socket_spec.rb".freeze, "spec/ollama_chat/session_management_spec.rb".freeze, "spec/ollama_chat/source_fetching_spec.rb".freeze, "spec/ollama_chat/speaker_spec.rb".freeze, "spec/ollama_chat/state_selectors_spec.rb".freeze, "spec/ollama_chat/switches_spec.rb".freeze, "spec/ollama_chat/system_prompt_management_spec.rb".freeze, "spec/ollama_chat/think_control_spec.rb".freeze, "spec/ollama_chat/token_estimator_spec.rb".freeze, "spec/ollama_chat/tool_call_processor_spec.rb".freeze, "spec/ollama_chat/tool_calling_spec.rb".freeze, "spec/ollama_chat/tools/browse_spec.rb".freeze, "spec/ollama_chat/tools/compute_bmi_spec.rb".freeze, "spec/ollama_chat/tools/concern_spec.rb".freeze, "spec/ollama_chat/tools/copy_to_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/delete_file_spec.rb".freeze, "spec/ollama_chat/tools/execute_grep_spec.rb".freeze, "spec/ollama_chat/tools/execute_jira_twg_spec.rb".freeze, "spec/ollama_chat/tools/execute_ri_spec.rb".freeze, "spec/ollama_chat/tools/execute_shell_spec.rb".freeze, "spec/ollama_chat/tools/forget_spec.rb".freeze, "spec/ollama_chat/tools/generate_image_spec.rb".freeze, "spec/ollama_chat/tools/generate_password_spec.rb".freeze, "spec/ollama_chat/tools/get_current_weather_spec.rb".freeze, "spec/ollama_chat/tools/get_cve_spec.rb".freeze, "spec/ollama_chat/tools/get_endoflife_spec.rb".freeze, "spec/ollama_chat/tools/get_ghr_spec.rb".freeze, "spec/ollama_chat/tools/get_jira_issue_spec.rb".freeze, "spec/ollama_chat/tools/get_location_spec.rb".freeze, "spec/ollama_chat/tools/get_rfc_spec.rb".freeze, "spec/ollama_chat/tools/get_time_spec.rb".freeze, "spec/ollama_chat/tools/get_url_spec.rb".freeze, "spec/ollama_chat/tools/list_directory_spec.rb".freeze, "spec/ollama_chat/tools/lookup_gem_path_spec.rb".freeze, "spec/ollama_chat/tools/lookup_group_spec.rb".freeze, "spec/ollama_chat/tools/memorize_spec.rb".freeze, "spec/ollama_chat/tools/move_file_spec.rb".freeze, "spec/ollama_chat/tools/open_file_in_editor_spec.rb".freeze, "spec/ollama_chat/tools/paste_from_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/paste_into_editor_spec.rb".freeze, "spec/ollama_chat/tools/patch_file_spec.rb".freeze, "spec/ollama_chat/tools/read_file_spec.rb".freeze, "spec/ollama_chat/tools/resolve_tag_spec.rb".freeze, "spec/ollama_chat/tools/roll_dice_spec.rb".freeze, "spec/ollama_chat/tools/run_tests_spec.rb".freeze, "spec/ollama_chat/tools/search_knowledge_spec.rb".freeze, "spec/ollama_chat/tools/search_web_spec.rb".freeze, "spec/ollama_chat/tools/write_file_spec.rb".freeze, "spec/ollama_chat/tts_spec.rb".freeze, "spec/ollama_chat/utils/analyze_directory_spec.rb".freeze, "spec/ollama_chat/utils/audio_player_spec.rb".freeze, "spec/ollama_chat/utils/cache_fetcher_spec.rb".freeze, "spec/ollama_chat/utils/excon_logger_spec.rb".freeze, "spec/ollama_chat/utils/fetcher_spec.rb".freeze, "spec/ollama_chat/utils/log_rotation_spec.rb".freeze, "spec/ollama_chat/utils/log_viewer_spec.rb".freeze, "spec/ollama_chat/utils/ordered_queue_spec.rb".freeze, "spec/ollama_chat/utils/path_completer_spec.rb".freeze, "spec/ollama_chat/utils/png_metadata_extractor_spec.rb".freeze, "spec/ollama_chat/vim_spec.rb".freeze, "spec/ollama_chat/web_searching_spec.rb".freeze, "spec/spec_helper.rb".freeze]
|
|
24
24
|
|
|
25
25
|
s.specification_version = 4
|
|
26
26
|
|
|
27
|
-
s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.
|
|
27
|
+
s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.21.0".freeze])
|
|
28
28
|
s.add_development_dependency(%q<all_images>.freeze, ["~> 0.12".freeze])
|
|
29
29
|
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.2".freeze])
|
|
30
30
|
s.add_development_dependency(%q<kramdown>.freeze, ["~> 2.0".freeze])
|
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
|
|
|
33
33
|
s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
|
|
34
34
|
s.add_development_dependency(%q<utils>.freeze, [">= 0".freeze])
|
|
35
35
|
s.add_runtime_dependency(%q<excon>.freeze, ["~> 1.0".freeze])
|
|
36
|
-
s.add_runtime_dependency(%q<ollama-ruby>.freeze, ["~> 1.
|
|
36
|
+
s.add_runtime_dependency(%q<ollama-ruby>.freeze, ["~> 1.26".freeze])
|
|
37
37
|
s.add_runtime_dependency(%q<documentrix>.freeze, [">= 0.8.0".freeze])
|
|
38
38
|
s.add_runtime_dependency(%q<unix_socks>.freeze, [">= 0.4".freeze])
|
|
39
39
|
s.add_runtime_dependency(%q<rss>.freeze, ["~> 0.3".freeze])
|
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
|
|
|
41
41
|
s.add_runtime_dependency(%q<redis>.freeze, ["~> 5.0".freeze])
|
|
42
42
|
s.add_runtime_dependency(%q<mime-types>.freeze, ["~> 3.0".freeze])
|
|
43
43
|
s.add_runtime_dependency(%q<reverse_markdown>.freeze, ["~> 3.0".freeze])
|
|
44
|
-
s.add_runtime_dependency(%q<kramdown-ansi>.freeze, ["~> 0.
|
|
44
|
+
s.add_runtime_dependency(%q<kramdown-ansi>.freeze, ["~> 0.7".freeze])
|
|
45
45
|
s.add_runtime_dependency(%q<complex_config>.freeze, ["~> 0.22".freeze, ">= 0.22.2".freeze])
|
|
46
46
|
s.add_runtime_dependency(%q<tins>.freeze, ["~> 1.61".freeze])
|
|
47
47
|
s.add_runtime_dependency(%q<search_ui>.freeze, [">= 0.2".freeze])
|
|
@@ -647,6 +647,16 @@ describe OllamaChat::RAGHandling do
|
|
|
647
647
|
chat.delete_collection
|
|
648
648
|
end
|
|
649
649
|
|
|
650
|
+
it 'refuses to delete the default collection' do
|
|
651
|
+
expect(chat).to receive(:choose_entry).
|
|
652
|
+
and_return('default', '[CANCEL]')
|
|
653
|
+
expect(chat).to receive(:feedback).
|
|
654
|
+
with(a_string_including('it is the default collection'), type: :warn)
|
|
655
|
+
expect(chat).not_to receive(:confirm?)
|
|
656
|
+
|
|
657
|
+
expect { chat.delete_collection }.not_to change { col_model.count }
|
|
658
|
+
end
|
|
659
|
+
|
|
650
660
|
it 'deletes the collection when confirmed' do
|
|
651
661
|
col_model.create(name: 'del', description: 'd', patterns: [])
|
|
652
662
|
expect(chat).to receive(:choose_entry).and_return('del', '[CANCEL]')
|
|
@@ -672,6 +682,54 @@ describe OllamaChat::RAGHandling do
|
|
|
672
682
|
expect { chat.delete_collection }
|
|
673
683
|
.not_to change { col_model.count }
|
|
674
684
|
end
|
|
685
|
+
|
|
686
|
+
context 'when the deleted collection is the active one' do
|
|
687
|
+
let :session do
|
|
688
|
+
double('Session')
|
|
689
|
+
end
|
|
690
|
+
|
|
691
|
+
before do
|
|
692
|
+
chat.instance_variable_set(:@session, session)
|
|
693
|
+
end
|
|
694
|
+
|
|
695
|
+
it 'resets current_collection to default' do
|
|
696
|
+
col_model.create(name: 'active', description: 'd', patterns: [])
|
|
697
|
+
expect(chat).to receive(:choose_entry).
|
|
698
|
+
and_return('active', '[CANCEL]')
|
|
699
|
+
expect(chat).to receive(:confirm?).and_return(true)
|
|
700
|
+
|
|
701
|
+
# after_destroy → switch_collection + documents.clear
|
|
702
|
+
expect(docs).to receive(:collection).and_return('default')
|
|
703
|
+
expect(docs).to receive(:collection=).with('active')
|
|
704
|
+
expect(docs).to receive(:clear)
|
|
705
|
+
expect(docs).to receive(:collection=).with('default')
|
|
706
|
+
|
|
707
|
+
# ensure → deleted collection was current, so reset to default
|
|
708
|
+
expect(session).to receive(:current_collection).and_return('active')
|
|
709
|
+
expect(session).to receive(:update).with(current_collection: 'default')
|
|
710
|
+
|
|
711
|
+
expect { chat.delete_collection }
|
|
712
|
+
.to change { col_model.count }.by(-1)
|
|
713
|
+
end
|
|
714
|
+
|
|
715
|
+
it 'leaves current_collection alone for a non-active collection' do
|
|
716
|
+
col_model.create(name: 'side', description: 'd', patterns: [])
|
|
717
|
+
expect(chat).to receive(:choose_entry).
|
|
718
|
+
and_return('side', '[CANCEL]')
|
|
719
|
+
expect(chat).to receive(:confirm?).and_return(true)
|
|
720
|
+
|
|
721
|
+
expect(docs).to receive(:collection).and_return('default')
|
|
722
|
+
expect(docs).to receive(:collection=).with('side')
|
|
723
|
+
expect(docs).to receive(:clear)
|
|
724
|
+
expect(docs).to receive(:collection=).with('default')
|
|
725
|
+
|
|
726
|
+
expect(session).to receive(:current_collection).and_return('default')
|
|
727
|
+
expect(session).not_to receive(:update)
|
|
728
|
+
|
|
729
|
+
expect { chat.delete_collection }
|
|
730
|
+
.to change { col_model.count }.by(-1)
|
|
731
|
+
end
|
|
732
|
+
end
|
|
675
733
|
end
|
|
676
734
|
|
|
677
735
|
describe '#create_memory_collection' do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ollama_chat
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.137
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florian Frank
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 2.
|
|
18
|
+
version: 2.21.0
|
|
19
19
|
type: :development
|
|
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: 2.
|
|
25
|
+
version: 2.21.0
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: all_images
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -141,14 +141,14 @@ dependencies:
|
|
|
141
141
|
requirements:
|
|
142
142
|
- - "~>"
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '1.
|
|
144
|
+
version: '1.26'
|
|
145
145
|
type: :runtime
|
|
146
146
|
prerelease: false
|
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
148
|
requirements:
|
|
149
149
|
- - "~>"
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: '1.
|
|
151
|
+
version: '1.26'
|
|
152
152
|
- !ruby/object:Gem::Dependency
|
|
153
153
|
name: documentrix
|
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -253,14 +253,14 @@ dependencies:
|
|
|
253
253
|
requirements:
|
|
254
254
|
- - "~>"
|
|
255
255
|
- !ruby/object:Gem::Version
|
|
256
|
-
version: '0.
|
|
256
|
+
version: '0.7'
|
|
257
257
|
type: :runtime
|
|
258
258
|
prerelease: false
|
|
259
259
|
version_requirements: !ruby/object:Gem::Requirement
|
|
260
260
|
requirements:
|
|
261
261
|
- - "~>"
|
|
262
262
|
- !ruby/object:Gem::Version
|
|
263
|
-
version: '0.
|
|
263
|
+
version: '0.7'
|
|
264
264
|
- !ruby/object:Gem::Dependency
|
|
265
265
|
name: complex_config
|
|
266
266
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -920,7 +920,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
920
920
|
- !ruby/object:Gem::Version
|
|
921
921
|
version: '0'
|
|
922
922
|
requirements: []
|
|
923
|
-
rubygems_version: 4.0.
|
|
923
|
+
rubygems_version: 4.0.23
|
|
924
924
|
specification_version: 4
|
|
925
925
|
summary: A command-line interface (CLI) for interacting with an Ollama AI model.
|
|
926
926
|
test_files:
|