Skip to content

Instantly share code, notes, and snippets.

# Upstream Sync Strategy: Moving to a High-Cadence Rebase Workflow
## Goal
Shorten the time between an upstream release and our own release by moving
from "merge upstream into develop, fix issues, release quarterly" to a
high-cadence (weekly) sync process, automated where possible with a human
in the loop for safety, backed by automated E2E tests to catch regressions
introduced by unreleased upstream code.
@rgruesbeck
rgruesbeck / APPEND_SYSTEM.md
Last active July 13, 2026 17:19
pi-agent codebase research enhancements

Code, JSON & Git Investigation Toolkit

Fast CLIs for searching code, exploring JSON, and mining git history. Structural search, rewrites, and symbol navigation are not here — they live in pi-lens (ast_grep_search / ast_grep_replace / lsp_navigation tools, plus the ast-grep / lsp-navigation skills). This file documents what pi-lens doesn't wrap.

Search policy — route every search to the right tool

  • Text / regexrg via bash (not the built-in grep tool). -uu includes gitignored/hidden files.
  • File by namefd via bash (not the built-in find tool).
  • Definitions / references / types ("who calls X", "where is X defined") → the lsp_navigation tool — semantic, resolves symbols across files. Use first for symbol questions.
  • Structural code patterns (a call, import, or declaration by syntax) → the ast_grep_search tool; ast_grep_replace for rewrites.
@rgruesbeck
rgruesbeck / AGENTS.md
Created July 8, 2026 15:35
local llm openspec workflow
...

block, leave it in place alongside this one.

// Matrix with a strided array
class Matrix {
constructor (rows, cols) {
this.rows = rows;
this.cols = cols;
this.data = Array(rows * cols).fill(null);
}
get(x, y) {
const app = document.getElementById("app")
const render = (root) => {
let nodes = []
return function(strings, ...expressions) {
if (root.childElementCount > 0 && nodes.length > 0 && nodes.length === expressions.length) {
// update nodes in list with matching expressions
nodes.forEach((node, idx) => {
# Loan Calc
principle, interestRate, loanLength
principle * (interestRate / (1 - (1 + interestRate) ** -loanLength))
Loan Amount, Monthly Interest Rate (1% = 0.01), Loan Length in Months
Per Month

Permissions Table (mnt Smart)

Name type:web type:privileged type:certified
geolocation ! ! !
geolocation-noprompt
mmi-test
camera !
alarms
tcp-socket
udp-socket
@rgruesbeck
rgruesbeck / localStorage.js
Created September 27, 2019 02:49
localStorage wrapper for KaiOS
class Storage {
constructor(name) {
this.name = name;
this.read();
}
// return data
list() {
return this.read();
}
@rgruesbeck
rgruesbeck / van-lyfe-wifi.md
Created August 1, 2019 01:56
van lyfe wifi
@rgruesbeck
rgruesbeck / record.md
Last active July 23, 2019 23:31
record screen
  1. record with simplescreenrecorder to mkv
  2. make frames:
mkdir frames
ffmpeg -i input -vf scale=320:-1:flags=lanczos,fps=10 frames/ffout%03d.png
  1. convert to gif
convert -loop 0 frames/ffout*.png output.gif