Skip to content

Instantly share code, notes, and snippets.

View gterzian's full-sized avatar

Gregory Terzian gterzian

View GitHub Profile

Idea to integrate AI functionality into Robrix.

Iterate along the below lines:

  1. Integrate with local/remote AI endpoint(Moly, Ollama, other?)
  • Goal: get a basic answer to a chat.
  • Privat chat with AI(separate from the matrix chat stuff).
  1. Add basic tooling to AI integration
  • Goal: one basic AI action, like "close app", which results in closing the app.
  • Action are taken based in conversational interaction with AI in private chat

This file contains most of the chat history.

I want you to clean it up so that the most interesting parts remain(in terms of showing the evolution of this project):

  • Remove all of your comments where you only stated what task you performed.
  • Remove all terminal commands and other actions your performed.
  • Keep only your answers related to TLA+
  • Break it up in sections, where the title summarizes what happened.
  • Debug sessions where I keep telling you that something is wrong with the UI and attach screenshots can be summarized
  • Don't summarize everything; for the intersting stuff: quote it as such, including your replies(on the TLA+ for example)

So the spec cancels a navigation by changing the ongoing-navigation, which is an ID set on the "navigable", and checked towards the end of a navigation, as part of updating the session history entry.

So it's hard to see how such a setup would fit into Servo's implementation, because the way the spec works is that it queues a task back on the "navigable's active window" to do that last step of the navigation, and then it loads a document.

So at the point of loading a document, the spec is on the event-loop of the window of the document which was navigated; but in Servo at that point we may actually be on the event-loop for the document which is the result of the navigation. So that makes it hard to ch

@gterzian
gterzian / run_demo.md
Last active September 21, 2025 09:43
  1. Intall Ollama
  2. In Ollama, download the 4B and 1B gemma3 models at https://ollama.com/library/gemma3.
  3. git clone https://github.com/gterzian/servo
  4. From the directory into which you did the above git clone: git checkout servo_conversational
  5. Build Servo (see Mac Os instructions)
  6. Run servo: ./mach run.

Note: Mac OS only.

<!DOCTYPE html><html lang=\"en\"><head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  \n  <title>Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.</title>\n  <meta property=\"og:title\" content=\"Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.\">\n  \n\n  \n  <meta name=\"description\" content=\"Servo is a web rendering engine written in Rust, with WebGL and WebGPU support, and adaptable to desktop, mobile, and embedded applications.\">\n  <meta property=\"og:description\" content=\"Servo is a web rendering engine written in Rust, with WebGL and WebGPU support, and adaptable to desktop, mobile, and embedded applications.\">\n  \n  <meta name=\"keywords\" content=\"servo, servo engine, servo rendering engine, web engine, web rendering engine, web browser, web browser engine, rust\">\n 

Given a user input, try to predict a browser action.

Available browser actions are:

  • Navigate
    • To invoke it, return a JSON object in the following format:
      { action: String, value: [String] }

    • Here is one example:

Given a user input, try to predict one or several web pages to navigate to, based on user wishes implied by the input, and using the below history of navigations, as well as your own knowledge of top global sites.

[ { name: "github", url: "https://github.com", }, { name: "guardian", url: "https://theguardian.com", }, ]

Return a JSON list of urls, nothing else.

  1. Please show me a list of files that are screenshots, from a folder I can select.
  2. Please review your code in the light of the guidelines, and fix it if necessary.
  3. Now only show me a total for the size of all files previously found.
----------------------------- MODULE ImageEpoch -----------------------------
EXTENDS FiniteSets, Integers
CONSTANT N
VARIABLES image, display_list, state, submitted
-----------------------------------------------------------------------------
Epoch == 0..N
None == N+1
TypeOk == /\ image \in {None} \cup Epoch

How to install and run an mini-app in Servo: Proof of Concept

Storage

  • Embedder use the filesystem as a cache for assets
  • Manifests also stored on the filesystem, but loaded in memory on start-up.

Registration

  • Mini-app registered with the embedder: store manifest and assets.