feat: Emacs OSINT workbench foundation (profiles, star:// URIs, object and search buffers) #142

Open
nsaspy wants to merge 3 commits from agent/emacs-osint-workbench into master
Owner

Summary

First slice of the Emacs OSINT workbench (plan: docs/emacs-workbench-plan.org, inventory: docs/emacs-workbench-inventory.org).

  • Server profiles (starintel-server.el): named deployments, per-request auth-source credential resolution, profile identity stamped into references, capability-cache invalidation on switch.
  • star:// URIs (starintel-uri.el): star://SERVER/KIND/ID parse/format/open, percent-encoding round-trip, Org "star" link registration, extensible kind handlers.
  • Object identity + generic buffer (starintel-object.el): starintel-object references (server/dtype/id/uri), dtype-aware titles from actual 0.9 data fields only, typed rendering of data/sources/provenance (extensions.star_server), copy id/URI, refresh, raw JSON view.
  • Search workbench (starintel-search.el): capability-resolved search in a tabulated-list-mode buffer — open/copy/Mark actions, server-bookmark pagination, clean unavailable-capability errors.
  • Entry point (starintel.el): M-x starintel with optional transient menu.
  • client.el: starintel-api-error-message now redacts plain user-error strings (typed UI errors); legacy layer untouched.

Verification

  • make test-emacs: 87/87 ERT tests green (42 existing + 45 new hermetic workbench tests).
  • Byte-compile clean for all new modules.
  • Live smoke vs dev deployment (127.0.0.1:5000): capabilities (9 endpoints), search round-trip, stats, live deadline enforcement verified; authenticated document fetch pending validation with a local credential.

Author: nsaspy

## Summary First slice of the Emacs OSINT workbench (plan: docs/emacs-workbench-plan.org, inventory: docs/emacs-workbench-inventory.org). - **Server profiles** (`starintel-server.el`): named deployments, per-request `auth-source` credential resolution, profile identity stamped into references, capability-cache invalidation on switch. - **star:// URIs** (`starintel-uri.el`): `star://SERVER/KIND/ID` parse/format/open, percent-encoding round-trip, Org "star" link registration, extensible kind handlers. - **Object identity + generic buffer** (`starintel-object.el`): `starintel-object` references (server/dtype/id/uri), dtype-aware titles from actual 0.9 `data` fields only, typed rendering of data/sources/provenance (`extensions.star_server`), copy id/URI, refresh, raw JSON view. - **Search workbench** (`starintel-search.el`): capability-resolved search in a `tabulated-list-mode` buffer — open/copy/Mark actions, server-bookmark pagination, clean unavailable-capability errors. - **Entry point** (`starintel.el`): `M-x starintel` with optional transient menu. - `client.el`: `starintel-api-error-message` now redacts plain user-error strings (typed UI errors); legacy layer untouched. ## Verification - `make test-emacs`: 87/87 ERT tests green (42 existing + 45 new hermetic workbench tests). - Byte-compile clean for all new modules. - Live smoke vs dev deployment (127.0.0.1:5000): capabilities (9 endpoints), search round-trip, stats, live deadline enforcement verified; authenticated document fetch pending validation with a local credential. Author: nsaspy
- named server profiles with auth-source credential resolution and
  current-server identity stamped into every object reference
- star:// URI scheme: parse/format/open with org link registration
- canonical object identity plus generic object buffer rendering
  0.9 data fields and extensions.star_server provenance
- actionable tabulated-list search buffer with marking, bookmark
  pagination, and typed unavailable-capability errors
- M-x starintel workbench entry with optional transient menu
- 45 new hermetic ERT tests; client error-message helper now
  reports plain UI user-errors redacted
- docs: workbench implementation inventory and execution plan
- :auth-source accepts a host shorthand (login defaults to api) or
  an explicit (:host :user) plist
- credentials resolve per request via auth-source-search; document
  the encrypted ~/.authinfo.gpg workflow and redaction guarantees
feat: package the workbench as starintel-ui with a flake output
Some checks failed
Container Stack / stack (pull_request) Failing after 6s
Smoke Tests / unit-tests (pull_request) Failing after 10s
Smoke Tests / integration-tests (pull_request) Failing after 30s
Operational salvage / source-contract (pull_request) Successful in 6m2s
Canonical StarIntel schema lock / research-node-schema (pull_request) Successful in 6m46s
0ba16d59fe
- rename the entry module to starintel-ui.el (provide starintel-ui);
  the interactive entry point stays M-x starintel
- add autoload cookies for the interactive command surface and
  generate starintel-ui-autoloads in the flake package
- flake: packages.starintel-ui built via emacsPackages.trivialBuild
  over the runtime elisp only (tests excluded from site-lisp)
Some checks failed
Container Stack / stack (pull_request) Failing after 6s
Smoke Tests / unit-tests (pull_request) Failing after 10s
Smoke Tests / integration-tests (pull_request) Failing after 30s
Operational salvage / source-contract (pull_request) Successful in 6m2s
Canonical StarIntel schema lock / research-node-schema (pull_request) Successful in 6m46s
This pull request has changes conflicting with the target branch.
  • doc/emacs-workbench-inventory.org
  • doc/emacs-workbench-plan.org
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin agent/emacs-osint-workbench:agent/emacs-osint-workbench
git switch agent/emacs-osint-workbench

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff agent/emacs-osint-workbench
git switch agent/emacs-osint-workbench
git rebase master
git switch master
git merge --ff-only agent/emacs-osint-workbench
git switch agent/emacs-osint-workbench
git rebase master
git switch master
git merge --no-ff agent/emacs-osint-workbench
git switch master
git merge --squash agent/emacs-osint-workbench
git switch master
git merge --ff-only agent/emacs-osint-workbench
git switch master
git merge agent/emacs-osint-workbench
git push origin master
Sign in to join this conversation.
No description provided.