eSlider
ff4c0481ba
Merge pull request 'feat(docs): put-xlsx с excelize — multi-sheet бюджеты (cutover-portugal)' ( #12 ) from feat/docs-put-xlsx into main
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Successful in 5s
Tests / Test (Go 1.25) (push) Successful in 2m10s
Tests / Test (Go stable) (push) Successful in 2m12s
2026-08-30 13:41:25 +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
8739d45b1a
Merge pull request 'chore(release): v0.15.0 — files folder-ops + docpipe ( #8 )' ( #9 ) from chore/release-v0.15.0#8 into main
Release Please / Release Please (push) Skipped
Release / GoReleaser (push) Skipped
Tests / Test (Go 1.25) (push) Successful in 23s
Tests / Secret scan (gitleaks) (push) Successful in 5s
Tests / Test (Go stable) (push) Successful in 26s
v0.15.0
2026-08-29 16:19:41 +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
a30ae20f32
Merge pull request 'fix(ci): gitleaks через бинарник (Gitea runner) ( #10 )' ( #11 ) from fix/gitleaks-gitea#10 into main
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (pull_request) Successful in 6s
Tests / Test (Go 1.25) (push) Successful in 21s
Tests / Secret scan (gitleaks) (push) Successful in 4s
Tests / Test (Go stable) (push) Successful in 27s
Tests / Test (Go 1.25) (pull_request) Successful in 27s
Tests / Test (Go stable) (pull_request) Successful in 31s
2026-08-29 16:14:51 +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
github-actions[bot] and GitHub
e52cb31bb7
chore(main): release 0.14.0
2026-08-27 22:36:44 +00: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
github-actions[bot] and GitHub
625dd0a60a
chore(main): release 0.13.0
2026-08-27 16:40:41 +00: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
github-actions[bot] and GitHub
df447f2673
chore(main): release 0.12.0
2026-08-27 15:59:02 +00: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
50d8974154
Merge pull request 'feat(security): secret-scan в CI + pre-push хуки ( #142 )' ( #5 ) from feat/secret-scan#142 into main
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Secret scan (gitleaks) (push) Successful in 3s
Tests / Test (Go 1.25) (push) Successful in 44s
Tests / Test (Go stable) (push) Successful in 45s
2026-08-23 22:46:45 +01:00
eSlider
3fd3f797dc
Merge pull request 'reconcile(github): sync GitHub-only commits into Gitea main ( #144 )' ( #6 ) from reconcile/github-sync#144 into main
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Successful in 50s
Tests / Test (Go stable) (push) Successful in 44s
merge(github): sync GitHub-only commits into Gitea main (#144 )
2026-08-23 19:55:48 +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
Andriy Oblivantsev
9ead554f5c
feat(security): secret-scan via gitleaks in CI + pre-push/pre-commit hooks ( #142 )
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 48s
Tests / Test (Go stable) (pull_request) Successful in 51s
2026-08-23 19:51:06 +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
v0.14.0
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
20a09530cd
Merge pull request 'Add oo CLI support for mail attachment downloads' ( #3 ) from feat/mails-download-attachment-cli into main
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Reviewed-on: #3
2026-08-19 12:17:10 +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
65cd3f5c74
Merge pull request #2 from feat/mail-download-for-2dph
...
Release / GoReleaser (push) Skipped
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Successful in 41s
Tests / Test (Go stable) (push) Successful in 41s
Add mail attachment download support for 2dph integration.
2026-08-19 12:08:04 +01:00