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
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
8ced804a6f
chore(main): release 0.11.0 ( #24 )
...
Release Please / Release Please (push) Skipped
Tests / Test (Go 1.25) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 47s
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
v0.11.0
2026-08-19 08:52:13 +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
v0.10.0
2026-08-13 13:13:52 +01:00
github-actions[bot] and GitHub
0161a92c52
chore(main): release 0.10.0
2026-08-13 09:21:46 +00: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