eSlider
59caf5e560
docs(oo): dav, documents files api, bulk tools, fix verbs ( #22 )
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 17s
Tests / Test (Go stable) (pull_request) Successful in 18s
2026-09-14 21:43:37 +00:00
eSlider
af8e3b053a
feat(oo): kontoblatt bulk tools, oo dav, update, retry ( #22 )
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 1m22s
Tests / Test (Go stable) (pull_request) Successful in 1m21s
2026-09-14 21:03:39 +00:00
eSlider
8ac777c031
feat(files): MinIO fallback for stale S3 downloads ( #152 )
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go stable) (pull_request) Successful in 1m15s
Tests / Test (Go 1.25) (pull_request) Successful in 1m22s
2026-09-14 15:41:39 +00:00
eSlider
c576bfe2ee
feat(files): Documents Dav ops + UpdateFile, fileops errors ( #152 )
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go stable) (pull_request) Successful in 1m17s
Tests / Test (Go 1.25) (pull_request) Successful in 1m20s
2026-09-14 12:37:57 +00:00
eSlider and GitHub
7f56332285
Merge pull request #49 from eSlider/sync/gitea-main-20260904
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Successful in 4s
Tests / Test (Go 1.25) (push) Successful in 2m4s
Tests / Test (Go stable) (push) Successful in 2m4s
sync: gitea main (sortBy fix #18 + funding)
2026-09-04 15:47:06 +01:00
eSlider
d650a16a36
docs(funding): eSlider support links (reverse-import GitHub e9c969a)
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 5s
Tests / Test (Go stable) (pull_request) Successful in 34s
Tests / Test (Go 1.25) (pull_request) Successful in 37s
2026-09-04 12:29:45 +01:00
eSlider
e9c969a89c
funding: eSlider support links (sponsors, ko-fi, liberapay, patreon, polar)
2026-09-03 05:20:18 +01:00
eSlider
4d91726179
fix(crm): deterministic sortBy=id in contact paged lists
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 26s
Tests / Test (Go stable) (pull_request) Successful in 1m21s
2026-09-03 04:50:15 +01:00
eSlider
4d8af7a2fe
feat(crm): add UpdateContactName and CloseCRMTask helpers
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Successful in 6s
Tests / Test (Go stable) (push) Successful in 28s
Tests / Test (Go 1.25) (push) Successful in 38s
- UpdateContactName renames a company contact via PUT /crm/contact/company/{id}
- CloseCRMTask closes a CRM task via PUT /crm/task/{id}/close.json
2026-08-31 11:38:50 +01:00
eSlider
34745e349e
chore(release): trigger CI ( #16 )
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 26s
Tests / Test (Go stable) (pull_request) Successful in 28s
2026-08-31 11:38:48 +01:00
eSlider and GitHub
dfea57a57b
Merge pull request #46 from eSlider/release-please--branches--main--components--go-onlyoffice
...
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 23s
Tests / Test (Go stable) (pull_request) Successful in 26s
Release / GoReleaser (push) Skipped
chore(main): release 0.17.0
2026-08-31 11:34:41 +01:00
eSlider and Cursor
24ca144b22
fix(files): upsert uploads by default and dedupe project root
...
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go stable) (pull_request) Successful in 25s
Tests / Test (Go 1.25) (pull_request) Successful in 27s
OnlyOffice allows duplicate stem|ext in the same folder; agents hit this
via projects files upload and put-md without --folder. Default all upload
paths to replace-by-stem, add no-clobber via --no-replace, and scan
projectFolder in dedupe.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-31 11:18:54 +01:00
eSlider
220c7e8265
chore(release): v0.16.0 — put-xlsx (excelize) ( #13 )
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 8s
Tests / Test (Go 1.25) (pull_request) Successful in 2m3s
Tests / Test (Go stable) (pull_request) Successful in 2m5s
2026-08-30 13:41:51 +01:00
eSlider and Cursor
68445b0dfd
feat(docs): put-xlsx with excelize cutover workbook
...
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 5s
Tests / Test (Go 1.25) (pull_request) Successful in 1m59s
Tests / Test (Go stable) (pull_request) Successful in 2m5s
Add internal/xlspipe (github.com/xuri/excelize/v2) and oo docs put-xlsx
to generate multi-sheet budgets with named inputs, SUM/AVG/MIN formulas,
cross-sheet links, Russian labels, and cell comments for OnlyOffice.
Template cutover-portugal: sheets Ввод, Вс 6.09, Чт 3.09, Ср гип, Сводка.
Upload via UploadProjectFileReplacing (--replace default).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-30 13:38:27 +01:00
eSlider
f3150436fd
chore(release): rerun CI после gitleaks fix ( #8 )
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 4s
Tests / Test (Go 1.25) (pull_request) Successful in 23s
Tests / Test (Go stable) (pull_request) Successful in 25s
2026-08-29 16:18:42 +01:00
eSlider
5a0b2ab412
fix(ci): gitleaks через бинарник на $GITHUB_WORKSPACE (Gitea runner) ( #10 )
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 5s
Tests / Test (Go stable) (pull_request) Successful in 21s
Tests / Test (Go 1.25) (pull_request) Successful in 30s
2026-08-29 16:14:00 +01:00
eSlider
69844c9122
chore(release): v0.15.0 — files folder-ops + docpipe ( #8 )
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Test (Go 1.25) (pull_request) Successful in 25s
Tests / Test (Go stable) (pull_request) Successful in 34s
Tests / Secret scan (gitleaks) (pull_request) Failing after 3s
2026-08-29 16:06:47 +01:00
eSlider and GitHub
b04d610275
Merge pull request #42 from eSlider/feat/docs-optimize-gs
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 4s
Tests / Test (Go 1.25) (push) Successful in 20s
Tests / Test (Go stable) (push) Successful in 27s
feat(docs): Ghostscript PDF optimize for OO
2026-08-28 10:03:04 +01:00
eSlider and Cursor
6b3f40e1a1
feat(docs): optimize PDF via Ghostscript pdfwrite
...
Add oo docs optimize for native-text PDFs (OO-friendly rewrite without
ocrmypdf overlay). Default ocr --force to false when text layer exists.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-28 10:02:58 +01:00
eSlider and GitHub
ba8148a9e1
Merge pull request #41 from eSlider/fix/put-txt-fixed-width
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 4s
Tests / Test (Go 1.25) (push) Successful in 20s
Tests / Test (Go stable) (push) Successful in 27s
fix(docs): fixed-width txt as monospace code block
2026-08-28 09:59:59 +01:00
eSlider and Cursor
f1739dc9dc
fix(docs): put-txt uses code block for fixed-width extracts
...
INE/pdftotext -layout txt (e.g. loan-ine) opens reliably in OO as
monospace; prose txt still uses hard line breaks.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-28 09:59:34 +01:00
eSlider and GitHub
5b812ce346
Merge pull request #40 from eSlider/feat/put-txt-line-breaks
...
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 4s
Tests / Test (Go 1.25) (push) Successful in 26s
Tests / Test (Go stable) (push) Successful in 27s
feat(docs): put-txt with preserved line breaks
2026-08-28 09:58:04 +01:00
eSlider and Cursor
309ae44ee4
feat(docs): put-txt preserves line breaks in DOCX
...
TxtToMarkdown uses markdown hard breaks so pandoc keeps each source
line on its own row. Adds oo docs put-txt and projects files alias.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-28 09:57:55 +01:00
eSlider and GitHub
ff2bc539f5
Merge pull request #39 from eSlider/fix/delete-immediately
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 5s
Tests / Test (Go 1.25) (push) Successful in 28s
Tests / Test (Go stable) (push) Successful in 29s
fix(files): permanent delete via DeleteDavItems
2026-08-28 09:56:21 +01:00
eSlider and Cursor
d9a7adcd94
fix(files): DeleteDavItems with Immediately true
...
Soft-delete (Immediately false) failed on some project files with
"You don't have enough permission to create" when moving to Trash.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-28 09:56:10 +01:00
eSlider and GitHub
3713ed6c51
Merge pull request #37 from eSlider/feat/files-dedupe
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 3s
Tests / Test (Go 1.25) (push) Successful in 26s
Tests / Test (Go stable) (push) Successful in 27s
feat(files): dedupe command + stem|ext matching
2026-08-27 23:40:16 +01:00
eSlider and Cursor
ac06d86363
feat(files): dedupe by stem|ext + oo projects files dedupe
...
- FileDedupKey groups true duplicates (same name+extension)
- put-md --replace deletes matching stem|ext only (not other formats)
- oo projects files dedupe PROJECT_ID [--apply] [--cross]
- Cross-folder mode prefers non-_trash folders, keeps newest file
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 23:40:07 +01:00
eSlider and GitHub
7d397ac680
Merge pull request #35 from eSlider/release-please--branches--main--components--go-onlyoffice
...
chore(main): release 0.14.0
2026-08-27 23:36:54 +01:00
eSlider and GitHub
a8cb4e9780
Merge pull request #36 from eSlider/fix/delete-files-dav
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 4s
Tests / Test (Go 1.25) (push) Successful in 1m29s
Tests / Test (Go stable) (push) Successful in 1m31s
fix(files): DeleteFiles actually removes files on produktor OO
2026-08-27 23:36:19 +01:00
eSlider and Cursor
622dcdb7bf
fix(files): DeleteFiles via per-file DELETE API
...
fileops/delete returns 200 on produktor.io OO without removing files;
route DeleteFiles through DeleteDavItems so put-md --replace and oo rm work.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 23:36:10 +01:00
eSlider and GitHub
2b267d36a8
Merge pull request #34 from eSlider/fix/put-md-upsert
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 4s
Tests / Test (Go stable) (push) Successful in 1m23s
Tests / Test (Go 1.25) (push) Successful in 1m31s
fix(docs): put-md upsert — no duplicate folder files
2026-08-27 23:29:09 +01:00
eSlider and Cursor
50bd47570b
fix(docs): put-md upsert by stem to avoid duplicate folder files
...
UploadToFolderReplacing deletes same-stem files before upload (--replace,
default true). OO may still display title+fileExst as double extension.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 23:28:11 +01:00
eSlider and GitHub
096a996726
Merge pull request #33 from eSlider/release-please--branches--main--components--go-onlyoffice
...
chore(main): release 0.13.0
2026-08-27 17:57:02 +01:00
eSlider and GitHub
e531de280f
Merge pull request #32 from eSlider/feat/docs-hocr
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 3s
Tests / Test (Go stable) (push) Successful in 1m43s
Tests / Test (Go 1.25) (push) Successful in 1m48s
feat(docs): hOCR → Markdown via go-hocr
2026-08-27 17:40:15 +01:00
eSlider and Cursor
129e3a58cc
chore: tidy go.sum after go-hocr bump
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 17:37:39 +01:00
eSlider and Cursor
70e605b4ca
docs(readme): document oo docs hocr
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 17:36:37 +01:00
eSlider and Cursor
a264cbd61c
feat(docs): oo docs hocr — tesseract hOCR → go-hocr Markdown/YAML
...
Structured OCR path for agents alongside ocrmypdf searchable PDF.
as-md --hocr selects the same pipeline for OO downloads.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 17:36:20 +01:00
eSlider and GitHub
a97a160c44
Merge pull request #29 from eSlider/release-please--branches--main--components--go-onlyoffice
...
chore(main): release 0.12.0
2026-08-27 17:05:08 +01:00
eSlider and GitHub
db9ef12ff4
Merge pull request #31 from eSlider/feat/docs-md-ocr
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Failing after 4s
Tests / Test (Go 1.25) (push) Successful in 1m57s
Tests / Test (Go stable) (push) Successful in 2m1s
feat(docs): md↔docx, OCR→PDF, as-md/put-md
2026-08-27 16:58:36 +01:00
eSlider and Cursor
2c0df0d55f
fix(ci): point gitleaks at /github/workspace in docker action
...
The docker:// runner mounts the checkout at /github/workspace; using
${{ github.workspace }} (host path) made gitleaks fail with ENOENT.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 16:56:40 +01:00
eSlider and Cursor
239c5ea672
docs(readme): document oo docs md↔docx / OCR agent workflow
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 16:49:18 +01:00
eSlider and Cursor
6ea2fbadf7
feat(docs): md↔docx convert, OCR→PDF, as-md/put-md for agents
...
Add oo docs pipeline (pandoc/ocrmypdf) so agents keep Markdown locally while OnlyOffice stores versioned DOCX; OCR weak PDFs/images before returning MD. Also expose ListFolder/CreateFolder/MoveFiles/UploadToFolder.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-27 16:49:06 +01:00
eSlider
0e299d0692
merge(github): bring GitHub-only commits into Gitea main ( #144 )
...
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Test (Go 1.25) (pull_request) Successful in 48s
Tests / Test (Go stable) (pull_request) Successful in 50s
Merges GitHub main content (mail-send SendMail, files ops/WebDAV,
contact-indexes CRM, history whitelist) onto Gitea main so Gitea (source
of truth) contains every commit from both sides.
2026-08-23 19:55:39 +01:00
eSlider
77c188c640
Merge origin/main (mail-send PRs, files ops) into local main
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Skipped
2026-08-21 22:03:04 +01:00
eSlider
2a59817f51
Merge feat/contact-indexes: crm indexes + history whitelist
2026-08-21 22:02:48 +01:00
eSlider
9c450a0352
feat(crm): contact email & person-opportunity indexes, history entity whitelist
...
- BuildContactEmailIndex: one-pass email→contact id map over all persons
(O(N) instead of per-address FindPersonByEmail O(N×M))
- BuildPersonOpportunityIndex: person→lowest-id opportunity for history notes
(OO has no person-level history; verified live)
- HistoryEntity{Opportunity,Case} whitelist constants
- IsCompany/ContactID/NumericIDLess/SortIDs helpers with unit tests
2026-08-21 22:02:47 +01:00
eSlider and GitHub
ab7dfbd859
Merge pull request #28 from eSlider/feat/mail-send
...
feat(mail): oo mails send — SendMail client + guard empty-by-id
2026-08-21 17:21:18 +01:00
eSlider
dda2bd3ca5
feat(mail): oo mails send — SendMail + guard empty-by-id send
...
- Client.SendMail: PUT /api/2.0/mail/messages/send.json, omits empty cc/bcc
- oo mails send subcommand with --id/--to/--subject/--body/--cc/--bcc
- guard: sending by --id without --body errors (send.json does not copy
subject/body from the draft; prevents empty emails)
- unit test: empty cc/bcc omitted, correct path
2026-08-21 16:43:00 +01:00
eSlider and GitHub
ceea6d909e
Merge pull request #27 from eSlider/feat/mails-download-attachment-cli
...
oo CLI: mail attachment downloads
2026-08-21 15:25:08 +01:00
eSlider
ecf34ba51a
fix(files): rewrite viewUrl host to API base on download
...
resolveAPIURL now rewrites absolute viewUrl hosts to the configured portal
base so downloads stay on the internal network and keep the Authorization
header (a cross-host HTTP->HTTPS redirect would otherwise strip it, failing
large-file reads).
2026-08-20 10:48:38 +01:00
eSlider
ebbd5d5373
feat(files): add WebDAV-oriented Files operations
...
Add value-oriented Files module operations for filesystem backends:
ListDavFolder, ListDavSections (@root), CreateDavFolder, RenameDavFolder/
RenameDavFile, MoveDavItems, CopyDavItems, DeleteDavItems, UploadDavFile
(streaming), DownloadDavFile. Dependency-free (net/http only).
2026-08-20 10:37:07 +01:00
eSlider
666be883dc
Add oo CLI support for mail attachment downloads.
...
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Test (Go 1.25) (pull_request) Successful in 24s
Tests / Test (Go stable) (pull_request) Successful in 26s
This exposes the canonical attachment download path via oo mails so downstream tools like 2dph can migrate off local OnlyOffice mail adapters without taking a direct module dependency first.
2026-08-19 12:10:21 +01:00
eSlider
1ef0670624
Add mail attachment download support for 2dph integration.
...
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Tests / Test (Go 1.25) (pull_request) Successful in 50s
Tests / Test (Go stable) (pull_request) Successful in 51s
This gives go-onlyoffice a cookie-backed attachment download path so 2dph can reuse the canonical OnlyOffice client instead of keeping a local mail adapter.
2026-08-19 12:05:25 +01:00
eSlider and GitHub
10c1cfc6a7
ci: node16-safe actions + GitHub-only gates for Gitea mirror ( #25 )
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Successful in 1m28s
Tests / Test (Go stable) (push) Successful in 1m23s
The Gitea act_runner runs action JS in node:16-bullseye; setup-go@v5 crashes
with 'ReferenceError: ReadableStream is not defined'. Gitea discovers
.github/workflows too, so:
- setup-go@v5 -> @v4 (node16-safe, fine on GitHub)
- gate GoReleaser (release.yml) + release-please jobs to
github.server_url == https://github.com so the GitHub CD never runs on the
Gitea mirror (GoReleaser/release-please are GitHub-release-centric)
2026-08-19 11:12:58 +01:00
eSlider
256864f613
feat(catalog): port oo catalog (scan/merge/match/apply) from legacy branch
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Failing after 2s
Tests / Test (Go 1.25) (push) Successful in 1m22s
Tests / Test (Go stable) (push) Successful in 1m23s
The catalog feature (approved ASR-0014) was lost during the GitHub history
rewrite: the merge commit on main is empty and the code only survived on the
old gitea-history branches (no merge base with main). Port catalog/* and the
oo catalog CLI verbatim; drop the library-only applications package whose
Sync() created the 'Write application'/'Apply application'/'Send CV' CRM
task spam (23k+ tasks deleted 2026-08-18).
2026-08-18 12:41:58 +01:00
eSlider and GitHub
a3a6ad3543
Merge pull request #23 from eSlider/release-please--branches--main--components--go-onlyoffice
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 46s
chore(main): release 0.10.0
2026-08-13 13:13:52 +01:00
eSlider
0e80a1a058
Add milestone create and task start dates so Gantt bars can exist.
...
CLI: oo projects milestone-create, oo tasks create --start --milestone.
2026-08-13 10:21:15 +01:00
eSlider
8b27539145
chore: restore LICENSE copyright holder
...
History rewrite anonymized author strings; keep accurate MIT copyright on tip.
2026-08-10 00:14:08 +01:00
eSlider
a0add3b771
chore: anonymize remaining CLI examples and hostnames
...
Keep public docs/help free of client names and fixed portal URLs.
2026-08-10 00:13:52 +01:00
eSlider
b58940fcf2
chore: redact personal ops from public tree
...
Move catalog, dossier sync, and SearXNG to private oo-workspace; keep
generic CRM name/title helpers and anonymized docs/examples.
2026-08-10 00:12:54 +01:00
eSlider
11aa23f1a1
docs(crm): Team vs Contacts and persons update note
2026-08-09 14:28:17 +01:00
eSlider
42c31d4b48
fix(crm): JSON person update and oo persons update CLI
...
Form-encoded PUT ignores companyId/about and can unlink the employer;
use JSON and re-fetch. Expose update plus contact-tag helpers on oo.
2026-08-09 14:28:09 +01:00
eSlider and GitHub
f95830961d
Merge pull request #20 from eSlider/feat/crm-invoices
...
feat(crm): invoices CLI and opportunity update
2026-08-06 14:58:30 +01:00
eSlider
6b5a82bef8
docs(crm): clarify mail API send vs signature for chat links
2026-08-06 14:52:35 +01:00
eSlider
490426c277
docs(crm): capture association graph and invoice/mail quirks
...
Document Medex-learned OO rules (one company, entityId at create, PDF
cache/cleanup, Matrix # truncation) and add invoices pdf/status helpers.
2026-08-06 14:26:43 +01:00
eSlider
31c556d34c
feat(crm): allow updating invoice terms via oo
...
Needed to put issuer NIE in Bedingungen without a full recreate.
2026-08-06 13:35:08 +01:00
eSlider
7f35b0e910
fix(mail): German spacing for invoice draft template
...
Separate paragraphs with blank lines; mailbox signature uses Synapse MXID.
2026-08-06 13:25:53 +01:00
eSlider
73b1050a83
feat(mail): draft, attach, and draft-invoice CLI
...
Save OO Mail drafts via body field, attach Files documents, and one-shot
invoice PDF regenerate + draft for client billing emails.
2026-08-06 13:18:02 +01:00
eSlider
d81e7de911
feat(crm): invoice update notes and PO fields
...
Allow oo invoices update --description/--po so Notizen can be
multiline refs without portal URLs; keep opportunity link support.
2026-08-06 12:47:06 +01:00
eSlider
3201a58df7
fix(crm): link invoices to opportunities
...
Create/update accept entityId (opportunity); oo invoices create
--opportunity and invoices update --opportunity so deal #invoices
tabs show the draft.
2026-08-06 12:45:09 +01:00
eSlider
19a7e9cbf8
feat(crm): add invoices CLI and opportunity update
...
Expose CRM invoice list/get/create/delete and catalog items via oo,
plus contact address/about helpers and opportunity bid/stage update.
Needed for Medex VM billing and other draft invoices.
2026-08-06 12:32:20 +01:00
eSlider and GitHub
2e1624920e
Merge pull request #16 from eSlider/release-please--branches--main--components--go-onlyoffice
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 14s
chore(main): release 0.9.0
2026-07-26 14:27:42 +01:00
eSlider
aa79a83c0a
feat(projects): link CRM companies and git authors to projects
...
Add List/Add/Remove project contacts and CLI:
contacts list|add|remove|link-git|link-authors.
Contacts tab (CRM) is separate from ProjectTeam portal users.
2026-07-26 13:25:50 +01:00
eSlider
179f30644d
fix(crm): clean person names; canonical project titles
...
Strip company annotations from lastName, derive names from email locals,
UpdatePerson on apply with companyId. Add persons fix-names, contacts
merge, projects create --country/--company (CC | Company | Title).
Fix project update (responsibleId) and company-person dedupe grouping.
2026-07-26 13:11:54 +01:00
eSlider and GitHub
b334f9ff86
Merge pull request #15 from eSlider/feat/oo-catalog-clients-contacts
...
feat(oo): catalog scan/match/apply for CRM clients and contacts
2026-07-26 12:54:41 +01:00
eSlider
e07cf743f9
feat(catalog): mbox header scan, company legal-suffix match, apply order
...
Add --mbox-headers for Thunderbird folder files; strip GmbH/& Co. KG in
CompanyGroupingKey; FindCompany falls back to full scan; apply companies
before persons. Tightens role-mailbox noise filters.
2026-07-26 11:34:42 +01:00
eSlider
8b764a36a1
feat(catalog): scan Thunderbird address books and Gloda contacts
...
Add oo catalog scan-thunderbird for *.mab and global-messages-db.sqlite,
with noise filters and work-domain heuristics (e.g. wheregroup.com).
2026-07-26 11:27:57 +01:00
eSlider
aa4e71b9d2
feat(oo): catalog scan/match/apply for CRM clients and contacts
...
Add filesystem inventory (VCF, contact folders, project trees) into a
reviewable YAML catalog, match against live OnlyOffice, and upsert only
rows with approve:true. Includes FindPersonByEmail for email-keyed persons.
2026-07-26 11:10:02 +01:00
eSlider and GitHub
76067f65d0
fix(ci): dispatch GoReleaser after release-please; allow Tests dispatch ( #13 )
...
GITHUB_TOKEN cannot trigger push:tags workflows, so Release never ran
after release-please. Dispatch release.yml explicitly when a release is
created. Add workflow_dispatch to Tests for on-demand main verification.
2026-07-23 15:38:57 +01:00
eSlider and GitHub
715ed23733
fix(ci): retry tag fetch in Release workflow ( #11 )
...
workflow_dispatch raced release-please: checkout of refs/tags/vX failed
because the tag was not fetched yet. Clone main first, retry-fetch the
tag, then check it out.
2026-07-23 15:31:56 +01:00
eSlider and GitHub
b9cea62d46
fix(oo): assign owner and deadline on task create ( #9 )
...
* fix(oo): assign owner and deadline on task create
CRM and project task create omitted responsibleId/responsibles, so the
portal attached a removed stub profile and CRM create without a deadline
failed or looked empty in the UI. Default both to the authenticated user
and now+14d; add crm-tasks reassign-self for backfill.
* fix(oo): collect all bad CRM tasks before reassign-self apply
Offset-0 apply stopped early when the first page was already fixed.
2026-07-23 15:01:23 +01:00
eSlider and GitHub
6ea76c64c3
Merge pull request #5 from eSlider/release-please--branches--main--components--go-onlyoffice
...
chore(main): release 0.7.0
2026-07-23 14:46:30 +01:00
eSlider and GitHub
c8b30a36ee
Merge pull request #7 from eSlider/fix/oo-applications-discover
...
fix(oo): skip junk dirs in applications Discover
2026-07-23 14:45:57 +01:00
eSlider
3969d045cc
fix(oo): skip junk dirs in applications Discover
...
Stop inventing CRM companies from node_modules/tools README trees.
Only sync dossier-like folders (source-NNN-…) and invent Company from
the slug token after the numeric id.
2026-07-23 14:43:45 +01:00
eSlider and Cursor
09e242d7c3
refactor(office): generalize DataTable layout and document TUI table skill
...
Unify project/user flex column layout into layoutFlexTable with per-subject
policy in model. Add office-tui-table skill and AGENTS notes; fix CI go mod
tidy drift and test matrix Go version to match go.mod 1.25.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-25 11:21:20 +01:00
eSlider and Cursor
0ed2d9b0f5
feat(office): users admin UI, table rendering, and user save fixes
...
Add Users list/detail with ACL toggles and library people update/status APIs.
Fix project table layout and ANSI-safe cell rendering, and decode array
responses from people/status so saves no longer fail on JSON unmarshal.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-25 11:07:22 +01:00
eSlider and Cursor
fab2977cb1
feat(office): mail preview, infinite scroll, pane resize, and scrollbars
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.22) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 38s
Polish the office TUI with proportional pane layout, drag resize, live
filtering, HTML mail preview, paginated mail lists, overflow scrollbars,
flattened navigation, and project save/status fixes; add UpdateProjectStatus.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 22:23:25 +01:00
eSlider and GitHub
eed57a68d4
Merge pull request #4 from eSlider/release-please--branches--main--components--go-onlyoffice
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.22) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 37s
chore(main): release 0.6.0
2026-06-24 21:26:47 +01:00
eSlider and Cursor
3d4aa10cf9
docs: CHANGELOG for office v0.5.1 release
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.22) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 37s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 17:35:44 +01:00
eSlider and Cursor
3b47d1400b
feat(office): table detail panes and Alt+1/2/3 layout toggles
...
Add spreadsheet-style list, split detail pane with forms and document preview,
and Alt+1/2/3 to show/hide panes with even width distribution.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 17:33:50 +01:00
eSlider and GitHub
a413d409b5
Merge pull request #3 from eSlider/release-please--branches--main--components--go-onlyoffice
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.22) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 37s
chore(main): release 0.5.0
2026-06-24 16:53:54 +01:00
eSlider and Cursor
cad68f64c6
feat(office): scrollable panes, nav tree drill-down, and item actions
...
Add viewports to all three columns with cursor sync scrolling. Support
Shift+Tab reverse pane focus. Replace flat menu with hierarchical NavTree
(list loads only on leaf nodes; dynamic project subnodes with Tasks/Files).
Enter or a opens per-item action menu (view, delete, download) wired to
the OnlyOffice API.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 16:43:06 +01:00
eSlider and Cursor
4046f4c46a
test(office): replace fixture tests with live OnlyOffice API integration
...
Remove synthetic map-based entity and fetch mapper unit tests; cover all
menu subjects and preview pipelines via integration tests against the real
Workspace API. Handle draft mail without subjects in list mapping.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 16:37:46 +01:00
eSlider and Cursor
6d4df4edee
ci: allow manual GoReleaser dispatch for existing tags
...
Release Please creates GitHub releases without pushing tag events that
reliably trigger GoReleaser; workflow_dispatch publishes binaries for a
given tag on demand.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 16:33:12 +01:00
eSlider and GitHub
3931eeaabb
chore(main): release 0.4.0
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.22) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 37s
chore(main): release 0.4.0
2026-06-24 16:31:41 +01:00
eSlider and Cursor
f8a73edef3
feat(office): add Workspace TUI with shared bootstrap and test suite
...
Introduce the office Bubble Tea browser (module tree, multi-select lists,
markdown preview) alongside oo, with cmd/internal/bootstrap for shared auth,
unit tests across preview/model/ui/fetch, CI build for both binaries, and
GoReleaser archives for office.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 16:29:04 +01:00
eSlider and Cursor
4acec6bbc9
ci: fix release-please permissions and document release workflow
...
Enable workflow_dispatch, add issues:write, and document the repo Actions
setting required for release-please PRs.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 14:50:04 +01:00
eSlider and Cursor
2e77d8e5c7
ci: add GitHub Actions test pipeline and GoReleaser releases for oo
...
Mirror eSlider/go-config: release-please for semver, tag-triggered GoReleaser
builds cross-platform oo binaries with embedded version metadata.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 14:46:53 +01:00
eSlider and Cursor
87ce3257a8
feat(mails): add Workspace mail CLI with pagination and parsed from fields
...
Manage the OnlyOffice Mail addon via oo mails using existing ONLYOFFICE_* creds,
with automatic page fetching past the 25-message API cap and fromName/fromAddress columns.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 14:44:09 +01:00
eSlider and Cursor
a59b4fb296
feat(crm): merge company slogan variants in dedupe grouping
...
Treat names like "Affirm" and "Affirm — Fraud Engineering" as the same
company for dedupe, deal matching, members, and applications sync lookup.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-24 12:40:27 +01:00