Skip to content

Add Gradio-based Control Panel with Secure Learning and SDR Memory System#19

Open
MASSIVEMAGNETICS wants to merge 1 commit into
mainfrom
victor-gui-control-panel-14127787931182039170
Open

Add Gradio-based Control Panel with Secure Learning and SDR Memory System#19
MASSIVEMAGNETICS wants to merge 1 commit into
mainfrom
victor-gui-control-panel-14127787931182039170

Conversation

@MASSIVEMAGNETICS

Copy link
Copy Markdown
Owner

Built the initial GUI for Victor out using Gradio, ensuring a strong modular design where the frontend interacts strictly through an adapter VictorEngine. The backend now actively logs interactions to a simulated "SDR Memory" system (memory_store.jsonl), captures potential learning scenarios using a LearningQueue, and offers a safe way to review system behavior through an approval ledger before making alterations. The system also supports "Dream Cycles" designed to compress data periodically and reinforce agent behavior goals. All instructions and launch scripts are geared toward absolute beginners, ensuring automated setups across Win/Mac/Linux setups.


PR created automatically by Jules for task 14127787931182039170 started by @MASSIVEMAGNETICS

…ycles

- Added Gradio-based web GUI to `Victor_GUI/app.py`.
- Designed `VictorEngine` to encapsulate logic and provide simple API access for the interface.
- Created `ModelAdapter` to intercept calls from the UI, providing dummy intent/emotion fallback for demo purposes while retaining architecture for real models.
- Set up SDR memory in `memory/sdr_memory.py` using `.jsonl` appends to store interactions continuously.
- Implemented REM Dream Cycle in `memory/dream_cycle.py` to compress interactions and reinforce core agent directives.
- Implemented secure queue-based training logic inside `training/learning_queue.py` and `training/auto_train.py` which proposes modifications for human approval instead of immediate core rewrites.
- Wrote easy-to-use launch scripts (`launch_windows.bat`, `launch_linux_mac.sh`), added dependencies to a dedicated `requirements.txt`, and documented usage cleanly in a `README.md`.

Co-authored-by: MASSIVEMAGNETICS <209589629+MASSIVEMAGNETICS@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cefe05168c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Victor_GUI/app.py
test_btn.click(fn=run_self_test, inputs=None, outputs=test_output)

if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Bind the Gradio server to localhost by default

Launching with server_name="0.0.0.0" exposes the control panel on every network interface, so anyone on the same network/host namespace can access chat, memory, and training controls without additional protection. In environments where this app runs on a shared machine or VM, this is a security regression compared to a localhost-only default and should be restricted (or explicitly gated behind auth/config).

Useful? React with 👍 / 👎.

@@ -0,0 +1,67 @@
import os
import sys
import torch

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Move torch import behind mock/fallback initialization

Importing torch at module import time crashes startup with ModuleNotFoundError before the existing HAS_MODEL fallback can run, so the GUI cannot boot in mock mode on systems without torch. This defeats the adapter’s graceful-degradation path and blocks the app for users who should still be able to run the non-model features.

Useful? React with 👍 / 👎.

"compressed": True,
"pattern_found": dominant_intent
}
compressed_records.append(reinforcement)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid appending a new reinforcement memory every REM run

Each dream cycle unconditionally appends a fresh identity_reinforcement record, even when all existing memories are already compressed, so repeated REM runs grow the store instead of compressing it. This can steadily bloat memory_store.jsonl and make the "compressed X down to Y" result misleading when users trigger maintenance cycles multiple times.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant