RuboCop (9 offenses, 5 files):
- embed_scripts_controller: drop redundant .freeze (frozen_string_literal on)
- sessions_controller: use modifier if for redir return
- feature_toggles/signing_flow/template_crud specs: convert flaky
`pending 'desc: reason' do` to `it 'desc', skip: 'reason' do`
- signing_flow_edge_cases: break over-long execute_script line
Erblint (2 offenses):
- sso_settings: replace inline `rescue` modifier with precomputed
begin/rescue local for the OAuth callback URI
- sms_settings: remove leading blank line in the multi-statement <% %> block
Assets precompile:
- config/initializers/migrate.rb runs DatabaseTasks.migrate when
RAILS_ENV=production and RUN_MIGRATIONS!=false. The precompile CI job has
no postgres service, so it failed on a refused DB connection. Set
RUN_MIGRATIONS=false for the precompile step so no DB is touched.
All pre-existing on master before the SMS work; none are SMS-related.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The inline script lacked a nonce and was blocked by the enforced CSP
(application_controller#set_csp uses a nonce'd script-src), so the toggle
and provider-switching handlers never ran. Add the standard
content_security_policy_nonce attribute, matching other inline scripts
(e.g. scripts/_autosize_field). Update the two original tests that assumed
the provider section is always visible, since it is now correctly hidden
when SMS is disabled.
The onchange attribute on the select helper wasn't rendering correctly
due to Rails select helper argument handling. Switched to a plain <script>
tag with Turbo-compatible DOMContentLoaded listener, matching patterns
used elsewhere in the codebase.
- Fix SMS provider dropdown: switch from nonce'd javascript_tag to inline
onchange handler (Turbo-compatible)
- Fix enable toggle: handle serialized JSON string values ("true"/"1")
in addition to boolean true
- Fix landing page: change link text from github.com/docusealco to
github.com/wabolabs/wabosign
- Add comprehensive SMS system tests (4 examples) covering provider
form rendering, toggle, enabled state, and test message section
Post-sync remediation:
- Restore WaboSign 'W' logo SVG (was reverted to DocuSeal abstract shape)
- Restore SMS config form with BulkVS, Twilio, VoIP.ms, SignalWire providers
- Add AGPL §7(b) upstream attribution to footer (DocuSeal link alongside WaboSign)
- Remove Console feature entirely (controller deleted, routes/constants removed)
- Remove all Pro/Plan/Upgrade gating — features now freely available
- Make all user roles selectable (editor/viewer no longer disabled)
- Remove upgrade button from navbar, plans link from settings nav
- Remove console redirect from sessions controller
- Add _logo.html.erb to rebrand-sync DENY_PATHS to prevent future overwrites
Builds and pushes ghcr.io/wabolabs/wabosign:test on every master push.
Publicly pullable, no auth required. Non-default tag distinguishes from
stable wabolabs/wabosign releases.
- bin/sync-upstream: automation script for upstream tag sync with
logo file restoration from ORIG_HEAD after merge
- CI: setup-node@v1->@v4, set-output->$GITHUB_OUTPUT,
docuseal_test->wabosign_test, add rebrand-check and
assets-precompile jobs
- Docker: checkout@v3->@v4, metadata-action@v4->@v5,
login-action@v3->@v6, images->wabolabs/wabosign, add PR build test
- rebrand-sync: add logo paths to DENY_PATHS
- .gitattributes: add -merge for brand logo files
- REBRANDING.md: update per-sync workflow with logo restoration step
The 3.0.2 upstream sync (977a98a5) replaced public/favicon.svg,
public/logo.svg, and all multi-size favicon files with the DocuSeal
logo. Restored the WaboSign orange 'W' mark from pre-sync commit.
- Add Google OAuth2 provider config to devise initializer (was lost in upstream sync)
- Add explicit admin authorization check for UsersController#index
- Create _wabosign_logo partials for start_form and submit_form (were renamed by rebrand-sync but files never created)
- Add brand_name_form partial to personalization settings page
- Use brand_name or PRODUCT_NAME in title partial instead of hardcoded WaboSign
- Add missing EncryptedConfig::GOOGLE_SSO_KEY constant
- Replace deleted Docuseal module references with Wabosign in powered_by and email_attribution