Skip to content

forgekit v0.6.0 — a tool's run and its password, inside the app

Latest

Choose a tag to compare

@jetomev jetomev released this 04 Oct 17:01
· 1 commit to main since this release
v0.6.0
4b2a0b7

Javier, about nogForge handing the terminal to nog: "it is not beautiful, it is disrupting", and a
desktop password window "doesn't make sense" for a terminal app. He chose three of five researched
options (nogForge docs/research/2026-10-04-nog-inside-the-ui.md); this is the shared part.

  • RunWindow / ForgeApp.run_in_app(): a program's steps (JSON lines in an events file) with a
    progress bar; its own screen folded until a question, a failure or F12; Yes/No for yes/no
    questions; menus like yay's typed in the screen; no question bar while an editor or pager runs.
  • TerminalPane: a pseudo-terminal drawn with pyte, plus what pyte lacks: the alternate screen
    (an editor or pager gives the earlier output back) and a capped scrollback; a shrinking screen
    keeps its bottom; keys and Ctrl+C go to the program.
  • PasswordBridge / PasswordDialog: sudo's password asked in the app (SUDO_ASKPASS → a
    helper → a 0700 folder, a 0600 socket, a one-time token); "try again" after a wrong one; closing
    the app never hangs on an open question.
  • InAppPolkitAgent / ForgeApp.polkit_agent(): polkit's password asked in the app, for the
    app's own process (D-Bus AuthenticationAgent + PolkitAgent.Session). The PyGObject Listener route
    crashed (SIGSEGV) in the spike and is not used.
  • Found on the way: ReviewDialog labels like "Install (i)" now answer to their key; the progress
    bar's half lines have console fallbacks (they showed "?"); literal() keeps outside text's
    brackets ("[N]one [A]ll" was eaten by markup).

Proven in the KognogOS VM on a real text console and by Javier on his desktop and tty3 (nogForge
and grubForge: "works wonders"). Tests 52 → 67. alacrittyForge 80, bitlaForge 64, grubForge 53,
nogForge 37 pass on it. New dependency: pyte; optional: python-gobject + polkit.

Install

nog install python-forgekit      # or: yay -S python-forgekit

Verifying this release

curl -s https://github.com/jetomev.gpg | gpg --import
# fingerprint: 32E1 D2AB 9380 BFD6 BFE3  BC1E AC2A 3407 CC07 0F9E
gpg --verify forgekit-0.6.0.tar.gz.asc forgekit-0.6.0.tar.gz

Javier (@jetomev) — idea, direction, testing
Claude (Anthropic) — co-developer, architecture, implementation