Commit Graph

  • 4debe8287a wp-plugin-info.json: update for 1.2.1 main Vladimir Bryzgalov 2026-05-01 20:20:30 +05:00
  • 0cc1266912 release: 1.2.1 v1.2.1 Vladimir Bryzgalov 2026-05-01 20:20:29 +05:00
  • f510ac484a fix(cron): self-heal scheduled events on every boot + on plugin upgrade Vladimir Bryzgalov 2026-05-01 20:19:34 +05:00
  • ad14d0e6e3 docs: add deploy-to-sites guide for juniors Vladimir Bryzgalov 2026-04-22 00:12:18 +05:00
  • 1fd330fa0e refactor(release): use pretty download_url from /releases/{id} API Vladimir Bryzgalov 2026-04-22 00:08:49 +05:00
  • 79e46ccf7e fix(release): post-mortem fixes discovered during 1.2.0 release Vladimir Bryzgalov 2026-04-21 23:55:16 +05:00
  • 1a15f0c872 wp-plugin-info.json: update for 1.2.0 Vladimir Bryzgalov 2026-04-21 23:53:53 +05:00
  • b0fb5c8e3d release: 1.2.0 v1.2.0 Vladimir Bryzgalov 2026-04-21 23:50:23 +05:00
  • 34e5571fea fix(release): replace \s with [[:space:]] in bump sed (BSD compat) Vladimir Bryzgalov 2026-04-21 21:21:06 +05:00
  • 42b98e5438 feat(release): release.sh for one-shot releases to Gitea Vladimir Bryzgalov 2026-04-21 21:16:15 +05:00
  • 73045a1f0c docs(readme): add 1.2.0 changelog entry Vladimir Bryzgalov 2026-04-21 21:11:07 +05:00
  • e71cb4e15f test(archive): git archive includes runtime files, excludes dev files Vladimir Bryzgalov 2026-04-21 21:10:49 +05:00
  • 6422f1bf98 chore: extend .gitattributes export-ignore to cover all dev files Vladimir Bryzgalov 2026-04-21 21:10:31 +05:00
  • ee5bf2a3c5 chore: ignore dist/ (release.sh build artifact) Vladimir Bryzgalov 2026-04-21 21:10:22 +05:00
  • 5b8eeffecb feat(updates): wire PUC v5 registration into Plugin::boot() Vladimir Bryzgalov 2026-04-21 21:08:34 +05:00
  • e4c31e3c40 test(update-checker): wp-plugin-info.json validity + version/download_url invariants Vladimir Bryzgalov 2026-04-21 21:06:29 +05:00
  • 3ec9b488dd feat(updates): add wp-plugin-info.json skeleton for PUC Generic JSON source Vladimir Bryzgalov 2026-04-21 21:06:02 +05:00
  • a5082da0da test(update-checker): invariants for vendored PUC loader and factory class Vladimir Bryzgalov 2026-04-21 21:05:45 +05:00
  • 05aa819608 chore(deps): vendor plugin-update-checker v5.6 Vladimir Bryzgalov 2026-04-21 21:03:37 +05:00
  • c0ff5a9227 docs: finalize self-hosted updates spec + implementation plan (1.2.0) Vladimir Bryzgalov 2026-04-21 20:59:52 +05:00
  • 995131371d chore: ignore .worktrees/ (feature worktree workspaces) Vladimir Bryzgalov 2026-04-21 20:59:33 +05:00
  • f7d81a4517 docs(spec): DRAFT design for self-hosted updates from Gitea (1.2.0) Vladimir Bryzgalov 2026-04-21 18:46:35 +05:00
  • 4dbf3a6ded Merge feat/silent-drop: silent drop label + dry-run + counters (1.1.0) Vladimir Bryzgalov 2026-04-21 18:14:40 +05:00
  • 714b4712ad fix: wire is_hard_drop_enabled + drop_score_threshold settings into Classifier filter chain Vladimir Bryzgalov 2026-04-21 17:25:20 +05:00
  • 030eaca408 chore: bump version to 1.1.0 with silent-drop changelog Vladimir Bryzgalov 2026-04-21 17:18:14 +05:00
  • 22722ae9e9 feat(admin): silent-drop counter line in dashboard widget Vladimir Bryzgalov 2026-04-21 17:16:34 +05:00
  • ea5666318b feat(admin): silent-drop block in settings page (dry-run, hard-rule, threshold, stats, reset) Vladimir Bryzgalov 2026-04-21 17:14:56 +05:00
  • 2fcebcc756 feat(formatter): [БЫЛО БЫ DROPPED] header + triggered-rule line in dry-run mode Vladimir Bryzgalov 2026-04-21 17:12:16 +05:00
  • 42e311c05a feat(source): drop label → skip enqueue (or marked enqueue in dry-run); cf7stg_should_enqueue filter Vladimir Bryzgalov 2026-04-21 16:30:07 +05:00
  • 24367c1ccb feat(activator): seed silent-drop options (dry-run on by default) on activate Vladimir Bryzgalov 2026-04-21 16:26:38 +05:00
  • 0034531a3a fix(settings): wp_date() respects WP timezone; clarify counter is not atomic Vladimir Bryzgalov 2026-04-21 16:25:30 +05:00
  • ae70b42dcb feat(settings): silent-drop options + counter with rolling today→yesterday Vladimir Bryzgalov 2026-04-21 16:22:57 +05:00
  • f415f429ed refactor(classifier): single-pass hard-drop trigger; cleaner drop reason rendering Vladimir Bryzgalov 2026-04-21 16:20:28 +05:00
  • a70785beca feat(classifier): label 'drop' via hard-rule + score threshold (-5 default) Vladimir Bryzgalov 2026-04-21 16:14:49 +05:00
  • 18a07c9b1b test(classifier): exact-count assertions for placeholder fixture; document SERVICE_FIELD_KEYS prefix semantics Vladimir Bryzgalov 2026-04-21 16:08:57 +05:00
  • 249f195257 feat(classifier): count_placeholder_fields() helper for drop-logic Vladimir Bryzgalov 2026-04-21 16:06:32 +05:00
  • 1168a733a4 test(classifier): boundary + array-value tests for has_short_latin_name; @return tags Vladimir Bryzgalov 2026-04-21 16:04:18 +05:00
  • 660a0d2b7c feat(classifier): has_short_latin_name() helper for drop-logic Vladimir Bryzgalov 2026-04-21 16:01:58 +05:00
  • b5c939e9e4 fix(classifier): iterate all email candidates per field; document method contract Vladimir Bryzgalov 2026-04-21 15:59:12 +05:00
  • eae8fafb32 feat(classifier): has_valid_email_anywhere() helper for drop-logic Vladimir Bryzgalov 2026-04-21 15:56:14 +05:00
  • 1d2586e290 test(fixtures): real spam submissions from TG screenshots (3 cases) Vladimir Bryzgalov 2026-04-21 15:53:54 +05:00
  • bd45e84634 test: stable filter ordering, base TestCase reset, priority-aware remove_all_filters Vladimir Bryzgalov 2026-04-21 15:51:46 +05:00
  • 40d5a2c23d test: stateful WP shims (add_filter/get_option/is_email) for upcoming silent-drop tests Vladimir Bryzgalov 2026-04-21 15:48:07 +05:00
  • 9a55404918 docs: implementation plan for silent drop (1.1.0) — 14 tasks, TDD Vladimir Bryzgalov 2026-04-21 15:37:42 +05:00
  • 287d313f1b docs(spec): drop skull emoji, clarify dry-run default on fresh install + upgrade Vladimir Bryzgalov 2026-04-21 15:30:38 +05:00
  • ee6a791867 docs: design for silent drop (1.1.0) — hard-rule, score threshold, dry-run, counters Vladimir Bryzgalov 2026-04-21 15:27:15 +05:00
  • 0cdfde9529 chore: bump version to 1.0.4 with changelog of pilot fixes Vladimir Bryzgalov 2026-04-18 00:39:11 +05:00
  • 8efb82ca43 fix: phone leak, field-by-value detection, strict Flamingo email fallback Vladimir Bryzgalov 2026-04-18 00:22:39 +05:00
  • dbdfc9afa9 feat(admin): always-on dashboard widget + default retro days = 0 Vladimir Bryzgalov 2026-04-18 00:12:45 +05:00
  • 2de8f0be57 fix(formatter+telegram): drop tel: inline button, mark all 4xx as permanent Vladimir Bryzgalov 2026-04-17 23:55:06 +05:00
  • 1f89052f72 fix(flamingo-helper): extract field values from _field_* meta, not _fields Vladimir Bryzgalov 2026-04-17 23:46:52 +05:00
  • 22239321d0 fix(activator): register cron_schedules filter during activation Vladimir Bryzgalov 2026-04-17 23:26:06 +05:00
  • 2e0a829e06 docs+tests: fix autoloader — underscores → hyphens + slug fallback Vladimir Bryzgalov 2026-04-17 23:02:53 +05:00
  • 0c1be5b4cd feat: plugin bootstrap, autoloader, activation/deactivation hooks Vladimir Bryzgalov 2026-04-17 23:02:20 +05:00
  • a9d19a75a3 feat(admin): settings page with token/chat/site-title, test button, retro, queue state Vladimir Bryzgalov 2026-04-17 22:53:53 +05:00
  • 6eb2844429 chore: uninstall cleanup, WP readme Vladimir Bryzgalov 2026-04-17 22:51:33 +05:00
  • f5816e4648 feat(admin): dashboard widget shown only when there are failed queue items Vladimir Bryzgalov 2026-04-17 22:50:29 +05:00
  • fef22c1ff8 feat(activator): create queue table, schedule cron, guard PHP/WP versions Vladimir Bryzgalov 2026-04-17 22:49:25 +05:00
  • aa66d15eb5 feat(retro-importer): queue last-N Flamingo spam posts with dedup Vladimir Bryzgalov 2026-04-17 22:48:21 +05:00
  • eb199c6d40 feat(cf7-source): capture spam submissions via wpcf7_spam and submission status Vladimir Bryzgalov 2026-04-17 22:47:13 +05:00
  • 4ce2fac42d feat(dispatcher): WP-Cron tick with backoff and retention cleanup Vladimir Bryzgalov 2026-04-17 22:45:38 +05:00
  • 786a306f29 feat(telegram-client): sendMessage wrapper classifying permanent/transient errors Vladimir Bryzgalov 2026-04-17 22:44:41 +05:00
  • 1f85d009c4 feat(settings): options wrapper with wp-config constant override Vladimir Bryzgalov 2026-04-17 22:43:36 +05:00
  • f24cadc799 feat(flamingo-helper): locate flamingo_inbound posts and extract fields/reason Vladimir Bryzgalov 2026-04-17 22:42:38 +05:00
  • 09f2638066 feat(queue): CRUD, dedup, retention, status counters Vladimir Bryzgalov 2026-04-17 22:41:30 +05:00
  • cc37aa2647 feat(crypto): AES-256-CBC token encryption via AUTH_KEY Vladimir Bryzgalov 2026-04-17 22:40:08 +05:00
  • 6961bb1b72 feat(telegram): exception carrying permanent/retry_after flags Vladimir Bryzgalov 2026-04-17 22:39:04 +05:00
  • d3bd360357 feat(message-formatter): build Telegram HTML payload with inline tel button Vladimir Bryzgalov 2026-04-17 22:37:10 +05:00
  • a7b796d381 docs: honeypot is a hard override on label=spam Vladimir Bryzgalov 2026-04-17 22:21:51 +05:00
  • 90940dd928 feat(classifier): weighted heuristic for client/unclear/spam scoring Vladimir Bryzgalov 2026-04-17 22:21:10 +05:00
  • 3dd0f41446 feat(phone-parser): normalize RU phones and extract first candidate Vladimir Bryzgalov 2026-04-17 22:08:57 +05:00
  • 558483ef44 docs: fix punycode example and regex delimiter in plan/spec Vladimir Bryzgalov 2026-04-17 22:04:15 +05:00
  • 6068a6a54f feat(domain-formatter): decode punycode hosts to Cyrillic with fallbacks Vladimir Bryzgalov 2026-04-17 22:03:33 +05:00
  • 6aa1ef41e6 chore: add composer + phpunit dev scaffolding Vladimir Bryzgalov 2026-04-17 21:53:22 +05:00
  • be00b7996c docs: add plan→bd ID map Vladimir Bryzgalov 2026-04-17 21:46:18 +05:00
  • 4569b5f586 docs: add implementation plan for cf7-spam-to-telegram Vladimir Bryzgalov 2026-04-17 21:36:35 +05:00
  • b1d8dfd044 bd init: initialize beads issue tracking Vladimir Bryzgalov 2026-04-17 21:28:59 +05:00
  • 3a998c36d2 docs: add design spec for cf7-spam-to-telegram plugin Vladimir Bryzgalov 2026-04-17 21:26:51 +05:00