Class: Llmemory::Dashboard::MaintenanceController

Inherits:
ApplicationController show all
Defined in:
app/controllers/llmemory/dashboard/maintenance_controller.rb

Overview

Cognitive maintenance surface (SF20): trigger a maintenance pass and review mined-skill proposals before registering them (human-in-the-loop).

Instance Method Summary collapse

Instance Method Details

#mineObject

Mines skills WITHOUT registering — returns proposals for review.



31
32
33
34
35
36
37
38
39
40
41
# File 'app/controllers/llmemory/dashboard/maintenance_controller.rb', line 31

def mine
  user_id = params[:user_id]
  window = (params[:window].presence || 20).to_i
  proposals = Llmemory::SkillMining::Miner.new(
    episodic: episodic_memory(user_id), procedural: procedural_memory(user_id)
  ).mine(window: window, auto_register: false)
  store_proposals(proposals)
  redirect_to user_maintenance_path(user_id), notice: "Mined #{proposals.size} skill proposal(s) for review."
rescue Llmemory::LLMError => e
  redirect_to user_maintenance_path(user_id), alert: "Skill mining failed: #{e.message}"
end

#registerObject

Registers a single reviewed proposal into procedural memory.



44
45
46
47
48
49
50
51
52
# File 'app/controllers/llmemory/dashboard/maintenance_controller.rb', line 44

def register
  user_id = params[:user_id]
  procedural_memory(user_id).register_skill(
    name: params[:name], body: params[:body], description: params[:description].presence,
    kind: params[:kind].presence || Llmemory::LongTerm::Procedural::Skill::DEFAULT_KIND,
    provenance: Llmemory::Provenance.build(method: "skill_mining")
  )
  redirect_to user_maintenance_path(user_id), notice: "Registered skill #{params[:name]}."
end

#runObject

Runs the full cognitive pass (reflect -> mine -> expire) and reports.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/llmemory/dashboard/maintenance_controller.rb', line 14

def run
  user_id = params[:user_id]
  window = (params[:window].presence || 10).to_i
  report = Llmemory::Maintenance::CognitivePass.run!(
    user_id,
    episodic: episodic_memory(user_id),
    procedural: procedural_memory(user_id),
    semantic: build_semantic_memory(user_id),
    mine_skills: params[:mine_skills].present?,
    reflection_window: window
  )
  redirect_to user_maintenance_path(user_id), notice: pass_notice(report)
rescue Llmemory::LLMError => e
  redirect_to user_maintenance_path(user_id), alert: "Maintenance pass failed: #{e.message}"
end

#showObject



6
7
8
9
10
11
# File 'app/controllers/llmemory/dashboard/maintenance_controller.rb', line 6

def show
  @user_id = params[:user_id]
  @window = (params[:window].presence || 10).to_i
  @recent_episodes = episodic_storage.list_episodes(@user_id, limit: @window)
  @proposals = session_proposals
end