A terminal reader, ipx; the server is ipxd (#437)
ipx-tui (crates/tui) is iPX's reader in ratatui: your feeds, a feed's items, an item's text as plain text, read and flagged as on the page, through the API with an API token. It installs as `ipx`, so the daemon's binary is now `ipxd`: the Dockerfile, release script, tests and every doc and message that names its commands follow. Naming the binary ipxd alone renamed its crate, and with it every log target (ipx::scan became ipxd::scan): the default filters are ipx=info, so nearly every line would have been dropped and the dashboard's queries on the targets gone blank. The daemon's code is now a library still called ipx, under a five-line ipxd main.rs, and the targets are as they were. ratatui is taken without its default features: 32 new packages in place of 78. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RqkrVDqdiQEMWAkNGQ2tYA
This commit is contained in:
@@ -1028,7 +1028,7 @@ test('an export from one account imports into another', async ({ page, browser }
|
||||
await ctx.close();
|
||||
});
|
||||
|
||||
test('ipx import subscribes the admin, and ipx export writes the feeds out', async () => {
|
||||
test('ipxd import subscribes the admin, and ipxd export writes the feeds out', async () => {
|
||||
// Its own config and database. The CLI works in-process, and the suite's running daemon
|
||||
// reads config.toml once at start, so it would not see what the CLI added anyway.
|
||||
const dir = path.join(setup.root, 'cli');
|
||||
@@ -1232,7 +1232,7 @@ test('the feed list keeps the icons it has drawn when a feed\'s new row comes in
|
||||
expect(kept).toEqual({ drawn: true, redrawn: true, same: true });
|
||||
});
|
||||
|
||||
test('ipx add and rm while the daemon runs reach it, and its next change keeps them (#120)', async ({ page }) => {
|
||||
test('ipxd add and rm while the daemon runs reach it, and its next change keeps them (#120)', async ({ page }) => {
|
||||
const env = { ...process.env, IPX_CONFIG: `${setup.root}/config/config.toml`, IPX_DATA_DIR: `${setup.root}/data` };
|
||||
const ipx = (...args: string[]) => execFileSync(setup.IPX_BIN, args, { env, encoding: 'utf8' });
|
||||
// By title: the directory names a feed by its address, not by its id here (#205).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<rss version="2.0"><channel><title>Command Line Show</title><link>http://127.0.0.1:8792/</link>
|
||||
<description>Added with ipx add while the daemon runs.</description>
|
||||
<description>Added with ipxd add while the daemon runs.</description>
|
||||
<item><title>From the Command Line</title><guid>cli-1</guid><description>x</description></item>
|
||||
</channel></rss>
|
||||
|
||||
@@ -92,7 +92,7 @@ token_sha256 = "${crypto.createHash('sha256').update(DIRECTORY_TOKEN).digest('he
|
||||
/// suite runs that build's ipx and ipx-directory, which write their coverage profiles there, the
|
||||
/// tests' own `ipx` commands included; without it, the debug build it makes itself.
|
||||
const API_COVERAGE = process.env.IPX_API_COVERAGE ?? '';
|
||||
const IPX_BIN = API_COVERAGE ? path.join(API_COVERAGE, 'debug', 'ipx') : './target/debug/ipx';
|
||||
const IPX_BIN = API_COVERAGE ? path.join(API_COVERAGE, 'debug', 'ipxd') : './target/debug/ipxd';
|
||||
const DIRECTORY_BIN = API_COVERAGE ? path.join(API_COVERAGE, 'debug', 'ipx-directory') : './target/debug/ipx-directory';
|
||||
|
||||
export { prepare, root, TOKEN, DIRECTORY, DIRECTORY_TOKEN, API_COVERAGE, IPX_BIN, DIRECTORY_BIN };
|
||||
|
||||
Reference in New Issue
Block a user