This website requires JavaScript.
ffdbb6131e
ci(release): re-fetch the tag object before reading its annotation
main
steve
2026-07-07 14:40:53 +01:00
8babdcfa88
chore(release): default installer to v0.7.0
v0.7.0
steve
2026-07-07 14:29:09 +01:00
dfb434aec3
ci(release): use the tag annotation as the release description
steve
2026-07-07 14:29:01 +01:00
d023df1b4a
feat(cli): folders command, search --all-folders, empty-search hint
steve
2026-07-07 14:28:38 +01:00
4c0c6b94db
chore(skill): bump emcli skill version to 0.6.0 (mirror binary)
steve
2026-06-27 15:25:34 +01:00
03bcdf6fc0
chore(release): default installer to v0.6.0
v0.6.0
steve
2026-06-27 15:16:41 +01:00
87555fdc4d
style(cli): align account show columns with consistent label width
steve
2026-06-27 12:43:14 +01:00
5476c04443
fix(cli): recognize account ls alias for agent role; align account show output; document edit password invariant
steve
2026-06-27 12:42:19 +01:00
dbefb68611
feat(cli): positional audit grammar (account positional, ls alias)
steve
2026-06-27 12:33:11 +01:00
1e00f68a3d
docs: update admin command reference to positional grammar
steve
2026-06-27 12:28:23 +01:00
1a03ce1c69
docs(cli): help reflects positional admin grammar + aliases
steve
2026-06-27 12:19:42 +01:00
ca49a42d40
feat(tui): drop whitelist toggles from account form (managed via whitelist group)
steve
2026-06-27 12:16:20 +01:00
c826042625
feat(cli): top-level ls alias for list
steve
2026-06-27 12:12:03 +01:00
44a9211a6f
feat(cli): doctor accepts positional account alongside --account
steve
2026-06-27 12:08:21 +01:00
9a8765d4e4
feat(cli): positional account grammar, account show, TTY remove confirm; drop whitelist flags
steve
2026-06-27 12:04:04 +01:00
1bf5bf3c47
feat(cli): positional whitelist grammar with required direction, enable/disable, validation
steve
2026-06-27 11:56:54 +01:00
f407fc126d
feat(cli): positional config grammar with registry + config list
steve
2026-06-27 11:49:56 +01:00
56ecdf246c
feat(store): add SetWhitelistEnabled
steve
2026-06-27 11:47:01 +01:00
a5bfaa4fe3
feat(cli): add config settings registry
steve
2026-06-27 11:45:10 +01:00
85642d5b12
feat(policy): add ValidWhitelistAddress
steve
2026-06-27 11:42:44 +01:00
68c926f83b
feat(cli): add normalizeVerb alias helper
steve
2026-06-27 11:40:42 +01:00
2c7b8d3610
docs: implementation plan for human CLI grammar redesign
steve
2026-06-27 11:39:03 +01:00
7a4d2881ba
docs: spec for human-facing CLI grammar redesign
steve
2026-06-27 11:21:23 +01:00
3c5e0a26f3
chore(release): default installer to v0.5.2
v0.5.2
steve
2026-06-23 23:05:31 +01:00
456d25d4f3
fix(cli): clearer whitelist usage errors
steve
2026-06-23 23:04:40 +01:00
3bea73f857
fix(store): expand a leading ~ in EMCLI_DB
steve
2026-06-23 23:04:40 +01:00
c651b00d08
chore(release): default installer to v0.5.1
v0.5.1
steve
2026-06-23 22:11:48 +01:00
8ed10dd503
docs: agent can discover accounts via account list
steve
2026-06-23 21:39:12 +01:00
2140d9e173
feat(cli): agent-readable account list (reduced JSON view)
steve
2026-06-23 21:37:37 +01:00
64ff32ab29
docs(plan): agent-readable account list
steve
2026-06-23 21:34:33 +01:00
7039371f70
docs(spec): agent-readable account list (reduced JSON view)
steve
2026-06-23 21:29:07 +01:00
e1b4ec38e5
docs(manual): document --from on account edit and the send-as address
steve
2026-06-23 20:49:46 +01:00
bd06b4b900
chore(release): default installer to v0.5.0
v0.5.0
steve
2026-06-23 20:38:01 +01:00
8e5c06a4cb
style: fix test name typo, table-test reporting, validator wording
steve
2026-06-23 20:32:33 +01:00
32f5a8d933
fix(cli): clarify edit --from help; test edit --from validation
steve
2026-06-23 20:29:37 +01:00
b6e68ddeae
feat(cli): configurable send-as From address (flags, TUI, validation)
steve
2026-06-23 20:25:14 +01:00
6a99e5bb6e
feat(mail): derive bare envelope sender from display-name From
steve
2026-06-23 20:20:54 +01:00
c5e42ffbae
fix(store): surface invalid schema_version; split migration test assertion
steve
2026-06-23 20:19:35 +01:00
cdffb15004
feat(store): add account from_address field + v2 migration
steve
2026-06-23 20:16:15 +01:00
a4c49d4aca
docs: implementation plan for send-as From address
steve
2026-06-23 20:12:28 +01:00
852bb1dc5b
docs: design for send-as From address field
steve
2026-06-23 20:06:38 +01:00
76ada04442
refactor(cli): wire commandRole into dispatch; doc + comment cleanup
steve
2026-06-23 07:18:27 +01:00
add9515b5c
docs: document two-key privilege model
steve
2026-06-22 23:11:18 +01:00
456e15a2f8
test(cli): check setup errors + report all admin refusals
steve
2026-06-22 23:06:47 +01:00
5c7dd252db
test(cli): prove agent key cannot run admin commands
steve
2026-06-22 23:03:17 +01:00
9d946b1b03
feat(cli): two-key role routing + init bootstrap
steve
2026-06-22 22:59:16 +01:00
cb0425f18d
feat(store): envelope DEK with admin/agent wrap slots
steve
2026-06-22 22:52:21 +01:00
c52f30898b
feat(crypto): named-var key loaders (admin/agent) + NewDEK
steve
2026-06-22 22:47:05 +01:00
77ba5a146f
docs(plan): two-key privilege separation implementation plan
steve
2026-06-22 22:43:16 +01:00
2bc2c1b50e
docs(spec): two-key privilege separation design
steve
2026-06-22 22:34:26 +01:00
c946516d01
chore(skill): point installer default at v0.4.1
v0.4.1
steve
2026-06-22 21:17:02 +01:00
b3390a0a20
fix(tui): default SMTP port to 465 in the account form
steve
2026-06-22 21:15:25 +01:00
1b2fe99055
feat(cli): add help for all commands
steve
2026-06-22 21:11:40 +01:00
7087533644
docs(skill): split setup into AGENTIC-MANUAL.md; keep SKILL.md lean
steve
2026-06-22 21:01:46 +01:00
93dbebb982
docs(skill): make SKILL.md self-bootstrapping from the repo
steve
2026-06-22 20:51:15 +01:00
68a29ad5c7
docs: mark CI release verified; note releases must be public for the installer
steve
2026-06-22 20:40:45 +01:00
5e3101647d
build: add cross-platform release target, tea publish, and Gitea Actions release
v0.4.0
steve
2026-06-22 20:32:22 +01:00
7ad4f1adc2
feat(skill): add emcli Agent Skill (agentskills.io standard)
steve
2026-06-22 20:25:08 +01:00
55c763d641
docs: add user manual; expand README
steve
2026-06-22 20:14:06 +01:00
a837b25d73
feat(admin): Phase 4 — doctor, admin completeness, and bubbletea TUI
steve
2026-06-22 20:09:43 +01:00
193815dd25
docs: Phase 3 decision — Gmail via app password; OAuth2 deferred
steve
2026-06-22 18:16:20 +01:00
c99eaedafd
feat(send): Phase 2 send path — SMTP, MIME, reply threading, outbound policy
steve
2026-06-22 17:39:07 +01:00
3224a87b6e
docs: status report — live validation done, header-only fetch resolved
steve
2026-06-22 07:52:42 +01:00
5d2461ad94
fix(mail): drain UidFetch channel on early error; clarify ParseHeaderOnly doc
steve
2026-06-22 07:51:45 +01:00
8379fddbb2
perf(mail): fetch only headers for list/search (no body download)
steve
2026-06-22 07:47:27 +01:00
a1440719ae
docs: Phase 1 status report
steve
2026-06-22 00:19:05 +01:00
6061bd2a78
fix(cli): search limit counts visible results, filter before cap
steve
2026-06-22 00:17:39 +01:00
dd181ef63c
fix(cli): non-zero exit when an agent command emits an error envelope
steve
2026-06-22 00:13:29 +01:00
e1e5f245e1
feat(cli): command router, real IMAP wiring, flag-based admin
steve
2026-06-22 00:09:38 +01:00
e1d86dc587
fix(cli): reuse folder uidvalidity from setup in AckCmd
steve
2026-06-22 00:06:26 +01:00
ccf6fa0542
feat(cli): agent read commands (list/get/search/ack) with policy filtering
steve
2026-06-22 00:03:27 +01:00
05abcf3bac
feat(cli): JSON output envelope with stable error codes
steve
2026-06-22 00:00:25 +01:00
47f877ad82
fix(mail): apply search limit and propagate body read error
steve
2026-06-21 23:58:09 +01:00
83bf3019c5
feat(mail): IMAP client — select, fetch headers/full, search
steve
2026-06-21 23:55:30 +01:00
7df0c95339
fix(mail): propagate io.ReadAll errors when parsing parts
steve
2026-06-21 23:53:24 +01:00
d73aabca96
feat(mail): RFC822 message parsing (headers, body, attachments)
steve
2026-06-21 23:51:29 +01:00
b9d0b57f84
feat(policy): inbound whitelist + subject-regex filter
steve
2026-06-21 23:49:04 +01:00
4d6ac3e7c6
feat(policy): case-insensitive address and domain matching
steve
2026-06-21 23:47:39 +01:00
5fb022bbaf
feat(store): audit log with retention-based purge
steve
2026-06-21 23:45:57 +01:00
a4e72b2178
feat(store): seen-set read state with floor baseline and compaction
steve
2026-06-21 23:43:35 +01:00
a1e9f601ce
feat(store): per-account inbound/outbound whitelist CRUD
steve
2026-06-21 23:41:10 +01:00
2db459d701
feat(store): accounts CRUD with encrypted password column
steve
2026-06-21 23:38:51 +01:00
aaab744b15
fix(store): pin connection pool so foreign_keys pragma sticks
steve
2026-06-21 23:37:11 +01:00
673ed5f350
feat(store): open encrypted SQLite, schema v1, settings
steve
2026-06-21 23:34:31 +01:00
8d04b0fde9
feat(crypto): AES-256-GCM field encryption keyed from EMCLI_KEY
steve
2026-06-21 23:32:23 +01:00
afad3bf3f1
feat: project scaffold, version command, build
steve
2026-06-21 23:30:44 +01:00
04d3b61bb0
Plan: Phase 1 — foundation & read path implementation plan
steve
2026-06-21 21:17:29 +01:00
e3f8afbc7c
Spec: replace read pointer with per-message seen-set model
steve
2026-06-21 21:01:34 +01:00
79b62b24c2
Initial commit: PRD and SPEC for emcli
steve
2026-06-21 19:36:13 +01:00