Reviewing agent-generated code with an independent second model in VS Code
▲ 6 r/vscode

Reviewing agent-generated code with an independent second model in VS Code

Coding agents have changed how I use VS Code. More of the implementation happens in an agent, and when it finishes I spend more of my time in Source Control reviewing the resulting diff.

One workflow I've found useful is to review the whole change with a different model from the one that implemented it.

I built a small VS Code extension called AI Badger to make that easier.

From the Source Control view, AI Badger: Copy All Changes for Review packages the current git changes, including staged and unstaged changes, additions, deletions, and bounded file context, into a structured review prompt.

Then you just paste it into ChatGPT, Claude, Grok, or another AI chat and ask for an independent review.

The basic workflow is:

  1. Agent finishes implementing a change.
  2. Open Source Control in VS Code.
  3. Click Copy All Changes for Review.
  4. Paste into a different AI model.
  5. If the reviewer needs an unchanged supporting file, use Copy File for AI from Explorer.

Nothing is uploaded automatically. AI Badger is local-first and clipboard-based, so you decide exactly what leaves the machine and which model receives it.

For more complicated reviews, there is also an optional CLI workflow where the reviewer can request specific missing repository context, but the normal VS Code workflow does not require the CLI.

VS Code Marketplace:
https://marketplace.visualstudio.com/items?itemName=pvrlabs.ai-badger

Live interactive demo:
https://pvrlabs.xyz/aibadger/vscode-demo.html

Full workflow article:
https://pvrlabs.xyz/articles/reviewing-ai-generated-code-vscode-aibadger.html

I'm curious how other people are handling this now. When an agent changes several files, are you mostly reviewing the diff manually, asking the same agent to review itself, or handing the change to a second model?

u/fykup — 2 days ago
▲ 7 r/VPS

I built a lightweight self-hosted monitoring dashboard for small VPS deployments

StatLite showing application metrics and host CPU, memory, and disk usage

I run Spring Boot applications on small VPS instances and wanted basic monitoring without adding a full Prometheus/Grafana stack or sending telemetry to a hosted service.

So I built StatLite, a lightweight self-hosted dashboard that monitors host resources and Spring Boot Actuator metrics.

Current setup is intentionally pretty boring:

  • single Go binary
  • tracks host CPU, memory, and disk usage alongside application metrics
  • SQLite storage
  • roughly 10-15 MiB idle RSS in my testing
  • no external database
  • no telemetry service or account
  • metrics stay on the VPS
  • easy to move to another provider with the rest of the deployment

Right now the main integration is Spring Boot Actuator, so if an application already exposes Actuator metrics, StatLite can poll them without adding an agent or changing application code.

The goal isn't to compete with Prometheus, Grafana, Datadog, etc. Those are much more capable. I'm interested in the smaller case where you have one or a few VPS nodes and mostly want to know: is the app healthy, what is CPU/memory doing, are requests/errors increasing, and what happened over the last few hours or days?

I'm curious how people here handle this today.

For people running self-managed VPS instances, would something like this be useful? And outside Spring Boot, what applications or runtimes would you most want a lightweight dashboard like this to recognize out of the box?

GitHub: https://github.com/PVRLabs/statlite

reddit.com
u/fykup — 3 days ago
▲ 18 r/java

Monitoring Spring Boot Actuator on low-resource VPS nodes without running a second JVM

When running small Spring Boot applications on 1-2 GB VPS instances, a full observability stack can be a significant amount of additional infrastructure for what may be a fairly simple deployment.

Over the past few weeks, I've been looking at how to keep operational visibility lightweight when polling standard Spring Boot Actuator endpoints. A few trade-offs stood out:

  • Bound the data you ingest. Even a lightweight collector should not assume every management endpoint will always return a small response. I ended up putting an explicit 1 MiB limit on Actuator responses and collecting a focused set of metrics, such as JVM memory, threads, HTTP errors, health, and restarts.
  • Polling frequency matters. A 30-second default gives reasonably responsive health and JVM trends for small deployments without constantly polling the application. For more resource-conscious production setups, slower intervals are usually perfectly reasonable.
  • The monitoring process has a footprint too. On a 1-2 GB server, I would rather not dedicate another JVM or several monitoring services to basic operational visibility. StatLite typically stays under roughly 15-20 MB of memory, while using local SQLite for recent history.

I built a small open-source implementation of this approach called StatLite.

StatLite dashboard in action

It runs as a single Go binary or Docker container, reads standard Spring Boot Actuator endpoints, stores recent history in SQLite, and serves a self-contained dashboard.

The latest release also adds multi-platform Docker images, bundles all dashboard assets locally for offline and air-gapped use, bounds historical queries and Actuator responses, and pauses browser refresh when the tab is hidden.

GitHub:
https://github.com/PVRLabs/statlite

Technical write-up:
https://pvrlabs.xyz/articles/lightweight-spring-boot-monitoring.html

I'm curious how others handle observability for small or single-node Spring Boot deployments. Do you use a full Prometheus/Grafana or APM setup, Spring Boot Admin, custom scripts, or something lighter?

I'm also considering making StatLite useful beyond Spring Boot by providing a small generic Java metrics exporter for regular Java web applications. It would expose a focused set of JVM and application metrics that StatLite could consume without requiring Spring Boot Actuator. Would that be useful, or is Spring Boot coverage enough for the kinds of deployments where a tool like this makes sense?

reddit.com
u/fykup — 8 days ago

Successful build logs are context pollution. I built CLI filters that cut some agent-visible output by 99%+

One thing I keep seeing in agentic coding is that the model gets fed a lot of output that is technically correct but not very useful.

A successful Maven build can print hundreds of lines. Same with npm tests. For an agent, the useful result is often just:

PASS · 11.8 s

So I built a few small deterministic CLI tools around a simple rule:

Success should consume almost no context. Failure should preserve enough evidence to act without forcing a rerun.

The main tools:

  • mvn-lite: compact Maven builds and tests
  • npm-lite: compact selected npm verification/test workflows
  • repo-map: machine-local repo and tool discovery
  • html-screenshot: one-shot Chrome screenshots
  • launch-browser: reusable Chrome DevTools sessions

A few measured success-path reductions:

  • Spring Maven: 5,564 bytes / 70 lines → 16 bytes / 1 line
  • Scriptella Maven: 66,812 bytes / 928 lines → 17 bytes / 1 line
  • npm + Vitest: 2,260 bytes / 43 lines → 25 bytes / 1 line
  • npm + Tape: 136,262 bytes / 1,476 lines → 12 bytes / 1 line
  • npm + Jest: 2,491 bytes / 68 lines → 24 bytes / 1 line

The failure path is more interesting.

If you compress failures too hard, the agent often reruns the command just to see what broke, which defeats the purpose.

So failures keep the full raw log locally. Short failures are printed in full, while long ones get bounded, marker-aware diagnostics. The goal is not “minimum bytes at all costs”. It is minimum context required for the next useful action.

repo-map tackles a different kind of context waste. Instead of hardcoding machine-specific paths into every AGENTS.md, related repos can use stable aliases:

repo-map get orders-api

A frontend can resolve its backend, the backend can resolve the frontend, and shared helpers like mvn-lite, npm-lite, and html-screenshot can be discovered without repeating tool paths in every repo.

Everything is Bash, local-only, deterministic, with no LLM calls, API keys, telemetry, or background service.

Sometimes context engineering is simply not putting irrelevant data into the context window in the first place.

Repo: github.com/ejboy/agent-scripts

Curious how others here handle command-output policy for agents.

u/fykup — 9 days ago

StatLite v0.2.2: Docker image and host metrics for lightweight Spring Boot monitoring

I shared StatLite here a few weeks ago. Since then, v0.2.2 has added a published Docker image and native host metrics, so I wanted to share the updated version.

StatLite is a lightweight monitoring dashboard for small Spring Boot deployments. It runs as a single Go binary or Docker container, reads standard Spring Boot Actuator endpoints, and stores recent history locally in SQLite.

What’s new in v0.2.2:

  • Docker image: Try or deploy StatLite without installing the binary
  • Native host metrics: Track CPU, memory, and disk usage alongside application metrics
  • Self-monitoring demo: The default Docker setup starts by monitoring StatLite itself
  • No StatLite agent or application library: It reads standard Actuator health and metrics endpoints

You can try it with:

docker run --rm -p 127.0.0.1:9090:9090 ghcr.io/pvrlabs/statlite:latest

Then open:

http://127.0.0.1:9090

StatLite is intended for one or a few applications on a small VPS or single server, where Prometheus, Grafana, and Node Exporter may be more infrastructure than the deployment needs.

It provides visibility into application availability, JVM memory, HTTP errors, restarts, and host resource usage.

It is not intended to replace a full observability stack for Kubernetes, distributed tracing, complex alert routing, or long-term enterprise telemetry.

Write-up:
https://pvrlabs.xyz/articles/lightweight-spring-boot-monitoring.html

GitHub:
https://github.com/PVRLabs/statlite

How are you monitoring small Spring Boot deployments today? Are you using a full observability stack, Spring Boot Admin, custom scripts, or something lighter?

reddit.com
u/fykup — 14 days ago
▲ 54 r/cicd+2 crossposts

I made a small Bash wrapper that reduces successful Maven output by 99.7%

Successful Maven builds can produce thousands of lines that mostly confirm routine lifecycle steps.

That output is noisy when working in a terminal, clutters CI logs, and becomes especially expensive when build output is passed to a coding agent.

I built mvn-lite, a small deterministic Bash wrapper that keeps successful Maven output to one line while preserving the original exit code and complete raw log.

On a real four-module application:

  • Standard Maven output: about 6,753 bytes
  • mvn-lite output: 16 bytes
  • Result: PASS · 3.944 s
  • Reduction: more than 99.7%

Failures still return a nonzero exit code and show bounded diagnostics, while the full unmodified Maven output remains available in the raw log.

For example, an invalid lifecycle error was reduced by 91.6% while retaining the actual Maven error.

There is no LLM summarization, API key, or Maven extension involved. It is just a local Bash wrapper with deterministic text extraction.

Source and script: https://github.com/ejboy/agent-scripts

Benchmark details and design notes: https://pvrlabs.xyz/articles/introverted-maven.html

I’d be interested in feedback on Maven failure cases where compact output could hide something essential.

u/fykup — 1 day ago

StatLite: ultra-light Spring Boot monitoring without Prometheus or Grafana

I built StatLite for small Spring Boot deployments where raw Actuator endpoints are useful, but a full Prometheus and Grafana stack feels excessive.

StatLite polls Spring Boot Actuator, stores metric history in local SQLite, computes restart-aware counter deltas, and serves a simple dashboard from a single Go binary.

Screenshot of a dashboard

It currently shows:

  • application and database health
  • request volume
  • 4xx, 404, and 5xx errors
  • average request latency
  • JVM heap usage
  • process CPU usage
  • uptime and detected restarts
  • polling failures and missing metrics

It is designed for solo developers and small teams running one or a few Spring Boot apps on small VPSes. In my testing, StatLite uses less than 10 MB of private memory.

It is intentionally not a Prometheus or Grafana replacement. It is a lightweight middle ground between raw Actuator JSON and a full observability stack.

GitHub: https://github.com/PVRLabs/statlite

I would be interested to hear which Actuator metric or chart you consider essential for a small production app. Feedback, bug reports, and GitHub stars are appreciated.

reddit.com
u/fykup — 1 month ago
▲ 4 r/ContextEngineering+1 crossposts

I built a local repo-map tool to reduce coding-agent token waste

I’m relatively new to the formal “context engineering” framing, but I ran into a practical problem that seems related.

Autonomous coding agents like Cursor, Claude Code, Codex are great for implementation, but I found them inefficient for higher-level tasks like architecture review, debugging strategy, onboarding, and design discussion.

They often rescan broad parts of the repo, pull in noisy context, and burn through metered limits just to answer questions that mostly need a good structural overview plus a few precise snippets.

My natural workaround was to move those discussions into fixed-cost web chats like Claude Web or ChatGPT, while keeping the repo scanning/extraction local.

So I built a small local-first CLI tool called AI Badger around this workflow:

The map: a local command scans the repo and builds a compact structural map.

The handoff: you paste that map into a reasoning chat.

The extraction: the model asks for specific files/snippets, the tool extracts only those locally, and you paste the focused context back.

The goal is not to replace coding agents. It’s more of a bridge for split workflows:

  • agent for implementation
  • web/local chat for review, design, debugging, and explanation
  • local tool for precise context extraction

I put the source code here: https://github.com/PVRLabs/aibadger
There’s also a browser demo showing the workflow: https://pvrlabs.xyz/aibadger/demo.html

I’m curious whether this maps to problems people here think about:

  • Is explicit “map first, fetch snippets on demand” a useful context workflow?
  • How do you avoid wasting tokens when moving between implementation agents and reasoning chats?
  • Where do you think the boundary should be between explicit context handoff and automatic retrieval?
u/fykup — 1 month ago