update
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# Summary: 01-01 DataForSEO Cost Optimization
|
||||
|
||||
## Plan
|
||||
|
||||
`.paul/phases/01-dataforseo-cost-optimization/01-01-PLAN.md`
|
||||
|
||||
## Completed
|
||||
|
||||
- Added DataForSEO cost-policy helpers in `autoload/class.Cron.php`.
|
||||
- Added adaptive interval calculation for phrases without manual `days_offset`.
|
||||
- Preserved manual `days_offset` as the authoritative schedule override.
|
||||
- Changed DataForSEO candidate selection from a single SQL-selected phrase to a bounded candidate pool ordered by oldest `last_checked`, then filtered in PHP.
|
||||
- Removed the old `30/50/100` depth ladder.
|
||||
- Capped all DataForSEO v3 Google Organic requests at top 50.
|
||||
- Hardened result processing so "not found in returned top 50" stores position `0` without relying on an undefined `$site`.
|
||||
- Added depth and interval metadata to the cron success message.
|
||||
|
||||
## Verification
|
||||
|
||||
- `php -l autoload\class.Cron.php` - passed.
|
||||
- Confirmed no `100` literal remains in `autoload/class.Cron.php`.
|
||||
- Confirmed DataForSEO payloads use computed `$depth` from `getDfsDepth()`.
|
||||
- Confirmed both localization branches use the same computed depth.
|
||||
|
||||
## Deviations
|
||||
|
||||
- No SonarQube scan was run because only one source file was modified.
|
||||
- No codebase docs were updated because this plan changed one existing backend file and did not introduce schema, dependency, API, or multi-file architecture changes.
|
||||
|
||||
## Files Modified
|
||||
|
||||
- `autoload/class.Cron.php`
|
||||
- `.paul/STATE.md`
|
||||
- `.paul/phases/01-dataforseo-cost-optimization/01-01-SUMMARY.md`
|
||||
|
||||
## Next
|
||||
|
||||
Run `$paul-unify .paul/phases/01-dataforseo-cost-optimization/01-01-PLAN.md` to reconcile the implementation against the plan and close the loop.
|
||||
Reference in New Issue
Block a user