nc://devsentry

v0.1.0Pinned
ThomSharktools/nodecode-devsentry: Read-only project inventory, traceback leads and tracked git diffs, as three model tools. - a rewrite of Archangel20/devsentry (MIT), credited to Archangel2081e9dd7· 10 Nov1 commit
test1 filecell.lisp14.4 KBfiles.lisp17.3 KBgit.lisp13.3 KBtrace.lisp22.9 KB

nodecode-devsentry

DevSentry: read-only project inventory, traceback leads and tracked Git diffs. A Nodecode rewrite of Archangel20/devsentry by Archangel20.

The original was three Python tools for a coding agent: one inventoried a folder, one read a pasted traceback, one read git diff. This cell registers the same three tool names with the same arguments, and answers the same JSON in Lisp, with nothing bundled and no dependency beyond the image.

Nothing it does changes your project. It does not open file contents to inventory a folder, does not follow symlinks, does not execute the project, and does not send anything anywhere: no HTTP client, no telemetry.

Get it

Tell the agent "add the devsentry cell", or run:

nodecode add nc://devsentry

Use it

Ask in the conversation, and the model calls one of the three tools:

what is in ~/src/api, and which languages does it use?
here is my traceback: <paste>  -- what does it point at?
review my tracked changes before I commit

inspect_project(path) lists the entries of a folder, counts files by extension into approximate language totals, and names the dependency, build, cache and version-control folders it did not enter. diagnose_error(trace, project_path?) reads Python, JavaScript, Java, .NET, Go and Rust frames and exception names, adds a lead a person can check for each one, and — when you name a project — quotes the lines around a cited line, but only for a file that stays inside that project and is not a symlink. review_changes(path) reports staged and unstaged tracked changes as separate scopes, with each file's patch; untracked files are counted and not read, and a path that looks like a credential carries no patch at all.

The operator reads the same inventory whole:

/devsentry            this folder
/devsentry PATH       the folder you name

and the manual is (help :devsentry).

Settings

Every setting is a default a call may override, so there is nothing to fill in before using it. In the devsentry section of ~/.nodecode/config.jsonc (or /settings): max_depth (6) and max_entries (500) bound an inventory, context_lines (2) bounds the quoted source lines and the diff context, max_patch_bytes (20000) bounds each file's patch, and git_timeout_seconds (20) bounds one git run. A value outside the bound a tool accepts is clamped; a value the section cannot read refuses the cell at start with a notice naming the key.

Notes

  • Git runs as an argument list, never through a shell. Aliases, hooks, an external diff driver, textconv and fsmonitor from the repository are overridden for the run, and the index is hashed before and after so the answer can say it did not move.
  • Language totals are counts by extension and a few well-known filenames, not a parse: the file is never opened.
  • A diagnosis says certainty: leads_only. The leads are things to verify, not a confirmed root cause.

Run .github/test-cell.sh tools/nodecode-devsentry from the cells repository.

Add nc://devsentry

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 81e9dd7.

    $ nodecode add nc://devsentry

    Or tell the agent add the devsentry cell.